크론은 “정해진 시간에 일을 시키는 알람”, 하트비트는 “주기적으로 깨어나서 주변 상황을 살피는 심장박동”이에요. 이 한 줄만 잡고 가면 나머지는 어렵지 않아요.
오픈클로가 뭐죠?
오픈클로는 한마디로 24시간 백그라운드에서 동작하는 AI 에이전트 OS예요. 보통의 챗봇은 내가 말을 걸어야만 답을 하지만, 오픈클로는 오픈소스 프로젝트로 오픈클로를 설치해 누구나 나만의 AI 에이전트를 만들 수 있어요.

오픈클로에서 AI 에이전트에게 자동화 업무를 맡길 수 있는 방법은 크론과 하트비트가 있서요. 이 두가지 덕분에 오픈클로가 단순 AI 도구가 아니라 에이전트라고 불립니다.
크론(Cron)이 뭐예요?
크론은 정해진 시간/주기에 특정 작업을 자동 실행하는 기능이에요.
예를 들어 이런 거요.
- 매일 아침 9시에 오늘 일정 브리핑 보내줘
- 매주 월요일 9시에 주간 리포트 정리해줘
- 20분 뒤에 “물 주기” 알림 한 번만 띄워줘
오픈클로 공식 문서에 따르면 크론 작업은 메인 세션 또는 격리 세션(isolated session)에서 실행할 수 있어요. 무거운 작업(요약·스크래핑·리포트)은 격리 세션 + 결과만 채팅으로 알림(announce) 패턴이 안전하다고 권장돼요.
크론을 쓰면 좋은 상황
- 시간이 중요한 일이에요 (매일 9시, 매주 월요일 등)
- 무겁고 오래 걸리는 일을 따로 돌리고 결과만 받고 싶어요
- 한 번만 실행하는 일회성 알림도 OK (“20분 뒤에 알려줘”)
크론의 장점/단점
- 장점: 정확한 타이밍 보장, 격리 세션으로 메인 채팅이 깔끔해져요
- 단점: 기본값(Default) 그대로 두면 딥 모델로 풀돌이해서 토큰을 빠르게 태워요
크론 활용 예시
아래는 제가 실제로 크론을 세팅하고 활용하는 사례입니다. 저는 주로 자료 수집이나 정리 보고를 받는데 활용하고 있습니다.
- 오전 8시 미국 시황, 낮 12시, 오후 4시 국내 주식 시황 요약 받기
- 벤치마킹 유튜브 채널별로 새로운 영상의 주요 인사이트 노션에 정리하고 디스코드에 알람 설정
- AI 관련 논문 자료 수집하고 인사이트 요약 정리


