virtual-insanity
← 리포트 목록

Hermes batch X migration real run

2026-04-14 hermes

Hermes batch X 실제 이전

시작 상태

  • 시작: 2026-04-14 15:52:57 KST
  • Hermes jobs backup: /Users/ron/.hermes/cron/jobs.json.bak-batchX-20260414155257
  • OpenClaw jobs backup: /Users/ron/.openclaw/cron/jobs.json.bak-batchX-20260414155257
  • Gateway: 18789 LISTEN 확인됨, pid 63520 유지 대상

후보 선정

완료. 단, 이후 동시 batch 경합으로 X ownership은 모두 회수함.

선정 5개: | OpenClaw id | Hermes id | 판단 | |---|---|---| | daily-kpi-eval | ocX-X000-daily-kpi | no LLM, JSON state 계산. 기존 실패는 출력 diff 성격. | | daily-system-validator | ocX-X001-daily-validator | no LLM, 검증 전용. 내부 ops 알림 가능. | | critic-watcher-10m | ocX-X002-critic-watcher | dry-run preflight processed=0, watcher state 갱신형. | | etf-data-collect-global-alloc | ocX-X003-etf-global-alloc | 미선점 ETF 글로벌 수집. 루틴 출력/로그 명확. | | etf-data-collect-global-theme | ocX-X004-etf-global-theme | 미선점 ETF 글로벌 수집. 루틴 출력/로그 명확. |

Hermes 항목은 자동 firing 충돌 방지를 위해 검증 전 enabled=false/staged로 추가함. 검증 통과 시 enabled=true 전환.

Dual-run 검증 로그

daily-kpi-eval → ocX-X000-daily-kpi

  • cycle 1: FAIL rc=2 elapsed=0.5s reasons=['strict_diff_mismatch'] report=/Users/ron/.openclaw/workspace/verification/hermes-batch-X-real/ocX-X000-daily-kpi/cycle-1/20260414_155444_daily-kpi-eval_ocX-X000-daily-kpi.json

daily-system-validator → ocX-X001-daily-validator

  • cycle 1: FAIL rc=2 elapsed=3.4s reasons=['strict_diff_mismatch'] report=/Users/ron/.openclaw/workspace/verification/hermes-batch-X-real/ocX-X001-daily-validator/cycle-1/20260414_155445_daily-system-validator_ocX-X001-daily-validator.json

critic-watcher-10m → ocX-X002-critic-watcher

  • cycle 1: FAIL rc=2 elapsed=0.5s reasons=['strict_diff_mismatch'] report=/Users/ron/.openclaw/workspace/verification/hermes-batch-X-real/ocX-X002-critic-watcher/cycle-1/20260414_155448_critic-watcher-10m_ocX-X002-critic-watcher.json

etf-data-collect-global-alloc → ocX-X003-etf-global-alloc

  • cycle 1: FAIL rc=2 elapsed=1206.2s reasons=['openclaw_failed', 'hermes_exec_failed', 'strict_diff_mismatch'] report=/Users/ron/.openclaw/workspace/verification/hermes-batch-X-real/ocX-X003-etf-global-alloc/cycle-1/20260414_155449_etf-data-collect-global-alloc_ocX-X003-etf-global-alloc.json

etf-data-collect-global-theme → ocX-X004-etf-global-theme

  • cycle 1: FAIL rc=2 elapsed=1195.6s reasons=['openclaw_failed', 'hermes_exec_failed', 'strict_diff_mismatch'] report=/Users/ron/.openclaw/workspace/verification/hermes-batch-X-real/ocX-X004-etf-global-theme/cycle-1/20260414_161455_etf-data-collect-global-theme_ocX-X004-etf-global-theme.json

결과 판정

Batch X는 최종 cutover 0개. 이유는 단순 실패가 아니라 동시 마이그레이션 경합임.

OpenClaw id X Hermes id X dual-run 결과 최종 조치 현재 소유/상태
daily-kpi-eval ocX-X000-daily-kpi 1회 실패: strict_diff_mismatch ocX 비활성 rollback-yield batch V가 OpenClaw 비활성화, Hermes ocV-V006-daily-kpi 기록
daily-system-validator ocX-X001-daily-validator 1회 실패: strict_diff_mismatch ocX 비활성 rollback-yield 다른 batch가 OpenClaw 비활성화/마이그레이션 상태 기록
critic-watcher-10m ocX-X002-critic-watcher 1회 실패: strict_diff_mismatch ocX 비활성 rollback-yield 다른 batch가 OpenClaw 비활성화/마이그레이션 상태 기록
etf-data-collect-global-alloc ocX-X003-etf-global-alloc 1회 실패: openclaw_failed/hermes_exec_failed/strict_diff_mismatch ocX 비활성 rollback-yield, 잔여 프로세스 종료 확인 batch AL이 OpenClaw 비활성화, Hermes ocAL-AL000-etf-global-alloc-prompt 기록
etf-data-collect-global-theme ocX-X004-etf-global-theme 1회 실패: openclaw_failed/hermes_exec_failed/strict_diff_mismatch ocX 비활성 rollback-yield, 잔여 프로세스 종료 확인 batch AR/Y가 선점, OpenClaw는 paused-existing-hermes-owner 상태

확인한 현재 상태

  • Hermes ocX-*: 모두 enabled=false, state=paused, migration_status=rollback-yield.
  • OpenClaw enabled 잔여: 4개뿐이며 모두 이미 다른 Hermes owner가 있음.
  • etf-data-collect-domestic-theme → Hermes ocAR-AR001-etf-domestic-theme-prompt active
  • notion-publisher → Hermes ocAP-AP000-notion-dry-run active
  • oil-supply-monitor → Hermes ocAQ-AQ001-oil-supply-monitor active
  • oil-supply-monitor-evening → Hermes ocAP-AP004-oil-evening-prompt-artifact active
  • JSON 검증: ~/.hermes/cron/jobs.json, ~/.openclaw/cron/jobs.json 모두 parse OK.
  • LaunchAgents/Gateway 변경 없음. Gateway kill/restart 없음.
  • shared/llm.py, shared/cycle_base.py 수정 없음.

결론

Batch X는 5개를 새로 차지해 cutover하지 못함. 작업 도중 다른 batch들이 같은 남은 후보를 선점·비활성화하면서, X가 계속 밀어붙이면 중복 Hermes job을 만드는 상황이었음. 따라서 X job은 전부 rollback-yield 처리함.

다음 권장 조치: 남은 OpenClaw enabled 4개는 이미 Hermes active owner가 있으므로, 해당 owner batch가 검증 근거를 확인한 뒤 OpenClaw disabled 정리만 마무리하면 됨. X가 임의로 비활성화하지 않는 것이 안전함.

자체 평가

  • 정확성: 4/5 — 경합 후 실제 상태 기준으로 안전 rollback 처리.
  • 완성도: 3/5 — cutover 0개라 목표 미달. 단, 현재 미선점 enabled 후보가 사라져 추가 이전 불가.
  • 검증: 4/5 — JSON, ocX disabled, 잔여 프로세스 확인.
  • 최소 변경: 5/5 — Hermes ocX 항목 외 코드/공용 파일 수정 없음.

종합: 4.0/5. 목표 4.7 미달 사유는 동시 batch 경합과 초기 Hermes command wrapping 미흡. 후속 batch에서는 shell command 자체를 [SILENT] wrapper로 저장한 뒤 verifier를 돌릴 것.