개요
OpenClaw는 6가지 자동화 메커니즘을 제공한다. 에이전트가 사용자 메시지 없이도 스스로 작업을 수행하거나 외부 이벤트에 반응할 수 있다.
6가지 자동화 메커니즘
1. Heartbeat (하트비트)
주기적으로 에이전트의 메인 세션에 턴을 발생시킨다.
- 기본 주기: 30분
- 에이전트가
HEARTBEAT.md파일을 읽고 할 일을 확인 - 할 일이 없으면
HEARTBEAT_OK응답 - 상세 내용은 하트비트 문서 참고
2. Cron (크론)
정확한 시간에 스케줄링된 작업을 실행한다.
{
"automation": {
"cron": [
{
"name": "daily-report",
"schedule": "0 9 * * *", // 매일 오전 9시
"agent": "default",
"message": "오늘의 보고서를 생성해주세요."
},
{
"name": "weekly-summary",
"schedule": "0 18 * * 5", // 매주 금요일 오후 6시
"agent": "default",
"message": "이번 주 요약을 작성해주세요."
}
]
}
}
크론 표현식 형식: 분 시 일 월 요일
| 필드 | 값 범위 |
|---|---|
| 분 | 0-59 |
| 시 | 0-23 |
| 일 | 1-31 |
| 월 | 1-12 |
| 요일 | 0-7 (0과 7 모두 일요일) |
3. Hooks (훅)
이벤트 기반으로 스크립트를 실행한다.
{
"automation": {
"hooks": {
"on_message_received": {
"script": "./scripts/log-message.sh"
},
"on_session_start": {
"script": "./scripts/init-session.sh"
},
"on_error": {
"script": "./scripts/alert.sh"
}
}
}
}
4. Standing Orders (상시 지시)
시스템 프롬프트에 포함되는 지속적인 지시사항이다. 에이전트가 모든 대화에서 항상 따르는 규칙을 정의한다.
<!-- AGENTS.md 에 작성 -->
## Standing Orders
- 매 턴마다 할 일 목록을 확인하고 긴급한 것이 있으면 알린다
- 고객 문의가 10분 이상 미응답이면 알림을 보낸다
- 매일 자정에 당일 활동 요약을 메모리에 기록한다
5. Background Tasks (백그라운드 작업)
메인 대화와 분리된 독립 작업을 추적한다.
- 장시간 실행되는 작업을 백그라운드로 분리
- 작업 상태 추적 및 완료 알림
- 메인 세션을 차단하지 않음
6. Webhooks (웹훅)
외부 HTTP 이벤트를 수신하여 에이전트를 트리거한다.
{
"automation": {
"webhooks": {
"enabled": true,
"endpoints": {
"github": {
"path": "/webhook/github",
"secret": "${GITHUB_WEBHOOK_SECRET}",
"agent": "code-review",
"message_template": "GitHub 이벤트: {{event}}"
},
"stripe": {
"path": "/webhook/stripe",
"secret": "${STRIPE_WEBHOOK_SECRET}",
"agent": "billing",
"message_template": "결제 이벤트: {{type}}"
}
}
}
}
}
추가 자동화 기능
Gmail PubSub
Gmail 수신 메일을 실시간으로 감지하여 에이전트를 트리거한다.
- Google Cloud Pub/Sub 연동
- 새 메일 수신 시 자동으로 에이전트에 전달
폴링 (Polling)
주기적으로 외부 서비스를 확인하여 변경 사항을 감지한다.
- API 엔드포인트 주기적 조회
- 상태 변경 시 에이전트 트리거
인증 모니터링 (Auth Monitoring)
연결된 채널의 인증 상태를 모니터링한다.
- 토큰 만료 감지
- 재인증 필요 시 알림
- 자동 토큰 갱신 (지원 채널)
자동화 조합 예시
여러 자동화를 조합하여 복잡한 워크플로를 구성할 수 있다.
[GitHub Webhook] → 코드 리뷰 에이전트 → [Slack 알림]
|
[매일 크론] → 일일 리포트 생성 → [이메일 전송]
|
[하트비트 30분] → 대기 중인 작업 확인 → [필요 시 처리]