하트비트(Heartbeat)가 뭐예요?
하트비트는 주기적으로 깨어나 ‘지금 신경 쓸 일 있어?’를 스스로 점검하는 기능이에요. 크론처럼 “일을 실행”하는 게 아니라, ‘있는지 없는지’를 스캔하는 게 본질이에요.
동작 방식은 이래요.
- 워크스페이스의
HEARTBEAT.md파일을 읽어요 (체크리스트) - 설정한 주기(예: 30분)마다 깨어나서 그 체크리스트를 자연어로 점검해요
- 이상 없음이면 →
HEARTBEAT_OK라고 응답하고 조용히 다시 자요 - 이상 있음이면 → 텔레그램·왓츠앱·메인 채팅 등으로 알림을 보내요
하트비트는 심장이 주기적으로 뛰듯 시스템 내부 스케줄러와 HEARTBEAT.md의 결합으로 에이전트가 스스로 깨어나는 구조예요. 수동적인 챗봇을 능동적인 OS로 바꿔주는 핵심 알고리즘이에요.
HEARTBEAT.md에 자주 쓰는 기능들
- 중요한 이메일 스캔
- 캘린더 내 향후 2시간 일정 확인
- 서버 디스크/메모리 임계치 체크
- 비트코인 가격 하락 시 사전 정의 전략 실행
- 이상 없으면
HEARTBEAT_OK반환
하트비트의 장점/단점
- 장점: “멈췄는데도 몰랐다”를 막아줘요, 여러 점검을 한 번에 묶어서 처리할 수 있어요
- 단점: 메인 세션 컨텍스트를 끌고 들어가서 실행돼요. HEARTBEAT.md가 복잡할수록 토큰이 더 들어요
크론과 하트비트 차이
| 구분 | Cron | Heartbeat |
|---|---|---|
| 핵심 질문 | 언제 실행할까? | 지금 신경 쓸 일 있어? |
| 트리거 | 정확한 시간/주기 (예: 매일 09:00) | 일정 간격 깨우기 (예: 30분마다) |
| 실행 위치 | 메인 또는 격리 세션 선택 | 메인 세션 (체크리스트 = HEARTBEAT.md) |
| 이상 없으면? | 설정대로 실행 | HEARTBEAT_OK 반환 후 조용히 종료 |
| 대표 용도 | 일일 브리핑, 주간 리포트, 일회성 알림 | 인박스/캘린더/서버 헬스 같은 "감시" |
| 토큰 성향 | 실행 시점에만 사용, 격리 세션이 가벼움 | 매 주기마다 호출 → 누적 부담 큼 |
토큰을 얼마나 잡아먹나요?
여기가 사실 제일 궁금한 부분인데요, 정확한 숫자는 사용 모델(Sonnet/Opus 등)과 HEARTBEAT.md 길이, 메인 세션 컨텍스트 크기에 따라 달라지지만, 공식 문서·커뮤니티에서 반복적으로 확인되는 기준이 있어요.
1) 하트비트는 횟수가 토큰을 결정해요
하트비트 주기에 따른 일일 실행 횟수를 계산해보면 아래와 같아요.
- 30분 주기 → 하루 약 48회 실행
- 10분 주기 → 하루 약 144회 실행
- 5분 주기 → 하루 약 288회 실행
각 실행마다 모델이 한 번씩 호출되기 때문에, 주기를 짧게 잡을수록 곱하기로 토큰이 늘어요. 5
2) HEARTBEAT.md 길이에 따라 늘어나요
하트비트는 매번 깨어날 때마다 맥락을 읽고 동작합니다.
- 메인 세션의 최근 대화 컨텍스트
- HEARTBEAT.md 내용
- 사용 가능한 도구 정의(tool schema)
HEARTBEAT.md가 늘어나면, 30분마다 해당 맥락을 파악해야 하니 그만큼 토큰 소비가 늘어나겠죠.
3) 크론은 격리 세션이냐 메인이냐가 토큰을 결정해요
오픈클로 공식 문서(docs.openclaw.ai/gateway/heartbeat, cron 가이드)에 따르면 아래와 같이 동작한다고 합니다.
- 메인 세션 크론: 기존 채팅의 모든 컨텍스트를 끌고 들어가서 실행 → 무겁고 비쌈
- 격리 세션 크론(
--session isolated): 별개의 컨텍스트로 시작 → 현저히 가벼움, 결과만--announce로 채팅에 던져줌
주간 리포트, 데이터 스크래핑, 긴 요약 같은 무거운 일은 격리 세션 크론으로 분리하는 게 좋습니다.
4) 같은 작업이라도 모델 선택이 가장 큰 변수예요
같은 업무라도 Opus냐 Haiku, Sonnet로 돌리느냐에 따라 비용이 수 배씩 차이가 납니다.
토큰을 아끼는 운영팁
LinkedIn의 ‘Stop burning tokens with OpenClaw’s default setup’에서 참고한 운영팁입니다.
- 감지(Detect) ↔ 실행(Escalate) 분리하기
가벼운 모델로 바뀐 게 있는지 체크하고, 변화가 있을 때만 고급 모델 호출
- 무거운 일은 격리 세션 크론으로 진행
요약·스크래핑·리포트는 메인 세션에 절대 두지 않기
- HEARTBEAT.md는 짧고 명확하게 설정
체크리스트 형태, 끝에
HEARTBEAT_OK반환 규칙 명시
그래서 어떻게 설정하면 좋을까요?
정해진 시간에 무언가 실행돼야 한다면?
Cron이 정답이에요. 특히 무겁거나 노이즈가 큰 작업이면 격리 세션으로 설정하세요.
문제 생길 때 알려 주길 원한다면?
Heartbeat예요. 주기는 30분부터 시작하길 추천하고 HEARTBEAT.md는 짧게 시작하세요. HEARTBEAT_OK 규칙 명시도 설정하고요.