
AI 에이전트 배포에서 가장 유용한 cron job들은 종종 가장 단순한 것들입니다. 로그 파일 순환, 디렉토리 스크래핑, 헬스 엔드포인트 핑 — 지능이 전혀 필요 없는 작업들입니다.
하지만 현재 OpenClaw에서는 모든 cron job이 완전한 격리된 LLM 세션을 시작합니다. 워크스페이스 컨텍스트를 로드하고, API 호출을 하고, 응답을 기다리는 과정을 거칩니다… 그저 bash rotate-logs.sh를 실행하기 위해서입니다.
PR #51276이 해결책을 제시합니다: payload.kind: "exec".
과도한 사고의 비용
PR 작성자가 제시한 실제 프로덕션 수치입니다:
| Job | 평균 실행 시간 | 문제점 |
|---|---|---|
| bus-maintenance | 372초 | 순수하게 세션 오버헤드 |
| skill-obs-scraper | 38초 | 5% 타임아웃율 |
| 5개 순수 쉘 job | ~$10-12/월 | LLM API 호출 낭비 |
대안은? 시스템 cron을 사용하는 것입니다. 하지만 그러면 OpenClaw의 관측 가능성(observability)을 잃게 됩니다: 에러 추적, 실행 시간 메트릭, 워치독 커버리지, 중앙 집중 관리.
해결책: 그냥 명령어를 실행하세요
새로운 exec 페이로드는 간단합니다:
{
"payload": {
"kind": "exec",
"command": "bash ~/.openclaw/scripts/bus-rotate.sh",
"timeoutSeconds": 120
}
}
LLM 세션 없음. 컨텍스트 로딩 없음. 그저 적절한 타임아웃 처리와 함께 child_process.spawn.
중요한 것들은 모두 유지됩니다: 실행 로그, 에러 추적, 백오프, 워치독 커버리지.
더 넓은 패턴
모든 것에 지능이 필요한 것은 아닙니다. 불필요한 LLM 호출은 낭비된 돈, 시간, 그리고 CO₂입니다.
에이전트 빌더를 위한 네 가지 교훈:
1. Cron job 감사하기
얼마나 많은 job이 LLM 세션으로 감싸진 순수 쉘 스크립트인가요?
# 감사 체크리스트
- [ ] 로그 순환 job
- [ ] 파일 정리 job
- [ ] 헬스 체크 job
- [ ] 데이터 스크래핑 job
- [ ] 백업 job
이 중 몇 개가 실제로 LLM이 필요한가요?
2. 오케스트레이션과 지능 분리하기
스케줄링과 모니터링은 LLM이 필요 없습니다.
| 기능 | LLM 필요? |
|---|---|
| 스케줄링 | ❌ |
| 명령어 실행 | ❌ |
| 로그 수집 | ❌ |
| 에러 알림 | ❌ |
| 복잡한 의사결정 | ✅ |
| 자연어 처리 | ✅ |
| 동적 적응 | ✅ |
3. 관측 가능성 통합 유지하기
스마트 job과 덤(dumb) job 모두를 위한 하나의 cron 시스템.
┌─────────────────────────────────────┐
│ OpenClaw Cron System │
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ │
│ │ exec jobs │ │ agent jobs │ │
│ │ (쉘 스크립트) │ │ (LLM 세션) │ │
│ └─────────────┘ └─────────────┘ │
│ │
│ 통합 관측 가능성: │
│ - 실행 로그 │
│ - 에러 추적 │
│ - 메트릭 │
│ - 워치독 │
└─────────────────────────────────────┘
4. 단순하게 시작, 나중에 지능 추가
v1은 exec로, 필요할 때 agentTurn으로 업그레이드.
개발 단계:
exec (v1) → 에이전트 (v2) → 지능형 에이전트 (v3)
언제 업그레이드하나요?
- exec: 고정된 작업, 예측 가능한 결과
- agent: 동적 적응 필요, 조건부 로직
- 지능형: 자연어 이해, 복잡한 의사결정
실제 적용 예시
Before: 모든 job이 LLM 세션
# 기존 방식 - 과도한 오버헤드
- name: rotate-logs
schedule: "0 0 * * *"
payload:
kind: agentTurn
message: "Run bash rotate-logs.sh"
# 평균 30초+ (세션 시작 오버헤드)
After: 단순 exec
# 새로운 방식 - 효율적
- name: rotate-logs
schedule: "0 0 * * *"
payload:
kind: exec
command: "bash ~/.openclaw/scripts/rotate-logs.sh"
timeoutSeconds: 60
# 평균 1초 미만
비용 비교
한 달 기준, 5개 순수 쉘 job:
| 방식 | API 비용 | 실행 시간 | CO₂ |
|---|---|---|---|
| LLM 세션 | ~$10-12 | ~150분 | 높음 |
| exec | $0 | ~5분 | 낮음 |
연간으로는 $120-144 절약, 그리고 더 중요한 것은 시스템 효율성입니다.
마치며: 적절한 도구로 적절한 작업을
이 PR은 단순한 기술적 개선을 넘어 중요한 원칙을 보여줍니다.
“모든 것에 지능이 필요한 것은 아닙니다.”
AI 에이전트 시스템을 구축할 때, 우리는 종종 모든 것을 “지능적으로” 만들고 싶은 유혹에 빠집니다. 하지만 진정한 효율성은 지능이 필요한 곳에만 지능을 사용하는 것에서 나옵니다.
Cron job은 시작하기 좋은 곳입니다. 감사를 해보세요. 얼마나 많은 job이 실제로 LLM이 필요한가요?
🔗 관련 정보
- PR #51276: https://github.com/openclaw/openclaw/issues/51276
- 원문: Why Your Cron Jobs Don’t Need an LLM
- OpenClaw 문서: https://docs.openclaw.ai