개요

크론 잡은 게이트웨이의 내장 스케줄러로 에이전트 작업을 예약 실행한다. 일회성, 반복, cron 표현식을 지원하며, ~/.openclaw/cron/jobs.json에 영구 저장된다.


스케줄 타입

at (일회성)

특정 시각에 한 번만 실행한다.

{
  "schedule": {
    "type": "at",
    "time": "2026-04-01T09:00:00+09:00"
  }
}

every (간격)

일정 간격으로 반복 실행한다.

{
  "schedule": {
    "type": "every",
    "interval": "1h"
  }
}

지원 단위: m (분), h (시간), d (일)

cron (표현식)

5필드 또는 6필드 cron 표현식으로 정밀한 스케줄을 설정한다.

{
  "schedule": {
    "type": "cron",
    "expression": "0 9 * * 1-5"
  }
}
필드범위설명
0-59
0-23
1-31
1-12
요일0-60=일요일
초 (6필드)0-59선택

세션 모드

크론 잡이 실행될 때 사용하는 세션을 지정한다.

모드설명
main에이전트의 메인 세션에서 실행
isolated매 실행마다 새로운 격리 세션 생성 (기본값)
custom지정한 세션 ID에서 실행
{
  "cron": {
    "sessionMode": "isolated"
  }
}

전달 방식 (Delivery)

크론 잡 결과를 어디에 전달할지 설정한다.

방식설명
announce지정 채널에 결과 메시지 전송
webhook외부 URL에 결과 POST
none결과 전달 없음 (로그만 기록)
{
  "cron": {
    "delivery": {
      "type": "announce",
      "channel": "telegram",
      "target": "group-daily-report"
    }
  }
}

재시도 정책

일회성 (at)

실패 시 최대 3회 재시도한다.

실행 → 실패 → 재시도 1 → 실패 → 재시도 2 → 실패 → 재시도 3 → 포기

반복 (every, cron)

실패 시 **지수 백오프(exponential backoff)**로 재시도한다.

실패 → 1분 대기 → 재시도
     → 2분 대기 → 재시도
     → 4분 대기 → 재시도
     → 다음 정규 스케줄에서 재개

저장소

크론 잡 설정은 다음 파일에 영구 저장된다.

~/.openclaw/cron/jobs.json
[
  {
    "id": "daily-report",
    "agent": "my-agent",
    "task": "일일 보고서를 생성하고 #report 채널에 전송해줘",
    "schedule": { "type": "cron", "expression": "0 9 * * 1-5" },
    "sessionMode": "isolated",
    "delivery": { "type": "announce", "channel": "slack", "target": "#report" },
    "enabled": true
  }
]

CLI 명령어

크론 잡 추가

openclaw cron add \
  --name "daily-report" \
  --schedule "0 9 * * 1-5" \
  --task "일일 보고서 생성" \
  --delivery announce --channel slack --target "#report"

크론 잡 목록

openclaw cron list
ID            | Schedule       | Next Run           | Status
--------------|----------------|--------------------|--------
daily-report  | 0 9 * * 1-5    | 2026-04-02 09:00   | active
weekly-summary| 0 10 * * 1     | 2026-04-07 10:00   | active

크론 잡 수동 실행

openclaw cron run daily-report

스케줄을 무시하고 즉시 실행한다. 테스트 및 디버깅에 유용하다.

크론 잡 비활성화/삭제

openclaw cron disable daily-report
openclaw cron remove daily-report