260414 critical oil-supply-monitor-evening Hermes 등록 보고
작성 시각: 2026-04-14T18:48:09+09:00
분석
- 대상 OpenClaw cron:
oil-supply-monitor-evening/ 석유 공급망 모니터 (저녁 21시) - 기존 OpenClaw schedule:
0 21 * * *,Asia/Seoul - 기존 실행 payload는
agentTurn이지만 실제 Bash 명령은 아래 코드블록 내부 명령 1개였다.
PYTHONPATH=/Users/ron/.openclaw/workspace/scripts/shared:/Users/ron/.openclaw/workspace/scripts/pipeline:/Users/ron/.openclaw/workspace/scripts python3 /Users/ron/.openclaw/workspace/scripts/pipeline/oil_supply_monitor.py
- timeout: 900초
- 출력/상태 파일:
/Users/ron/.openclaw/workspace/memory/oil-supply-monitor/state.json/Users/ron/.openclaw/workspace/memory/oil-supply-monitor/history.json/Users/ron/knowledge-agent/500-signals/에너지/260414_oil-supply-snapshot.md- Hermes output:
/Users/ron/.hermes/cron/output/ocCRIT-oil-supply-monitor-evening/*.md - 외부 의존/권한:
- web/RSS/EIA/뉴스 검색
- LLM fallback (
shared.llm.llm_chat_with_fallback) - Telegram
send_sector("market"), chart photo optional - vault write via
shared.frontmatter.write_note - 기존 Hermes에
ocAP-AP004-oil-evening-prompt가 있었지만, 실제 모니터 실행이 아니라 OpenClaw payload 텍스트를 읽는 artifact-read job이었다. 신규 실제 실행 job이 필요했다. - 기존
ocAI-AI004는 실제 shell-job 형태였지만 300초 검증 제한으로 rollback되어 disabled/paused 상태였다.
신규 정의
신규 Hermes job:
- id:
ocCRIT-oil-supply-monitor-evening - type/job_type/kind:
shell - schedule:
0 21 * * * - timezone:
Asia/Seoul - timeout: 900초
- command: OpenClaw 원본 실행 명령과 동일
- 상태: 최종
enabled=true,state=scheduled,next_run_at=2026-04-14T21:00:00+09:00
백업:
- 등록 전 Hermes backup:
/Users/ron/.hermes/cron/jobs.json.bak-critical-oil-evening-20260414T181711 - 등록 전 OpenClaw backup:
/Users/ron/.openclaw/cron/jobs.json.bak-critical-oil-evening-20260414T181711 - cutover 전 Hermes backup:
/Users/ron/.hermes/cron/jobs.json.bak-critical-oil-evening-cutover-20260414T184713 - cutover 전 OpenClaw backup:
/Users/ron/.openclaw/cron/jobs.json.bak-critical-oil-evening-cutover-20260414T184713
실행 결과
수동 Hermes live trigger 1차
- Trigger:
hermes cron run ocCRIT-oil-supply-monitor-evening - Hermes output:
/Users/ron/.hermes/cron/output/ocCRIT-oil-supply-monitor-evening/2026-04-14_18-25-17.md - 결과: Exit Code 0
- Duration: 410.77초
- Telegram:
✅ 알림센터(market) 발송 완료 - Vault:
/Users/ron/knowledge-agent/500-signals/에너지/260414_oil-supply-snapshot.md저장 완료 - state/history: 2026-04-14 18:25:17 KST 갱신
- 품질 평가: 4.2/5.0 통과
dual-run harness
- Report:
/Users/ron/.openclaw/workspace/verification/hermes-critical-oil-evening-260414/20260414_182619_oil-supply-monitor-evening_ocCRIT-oil-supply-monitor-evening.json - OpenClaw side: returncode 0
- Hermes side: returncode 0
- watch path: OK,
/Users/ron/.openclaw/workspace/memory/oil-supply-monitor변경 감지 - strict diff: 실패
- 실패 원인: 기능 차이가 아니라 harness가 Codex sandbox 안에서 실행되어 LLM/local Ollama 및 외부 DNS/Telegram 호출이 막힌 환경성 차이.
- 예:
ollama/qwen2.5:3b: [Errno 1] Operation not permitted - 예:
EIA 연결 실패: nodename nor servname provided - 예: Hermes direct 쪽 Telegram fallback DNS 실패
- 부작용: sandbox dual-run이 state를 저품질 데이터로 한 번 덮었으므로, 즉시 live Hermes 경로로 재실행해 복구했다.
수동 Hermes live trigger 2차 / state 복구
- Trigger:
hermes cron run ocCRIT-oil-supply-monitor-evening - Hermes output:
/Users/ron/.hermes/cron/output/ocCRIT-oil-supply-monitor-evening/2026-04-14_18-46-24.md - 결과: Exit Code 0
- Duration: 425.10초
- Telegram:
✅ 알림센터(market) 발송 완료 - Vault: 저장 완료
- state/history: 2026-04-14 18:46:24 KST 갱신
- 품질 평가: 4.2/5.0 통과
- 복구 후 핵심 state:
- WTI 99.6
- Brent 112.6
- EIA Cushing draw -0.02MB
- 한국 원유 재고 80일
- Fujairah 13.0MB
- Hormuz status
봉쇄중
cutover 결과
- OpenClaw
oil-supply-monitor-evening:enabled=false - Hermes
ocCRIT-oil-supply-monitor-evening:enabled=true,state=scheduled - 기존 잘못된 Hermes artifact-read job
ocAP-AP004-oil-evening-prompt:enabled=false,state=paused,superseded_by=ocCRIT-oil-supply-monitor-evening - 기존 rollback job
ocAI-AI004: 그대로enabled=false,state=paused - OpenClaw enabled count: cutover 직전 2 → cutover 후 1
- Hermes active count: 158
- Hermes gateway 상태: healthy, scheduler tick healthy
- 다음 정기 실행:
2026-04-14T21:00:00+09:00
판단
실제 운영 경로인 Hermes gateway/scheduler live 실행은 2회 모두 성공했다. strict-diff harness는 sandbox 네트워크/EPERM 때문에 실패했으나, 이는 production Hermes 실행 경로의 실패가 아니라 검증 harness 환경 문제로 분리한다. 21시 중복 실행을 막기 위해 OpenClaw를 비활성화하고 신규 Hermes 실제 실행 job으로 cutover했다.
남은 리스크
oil_supply_monitor.py는 단일 실행이 410~425초 걸린다. 900초 timeout은 유지해야 한다.- Codex sandbox 또는 일부 launchd/권한 context에서는
Errno 1 Operation not permitted, DNS 실패가 재현된다. 이 경로에서 verifier를 돌리면 저품질 state를 만들 수 있다. - dual-run 검증은 실제 운영 gateway context와 동일하지 않으면 Telegram/LLM/EIA 결과가 달라진다. 다음부터 이 job은
--dry-run또는 별도 state path가 없으면 strict dual-run을 피해야 한다. - 오늘 수동 검증/복구 과정에서 Telegram market 발송이 여러 번 발생했다.
자체평가
- 정확성: 4.7/5 — 실제 Hermes 실행 job 등록/cutover 완료. strict diff 실패는 환경성으로 분리 기록.
- 완성도: 4.7/5 — 백업, 수동 실행, state 복구, cutover, 중복 artifact job pause까지 완료.
- 검증: 4.5/5 — live Hermes 2회 성공, dual-run 양쪽 exit 0. 단 strict diff는 sandbox 때문에 실패.
- 최소 변경: 4.8/5 — target cron 및 superseded artifact job만 변경.
shared/llm.py,shared/cycle_base.py, LaunchAgents 미변경.