매일 아침 출근 전, 텔레그램에 뉴스 요약이 와있으면 어떨까요. 매주 금요일 오후에 주간 보고서가 자동으로 정리되어 있으면요.
크론(cron)이 이걸 가능하게 합니다. 정해진 시간에 AI가 알아서 실행하는 예약 작업입니다.
그런데 실전에서 크론을 운영해보면, "왜 내 알람이 안 울리지?"가 제일 흔한 질문이 됩니다.
크론이 안 도는 5가지 이유
이유 1: 게이트웨이가 꺼져 있다
OpenClaw 크론은 게이트웨이 프로세스에 의존합니다. 게이트웨이가 꺼지면 크론도 멈춥니다.
노트북에서 돌리면 덮개를 닫을 때마다 AI도 잠듭니다. 24/7 자동화가 필요하다면, 24/7 켜져있는 장치가 필요합니다. 라즈베리 파이, Mac Mini, 클라우드 서버가 이유가 있습니다. Mac Mini로 AI 에이전트 운영하는 방법을 참고하세요.
이유 2: isolated 크론이 무한히 멈추는 버그
GitHub Issue #44052. ARM64(라즈베리 파이, Mac Mini)와 Linux 전반에서 반복 보고된 문제입니다.
isolated + agentTurn 크론 잡이 running 상태에서 무한히 멈춤.
main + systemEvent는 정상 동작.
격리 세션에서 독립 작업을 실행하는 것이 이론적으로 깔끔하지만, 실전에서는 불안정합니다. 세션 생성 자체가 실패하거나, 완료 이벤트가 발화되지 않습니다.
해결법: isolated가 안 되면 systemEvent + main 세션으로 전환해보세요.
이유 3: 하나가 막히면 전부 멈춘다
GitHub Issue #42097.
크론 잡이 타임아웃 없이 stuck되면, 같은 레인에 대기 중인 잡들이 전부 차단됩니다. 60분 이상 대기한 사례도 보고됐습니다.
finished 이벤트가 발화되지 않으면 로그도 기록되지 않습니다. 며칠째 크론이 안 돌고 있어도 모르는 상황이 생깁니다.
해결법: 크론 잡에 반드시 timeoutSeconds를 설정하세요. 그리고 주기적으로 openclaw cron list로 상태를 확인하세요.
이유 4: config에서 비활성화된 상태
설치 후 기본값이 비활성인 경우가 있습니다. openclaw cron list로 등록된 잡과 현재 상태부터 확인하세요.
이유 5: schedule.kind 혼동
"every" + everyMs 조합이 자동 트리거가 안 되는 버그가 있었습니다. "crontab" 스타일이 더 안정적이라는 게 커뮤니티 합의입니다.
하트비트 vs 크론: 다른 도구입니다
비슷해 보이지만 목적이 다릅니다.
| | 하트비트 | 크론 | |---|---|---| | 목적 | 상태 점검 | 작업 실행 | | 트리거 | 시간 간격 (30분마다) | 정확한 시각 (매일 08:00) | | 핵심 파일 | HEARTBEAT.md | 없음 | | 비용 영향 | 높음 (풀 컨텍스트 로드) | 보통 |
하트비트는 "내가 살아있나 확인하는 것"이고, 크론은 "이 시간에 이 일을 하는 것"입니다. 둘 다 게이트웨이에 의존합니다.
하트비트의 비용 함정(Issue #43767)은 별도 주제입니다. 크론도 메인 세션에서 실행되면 전체 컨텍스트를 로드합니다. 저렴한 모델(Gemini Flash-Lite 등)로 분리 운영하는 게 핵심입니다. AI 에이전트 비용 최적화 가이드에서 더 자세히 다뤘습니다.
실전 설정 예시
"매일 아침 8시 뉴스 요약" 크론
{
"cron": [
{
"name": "morning-news",
"schedule": "0 8 * * *",
"prompt": "오늘의 AI/Tech 뉴스 3개를 검색하고 한국어로 요약해서 텔레그램으로 보내줘",
"model": "google/gemini-flash-lite",
"session": "main",
"kind": "systemEvent",
"timeoutSeconds": 300
}
]
}
포인트 세 가지입니다.
model: 뉴스 요약에 Opus가 필요 없습니다. Flash-Lite로 충분합니다.timeoutSeconds: 없으면 무한 대기로 전체 레인이 막힙니다.session: "main": isolated보다 안정적입니다.
운영 체크리스트
실전에서 권장하는 5가지 설정입니다.
- AGENTS.md: 크론에서 실행할 행동 규칙을 명시
- memoryFlush: 컴팩션 전 자동 저장 활성화
- ackReaction: 수신 확인 이모지 (AI가 살아있는지 시각적 확인)
- blockStreaming: 크론 작업에는 스트리밍 불필요
- activeHours: 새벽에 알림이 오는 상황을 방지
실제 운영 사례: 보안 컨설턴트의 크론
사이버보안 컨설턴트 Simon Roses는 라즈베리 파이 5에서 세 가지 크론을 돌립니다.
- 매일 아침 8시: 이메일 정리
- 매일 밤 8시: 코드 빌드 + PR 생성
- 매일 오후 3시: 보안 리서치 리포트
PR 1건 비용은 약 $0.35(Sonnet 4 기준). 24시간 자율 에이전트 운영의 현실적인 수치입니다.
한 가지 주의점: 텔레그램과 웹챗을 동시에 활성화하면 크론 결과가 두 채널에 동시에 전송됩니다. 채널 라우팅을 명확히 설정해두세요.
게이트웨이 재시작이 크론을 죽이는 상황
GitHub Issue #44093.
openclaw gateway restart가 실패하면 LaunchAgent(자동 시작 설정)까지 삭제되는 사례가 있었습니다. 재시작 실패가 서비스 자체 삭제로 이어지고, 크론도 함께 멈춥니다.
안전한 운영을 위한 원칙: 게이트웨이 외부에 독립적인 모니터링을 두세요. 크론이 돌아가는 프로세스에만 의존하면, 그 프로세스가 죽을 때 모니터링도 같이 죽습니다.
설정 변경할 때도 주의
GitHub Issue #44096.
설정 변경을 감지하면 기본적으로 게이트웨이가 재시작됩니다. 크론을 세팅하려고 openclaw.json을 수정하는데, 수정할 때마다 진행 중인 크론 작업이 중단될 수 있습니다.
설정 변경은 한 번에 모아서, 게이트웨이 로그를 확인하면서 하는 게 안전합니다.
AI 에이전트 자동화를 처음 시작한다면 OpenClaw 사용 가이드부터 읽어보세요. 자동화 수준을 더 높이고 싶다면 예약 / 자율 작업 기능을 확인해 보세요.