OpenClaw (이전 Moltbot/Clawdbot) 는 실용적인 로컬 자동화에 중점을 두었기 때문에 빠르게 인기를 얻었습니다. 즉, 머신을 감시하고, 드리프트를 감지하며, 문제가 쌓이기 전에 조치를 취합니다. 하트비트 기능은 이러한 약속의 핵심입니다.

하트비트는 주기적인 상태 및 건강 신호입니다. OpenClaw에서 하트비트는 가동 시간(uptime) 핑 이상의 역할을 합니다. 하트비트는 계층화된 의사 결정 파이프라인을 실행합니다:
- 먼저 저렴하고 결정론적인 검사 (프로세스, 파일, 큐 깊이, API 상태)
- 임계값 및 정책에 대한 규칙 평가
- 모호성이 남아 있을 때만 선택적 모델 에스컬레이션
이 "저렴한 검사를 먼저, 필요할 때만 모델 사용" 패턴은 최근 커뮤니티 논의에서 개발자들이 정확히 요구했던 것입니다: 더 나은 비용 제어, 더 예측 가능한 동작, 그리고 불필요한 LLM 호출 감소.
에이전트 인프라를 구축하고 있다면, 이것이 핵심 아이디어입니다: 하트비트는 단순히 모니터링 이벤트가 아니라 제어 평면의 기본 요소입니다.
한눈에 보는 OpenClaw 하트비트 아키텍처
런타임 시 OpenClaw 하트비트는 일반적으로 다음 5단계로 구성된 루프로 구현됩니다:
- 스케줄러가 하트비트 틱을 트리거합니다 (예: 15초/30초/60초마다).
- 프로브 러너가 결정론적 프로브를 실행합니다.
- 정책 엔진이 상태 전환 및 심각도를 계산합니다.
- 에스컬레이션 게이트가 LLM/도구 플래너가 필요한지 여부를 결정합니다.
- 액션 디스패처가 경고, 해결 작업 또는 무작위 작업을 발행합니다.
실용적인 이벤트 엔벨로프는 다음과 같습니다:
{
"agent_id": "desktop-a17",
"heartbeat_id": "hb_01JX...",
"ts": "2026-02-11T10:18:05Z",
"probes": {
"cpu_load": 0.72,
"disk_free_gb": 21.4,
"mail_queue_depth": 0,
"service_api": {
"status": 200,
"latency_ms": 83
}
},
"policy": {
"state": "degraded",
"reasons": [
"disk_free_below_warn"
]
},
"escalation": {
"llm_required": false,
"confidence": 0.93
}
}
핵심 시스템 동작:
- 결정론적 프로브 결과가 주요 진실입니다.
- 정책 출력은 재현 가능하며 테스트 가능합니다.
- LLM 사용은 드물고, 감사 가능하며, 엄격한 게이트에 의해 제한됩니다.
구현에서 "저렴한 검사를 먼저"가 의미하는 것
OpenClaw에서 저렴한 검사는 다음을 충족해야 합니다:
- 낮은 지연 시간 (밀리초에서 수백 밀리초)
- 낮은 비용 (모델 토큰 지출 없음)
- 결정론적 (동일 입력 => 동일 출력)
- 기본적으로 부작용 없음
일반적인 프로브 범주:
- 로컬 런타임: 프로세스 활성 상태, 메모리 압력, 스레드 수
- I/O 상태: 디스크 여유 공간, 아이노드 압력, 권한 변경
- 통합 상태: 대상 API 상태 코드, 타임아웃, p95 지연 시간
- 작업 상태: 큐 지연, 재시도 폭풍 지표
- 정책 전제 조건: 유효한 자격 증명, 인증서 만료 기간
프로브 계약
하위 로직이 안정적이도록 엄격한 프로브 스키마를 사용하세요:
yaml ProbeResult: name: string ok: boolean observed_at: datetime value: number|string|object|null severity_hint: info|warn|critical error: string|null ttl_ms: integer
ttl_ms는 중요합니다. 데이터가 충분히 신선하다면, 급증 기간 동안 중복 검사를 건너뜁니다.
OpenClaw가 모델 추론으로 에스컬레이션해야 하는 경우
모델 에스컬레이션은 결정론적 로직이 안전하게 결정할 수 없을 때만 발생해야 합니다.
좋은 에스컬레이션 트리거:
- 충돌하는 프로브 신호 (API 200이지만 비즈니스 KPI가 붕괴되는 경우)
- 일치하는 알려진 시그니처가 없는 새로운 오류 클러스터
- 제약 조건 하의 다단계 해결 계획
- 사건에 대한 사람이 읽을 수 있는 요약 생성
나쁜 에스컬레이션 트리거:
- 모든 경고 이벤트
- 알려진 런북이 있는 정적 임계값 위반
- 디바운스로 노이즈를 해결할 수 있는 고주파 플래핑
상태 머신 설계: 경고 플래핑 방지
대부분의 하트비트 문제는 불안정한 전환에서 발생합니다. 히스테리시스가 있는 상태 머신을 사용하세요:
healthy(정상)degraded(성능 저하)critical(심각)recovering(복구 중)
전환 규칙에는 다음이 포함되어야 합니다:
- 진입 임계값 (예: 디스크 < 15% => 성능 저하)
- 종료 임계값 (예: 3개 간격 동안 디스크 > 20% => 정상)
- 디바운스 기간 (N개의 연속 샘플)
- 액션 쿨다운 (반복적인 해결 방지)
예시:
yaml transitions: healthy->degraded: condition: disk_free_pct < 15 consecutive: 2 degraded->critical: condition: disk_free_pct < 8 consecutive: 1 degraded->healthy: condition: disk_free_pct > 20 consecutive: 3 critical->recovering: condition: remediation_applied == true recovering->healthy: condition: disk_free_pct > 20 consecutive: 2
이는 시끄러운 진동을 크게 줄입니다.
하트비트 수집 및 제어를 위한 API 설계
하트비트 API를 노출하는 경우, 가능한 한 명시적이고 멱등적으로 유지하세요.
제안된 엔드포인트:
POST /v1/heartbeats— 하트비트 이벤트 수집GET /v1/agents/{id}/status— 최신 계산된 상태POST /v1/heartbeats/{id}/ack— 운영자 승인POST /v1/policies/simulate— 샘플 페이로드에 대한 정책 시뮬레이션 실행
에이전트 하트비트를 위한 보안 경계
샌드박싱 및 안전한 에이전트 실행에 대한 커뮤니티의 관심이 정당한 이유로 증가하고 있습니다. 하트비트는 종종 작업을 트리거하므로 보안 경계는 협상 불가능합니다.
최소 제어:
- 서명된 하트비트 페이로드 (HMAC 또는 mTLS 식별)
- 에이전트별 범위 토큰 (최소 권한)
- 정책/액션 허용 목록 (임의의 도구 호출 금지)
- 해결을 위한 샌드박스 실행
- 모든 상태 전환 및 작업에 대한 **감사 추적**
모델이 관련된 경우:
- LLM 출력을 신뢰할 수 없는 계획 텍스트로 취급
- 스키마 및 정책에 대해 도구 호출 유효성 검사
- 실행 전에 결정론적 가드 검사 요구
요약하자면: 하트비트 감지는 유연할 수 있지만, 하트비트 작업은 제약되어야 합니다.
관찰 가능성 및 디버깅 전략
하트비트 시스템을 디버깅하려면 먼저 다음 메트릭을 계측하세요:
- 하트비트 수집 속도
- 늦거나 누락된 하트비트 비율
- 유형별 프로브 지연 시간
- 정책 평가 지연 시간
- 에스컬레이션 비율 (%)
- 에이전트/일별 모델 토큰 지출
- 오탐 및 미탐 사건 레이블
Apidog로 OpenClaw 스타일 하트비트 API 테스트하기
하트비트 시스템은 경계에서 실패합니다: 잘못된 형식의 페이로드, 재현 이벤트, 경쟁 조건. Apidog는 단일 작업 공간에서 이러한 경계를 테스트하는 데 도움을 줍니다.

