자동화 개요
OpenClaw 자동화는 하나의 automation 설정 블록으로 작업을 등록하는 방식이 아닙니다. 2026-07-14 기준 공식 문서는 Cron, Heartbeat, background tasks, Task Flow, hooks, standing orders, inferred commitments를 목적별 표면으로 분리합니다.
기준일: 2026-07-14 공식 기준: Automation, Scheduled tasks, Cron CLI, Heartbeat
핵심 개념
| 자동화 표면 | 핵심 역할 | 확인/관리 표면 |
|---|---|---|
| Scheduled Tasks (Cron) | 정확한 시간, 반복 주기, 일회성 알림, isolated job 실행 | openclaw cron list/show/runs/run/edit/remove |
| Heartbeat | main session에서 주기적으로 맥락을 확인하는 agent turn | openclaw system heartbeat last, enable, disable |
| Background Tasks | detached work의 작업 원장 | openclaw tasks list, openclaw tasks audit |
| Task Flow | 여러 단계의 durable flow 관리 | openclaw tasks flow ... |
| Hooks | 세션/Gateway lifecycle 또는 tool call 이벤트 반응 | openclaw hooks ..., plugin hooks |
| Standing Orders | 에이전트가 항상 따라야 하는 지속 지시 | workspace 지시 파일 |
| Inferred Commitments | 대화에서 추론한 짧은 follow-up | Heartbeat를 통해 due check-in 전달 |
Cron 실행은 task record와 run history를 만듭니다. Heartbeat는 main session turn이지만 background task record를 만들지 않습니다. 이 차이가 자동화 선택의 가장 중요한 기준입니다.
선택 기준
| 상황 | 추천 | 판단 기준 |
|---|---|---|
| 매일 같은 시간 보고서 | Cron | 정확한 시각과 run history 필요 |
| 20분 뒤 알림 | Cron --at |
명시적인 one-shot 스케줄 |
| 30분마다 inbox/calendar 확인 | Heartbeat | 세션 맥락을 유지하고 여러 확인을 한 번에 묶음 |
| Subagent나 ACP run 상태 추적 | Background Tasks | 스케줄러가 아니라 작업 원장 확인 |
| 여러 단계 연구/리뷰 흐름 | Task Flow | 단계, revision, 취소/조회가 필요 |
/reset 또는 Gateway startup 반응 |
Hooks | lifecycle event 반응 |
| 항상 적용되는 운영 원칙 | Standing Orders | 매 session에 주입되어야 하는 지시 |
비공식 표면으로 취급해야 할 항목은 legacy automation JSON blocks, 별도 automation 상태 CLI, 로그 필터 옵션, 임의 JSON job 스토어 직접 편집입니다. 현재 문서는 Cron CLI, System heartbeat CLI, Logs CLI의 공식 옵션만 사용합니다.
실습
Cron job 만들기
openclaw cron create "0 7 * * *" \
"Summarize overnight updates." \
--name "Morning brief" \
--session isolated \
--announce \
--channel slack \
--to "channel:C1234567890"
Command payload 만들기
openclaw cron create "*/15 * * * *" \
--name "Queue depth probe" \
--command "scripts/check-queue.sh" \
--command-cwd "/srv/app" \
--announce \
--channel telegram \
--to "-1001234567890"
Command payload는 Gateway scheduler 안에서 실행되며 agent tools.exec 호출이 아닙니다. Cron mutation과 command-payload run은 operator admin 권한이 필요한 자동화 표면으로 봐야 합니다.
Heartbeat 설정하기
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
directPolicy: "allow",
lightContext: true,
isolatedSession: true,
skipWhenBusy: true
}
}
}
}
Heartbeat를 끄려면 agents.defaults.heartbeat.every 또는 per-agent heartbeat의 every를 0m으로 설정합니다.
상태 확인하기
openclaw status
openclaw gateway status
openclaw cron list
openclaw cron show <job-id>
openclaw cron runs --id <job-id> --limit 50
openclaw system heartbeat last
openclaw logs --limit 200
도구에 입력할 프롬프트
자동화 설계를 맡길 때:
이 작업을 OpenClaw 공식 자동화 표면 중 어디에 배치해야 하는지 결정해줘.
후보는 Cron, Heartbeat, Background Tasks, Task Flow, Hooks, Standing Orders, Inferred Commitments로 제한해줘.
정확한 시간, task 기록, 세션 맥락, delivery 대상, 운영 권한을 기준으로 선택 근거를 설명하고 공식 CLI 명령만 제안해줘.
체크리스트
- 정확한 스케줄이면 Cron을 사용했다.
- 느슨한 주기 확인과 main session 맥락이 필요하면 Heartbeat를 사용했다.
- detached work 조회를 자동화 설정과 혼동하지 않았다.
- 별도 automation 상태 CLI를 쓰지 않았다.
- 로그 확인은
openclaw logs의 공식 옵션만 사용했다. - Cron job 데이터는 SQLite 상태에 있으며 파일을 직접 편집하지 않는다는 점을 반영했다.
- Delivery가 필요한 job은
--announce,--channel,--to,--webhook,--no-deliver중 공식 옵션으로 정했다.
다음 단계
- 트리거와 스케줄 - Cron 이벤트 조건과 System event 구분
- Cron 표현식 가이드 - 반복 스케줄 작성
- Heartbeat 가이드 - periodic main-session turn 운영