Hermes migration batch AD real — 2026-04-14
결론
- batch AD 실제 이전: 2/5 완료.
- 완료 2개는 Hermes
enabled=true/scheduled, OpenClaw enabled=false.
- 실패 2개는 Hermes
enabled=false/paused, OpenClaw enabled=true 유지.
- 남은 1개는 안전 기준상 추가 선정하지 않았다. 현재 미선점 후보는 대부분 외부 발송·OAuth·장시간 LLM·vault 변조·batch B/C 제외 대상이라 강제 이전하지 않았다.
- LaunchAgents 변경 없음.
shared/llm.py, shared/cycle_base.py 변경 없음. Gateway PID 63520 유지 확인.
코드 수정
/Users/ron/.openclaw/workspace/scripts/pipeline/research_intelligence_aggregator.py
save_json_atomic(result, OUTPUT) → save_json_atomic(OUTPUT, result)
- 이유: 기존 스크립트가
dict를 path로 넘겨 원본 OpenClaw 실행부터 실패하던 버그 수정.
- 검증:
python3 -m py_compile 통과, --dry-run 통과.
백업
- Hermes:
/Users/ron/.hermes/cron/jobs.json.bak-batchAD-real-20260414161115
- OpenClaw:
/Users/ron/.openclaw/cron/jobs.json.bak-batchAD-real-20260414161115
최종 이전 2개
| OpenClaw id |
Hermes id |
변환 |
dual-run |
최종 상태 |
evidence |
research_intelligence_aggregator |
ocAD-AD000-research-intel |
shell-job |
3회 PASS, strict diff 0, watch changed |
Hermes scheduled / OpenClaw disabled |
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD000-research-intel/retry-schema-cycle-1/20260414_161826_research_intelligence_aggregator_ocAD-AD000-research-intel.json
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD000-research-intel/retry-schema-cycle-2/20260414_161838_research_intelligence_aggregator_ocAD-AD000-research-intel.json |
energy-data-collector |
ocAD-AD001-energy-data |
prompt-wrapped command → shell-job |
3회 PASS, strict diff 0 |
Hermes scheduled / OpenClaw disabled |
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD001-energy-data/final-cycle-1/20260414_161923_energy-data-collector_ocAD-AD001-energy-data.json
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD001-energy-data/final-cycle-2/20260414_161930_energy-data-collector_ocAD-AD001-energy-data.json
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD001-energy-data/final-cycle-3/20260414_161938_energy-data-collector_ocAD-AD001-energy-data.json |
정정: research_intelligence_aggregator 3회차 evidence는 아래가 맞다.
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD000-research-intel/final-cycle-3/20260414_161921_research_intelligence_aggregator_ocAD-AD000-research-intel.json
Rollback / 미이전
| OpenClaw id |
Hermes id |
결과 |
최종 조치 |
evidence |
commodity-spike-morning |
ocAD-AD002-commodity-spike |
FAIL: strict diff mismatch. 실제 급변 3개가 감지되어 LLM/알림/alert log 경로가 실행됨. |
Hermes paused / OpenClaw enabled 유지 |
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD002-commodity-spike/cycle-1/20260414_161127_commodity-spike-morning_ocAD-AD002-commodity-spike.json |
gitnexus-reindex |
ocAD-AD003-gitnexus-reindex |
FAIL: OpenClaw/Hermes 양쪽 300초 timeout |
Hermes paused / OpenClaw enabled 유지 |
/Users/ron/.openclaw/workspace/verification/hermes-batch-AD-real/ocAD-AD003-gitnexus-reindex/cycle-1/20260414_161155_gitnexus-reindex_ocAD-AD003-gitnexus-reindex.json |
5개를 채우지 않은 이유
- 이미 다른 batch가 active 소유권을 가진 항목은 제외했다.
- batch B/C 시도 항목은 제외했다. 특히
vault-lint-daily, gics-sector-tracker, etf-data-collect-domestic-index, copper-market-collector, urea-price-tracker, data-freshness-watcher는 재선정하지 않았다.
- 남은 command 후보는 안전 기준에 맞지 않았다.
- 외부 발송/OAuth:
gmail-credit-monitor, bond-morning-poll, gmail-newsletter-collector
- vault 변조/승격:
jisik-promote-dkzkyq, vault_linker, domain-wiki-compiler
- 장시간 LLM/비결정 출력:
sector_news_scorer, claude-practice-monitor, bond-daily-report, daily-code-review
- 운영 발송 중복 위험:
task-briefing-morning, morning-review, oil-supply-monitor, ETF 리포트 계열
commodity-spike-morning은 no-op일 것으로 예상했으나 실제 급변 감지로 알림 경로까지 실행되어 rollback했다. 이 분류 실수 때문에 추가 위험 후보를 더 밀지 않았다.
최종 상태 확인
research_intelligence_aggregator: OpenClaw disabled / Hermes ocAD-AD000-research-intel scheduled
energy-data-collector: OpenClaw disabled / Hermes ocAD-AD001-energy-data scheduled
commodity-spike-morning: OpenClaw enabled / Hermes ocAD-AD002-commodity-spike paused
gitnexus-reindex: OpenClaw enabled / Hermes ocAD-AD003-gitnexus-reindex paused
최종 검증
python3 -m json.tool ~/.hermes/cron/jobs.json 통과
python3 -m json.tool ~/.openclaw/cron/jobs.json 통과
hermes cron status: gateway/API/scheduler healthy, active jobs 136, next run 2026-04-14T16:30:00+09:00
lsof -nP -iTCP:18789 -sTCP:LISTEN: Python PID 63520 listen 확인
python3 /Users/ron/.openclaw/workspace/scripts/knowledge_os.py mcp-check: 4/4 healthy
Remaining Risks
energy-data-collector는 현 네트워크/DNS 상태에서 EIA/FRED 데이터 수집이 모두 실패하지만, OpenClaw와 Hermes 출력이 3회 동일해 이전했다. 네트워크 복구 후 실제 저장 경로 생성을 추가 관찰해야 한다.
commodity-spike-morning 검증 중 실제 알림/alert log 경로가 실행됐다. rollback은 완료했지만, 검증 1회 자체의 side effect는 발생했다.
- Hermes shell job은
silent=false, prompt=""가 없으면 출력이 [SILENT]로 저장되어 false diff가 난다. 이후 shell-job 변환 스크립트에는 이 필드를 기본 포함해야 한다.
gitnexus-reindex timeout이 반복된다. 현재 별도 15:09대 npx gitnexus analyze 프로세스가 남아 있으나 AD가 생성한 프로세스는 verifier timeout으로 종료됐다.
자체평가
- 자체평가: 3.9/5 — 요청 기준 4.7 미달
- 정확성 4.4: strict dual-run 3회 통과한 2개만 cutover, 실패 항목 rollback 완료.
- 완성도 2.8: 5개 목표 미달.
- 검증 4.5: JSON, Hermes status, PID, MCP health, py_compile 확인.
- 최소 변경 4.0: 공유 파일/LaunchAgents 미수정. 단, research aggregator 버그 수정과 commodity 검증 side effect 때문에 감점.