실용적인 흐름:
- Apidog의 시각적 디자이너에서 OpenAPI를 사용하여 하트비트 엔드포인트를 정의합니다.
- 정상, 지연, 중복 및 손상된 하트비트 이벤트에 대한 테스트 시나리오를 구축합니다.
- 상태 전환 및 액션 출력에 대한 시각적 어설션을 추가합니다.
- 동적 응답으로 다운스트림 채널(Slack/웹훅/개선 서비스)을 모의합니다.
- 회귀 게이트로 CI/CD에서 테스트 스위트를 실행합니다.
예시 테스트 케이스
ingest_valid_heartbeat_returns_200duplicate_idempotency_key_no_duplicate_actioncritical_state_triggers_single_alert_with_cooldowninvalid_signature_returns_401novelty_trigger_causes_model_escalation_when_enabled
Apidog는 설계, 테스트, 모의, 문서화를 통합하므로 하트비트 로직이 진화함에 따라 API 계약과 동작이 일치하게 유지됩니다.
현재 팀이 여러 도구에 걸쳐 이 작업을 분산하고 있다면, Apidog로 통합하면 불일치를 줄이고 디버깅 속도를 높일 수 있습니다.
엔지니어들이 흔히 놓치는 엣지 케이스
클럭 스큐
- 에이전트 타임스탬프가 다를 수 있습니다.
- 제한된 스큐를 허용하고 서버 수신 시간을 별도로 저장합니다.
네트워크 파티션
- 재연결 후 하트비트가 한꺼번에 도착할 수 있습니다.
- 시퀀스 번호와 재정렬 윈도우를 사용합니다.
역압력 폭풍
- 정책 엔진이 느려지면 큐가 지연을 증폭시킬 수 있습니다.
- 입장 제어를 적용하고 정상적으로 성능을 저하시킵니다.
무음 프로브 실패
- "데이터 없음"은 "정상"이 아닙니다.
- 알 수 없는 상태를 명시적으로 인코딩합니다.
폭주하는 해결 루프
- 액션이 동일한 액션을 반복적으로 트리거하는 조건을 트리거합니다.
- 액션별 쿨다운 및 최대 재시도 예산을 추가합니다.
에스컬레이션 결과의 모델 드리프트
- 모델 지원 의사 결정을 위한 평가 픽스처를 유지합니다.
- 모델/버전 변경 시 재검증합니다.
마이그레이션 참고: Moltbot/Clawdbot에서 OpenClaw 명명으로
이름 변경 이력으로 인해 패키지 이름, 문서 및 엔드포인트 접두사에서 혼란이 발생했습니다. 통합을 유지 관리하는 경우:
- 사용 중단 기간 동안 하위 호환 별칭을 유지합니다.
- 이벤트 스키마를 명시적으로 버전 관리합니다 (
event_version). - 마이그레이션 맵을 게시합니다 (이전 토픽 이름 -> 새 토픽 이름).
- 레거시 및 현재 페이로드 모두에 대한 계약 테스트를 추가합니다.
이는 커뮤니티가 OpenClaw 명명으로 수렴하는 동안 생태계 손상을 줄입니다.
권장 프로덕션 기준선
하트비트 배포를 위한 합리적인 기본값을 원한다면:
- 간격: 30초
- 프로브 타임아웃: 각 500ms, 총 예산 2초
- 디바운스: 경고를 위한 2회 연속 실패
- 쿨다운: 액션 유형당 5분
- 에스컬레이션 제한: 하트비트의 최대 5%가 모델을 호출
- 보존: 감사용으로 30일 활성, 180일 비활성
그런 다음 워크로드에 따라 조정합니다. 개발자 데스크톱 에이전트와 서버 에이전트는 일반적으로 다른 정책이 필요합니다.
최종 요점
OpenClaw의 하트비트 기능은 에이전트 상태를 채팅 우선 워크플로우가 아닌 정제된 제어 루프로 취급하기 때문에 가치가 있습니다. 성공적인 패턴은 분명합니다:
- 결정론적 프로브 우선,
- 명시적 정책 상태 머신 다음,
- 불확실한 경우에만 모델 에스컬레이션.
이러한 설계는 더 낮은 비용, 더 높은 예측 가능성, 더 안전한 자동화를 제공합니다.
하트비트 API를 구현할 때, 계약, 멱등성, 정책 시뮬레이션 및 테스트 자동화에 많은 투자를 하십시오. Apidog는 OpenAPI 사양을 설계하고, 의존성을 모의하고, 회귀 테스트를 실행하고, 문서를 한 곳에서 게시할 수 있기 때문에 이 분야에 매우 적합합니다.
현재 OpenClaw 스타일 하트비트를 구축하거나 통합하고 있다면, 엄격한 결정론적 규칙으로 시작하고 점진적으로 모델 인텔리전스를 추가하십시오. 신뢰성은 제약에서 먼저 오고, 지능은 그 다음입니다.
