virtual-insanity
← 리포트 목록

batch_A

2026-04-14 hermes

Hermes Batch A 실제 마이그레이션 보고서 (2026-04-14)

상태: 완료 — batch A forced run 후 안전 가드 발동, Hermes 전부 paused rollback

0. 범위

  • batch: A
  • 대상 5개: source-registry-updater, quant-signal-generator, data-quality-monitor, vault-control-sync, hypothesis-feedback
  • 금지 준수: LaunchAgent 변경 없음, 코드 수정 없음, 5개 초과 없음, 삭제 없음

1. 백업 및 disabled job 추가

  • Hermes backup: /Users/ron/.hermes/cron/jobs.json.bak-batchA-20260414T135911
  • OpenClaw backup: /Users/ron/.openclaw/cron/jobs.json.bak-batchA-20260414T135911
  • 첫 시도 이슈: system python3가 Hermes 코드의 Path | None 문법을 지원하지 않아 import 실패. jobs.json은 변경 전이었다.
  • 처리: 수동 schema 작성으로 batch A 5개를 enabled=false, state=paused, deliver=local, provider=ollama, model=qwen2.5:3b로 추가.

2. 첫 실행 로그

2.1 provider 보정

ocA-src-reg 실행은 Hermes runtime provider가 provider=ollama를 직접 해석하지 못해 OpenRouter로 떨어졌고, command가 실행되지 않았다. 출력 파일도 없었다.
조치: batch A 5개 job을 provider=custom, base_url=http://localhost:11434/v1, model=qwen2.5:3b로 보정. ocA-src-reg는 재시도를 위해 paused/error로 되돌림.

2.2 수동 tick 한계 및 gateway scheduler 재시도

hermes cron tick를 Codex sandbox 안에서 실행하면 OpenAI-compatible HTTP 호출이 Connection error로 실패했다. 이는 gateway 프로세스가 아니라 현재 Codex 실행 환경의 네트워크 제한으로 판단된다. 따라서 hermes cron run <id>만 호출하고, 실제 실행은 이미 떠 있는 Hermes gateway scheduler가 처리하는지 확인하는 방식으로 재시도한다.

2.3 즉시 rollback

Gateway scheduler 재시도에서 source_registry_updater.py 자체는 실행되어 registry 파일이 생성되었지만, 이후 LLM이 스크립트 stdout을 다시 shell 명령처럼 실행하려는 오동작을 보였다. 이는 prompt-wrap 패턴이 현재 Hermes AIAgent/qwen2.5 조합에서 안전하게 고정되지 않았다는 뜻이다.

안전 가드에 따라 batch A Hermes job 5개 전부 enabled=false, state=paused로 rollback했다. OpenClaw cron은 그대로 enabled 유지.

3. 최종 상태

cron Hermes 상태 OpenClaw 상태 첫 실행/diff 최종 판정
source-registry-updater paused enabled 대상 명령은 실행되어 registry.json 생성됨. 그러나 LLM이 stdout을 추가 shell 명령으로 오인하고 pip install requests, python manage.py runserver 등 의도 밖 명령을 시도. Hermes output은 error. rollback
quant-signal-generator paused enabled 실행 전. batch 공통 prompt-wrap 안전성 실패로 진행 중단. rollback
data-quality-monitor paused enabled 실행 전. batch 공통 prompt-wrap 안전성 실패로 진행 중단. rollback
vault-control-sync paused enabled 실행 전. batch 공통 prompt-wrap 안전성 실패로 진행 중단. rollback
hypothesis-feedback paused enabled 실행 전. batch 공통 prompt-wrap 안전성 실패로 진행 중단. rollback

4. 산출물/증거

  • Hermes job 5개는 실제 추가되었으나 모두 enabled=false, state=paused로 rollback됨.
  • OpenClaw cron 5개는 모두 기존 enabled=true 유지.
  • ocA-src-reg Hermes output:
  • /Users/ron/.hermes/cron/output/ocA-src-reg/2026-04-14_14-01-17.md
  • /Users/ron/.hermes/cron/output/ocA-src-reg/2026-04-14_14-03-25.md
  • source registry output exists: /Users/ron/.openclaw/workspace/memory/source-registry/registry.json = True, size=65165, mtime=2026-04-14 14:05:10
  • Hermes jobs sha256: ea5f966182bef2ae03b4aa7e9884293bf456ac1c4f530c3c554dd727598dae17
  • OpenClaw jobs sha256: dfdb65fe2bb573c662490fc13e6002d08ac8b1c9431b42ee7e5eff04951e99e8

Hermes batch A job 상태

id enabled state last_status next_run_at
ocA-src-reg False paused error None
ocA-quant-sig False paused None None
ocA-data-quality False paused None None
ocA-vault-control False paused None None
ocA-hyp-feedback False paused None None

OpenClaw batch A 상태

id enabled state
source-registry-updater True {'lastRunAtMs': 1775793176545, 'lastRunStatus': 'ok', 'lastStatus': 'ok', 'lastDurationMs': 6222, 'lastDeliveryStatus': 'not-delivered', 'consecutiveErrors': 0, 'nextRunAtMs': 1776038700000, 'lastDelivered': False}
quant-signal-generator True {'nextRunAtMs': 1776033900000, 'lastRunAtMs': 1775791071806, 'lastRunStatus': 'ok', 'lastStatus': 'ok', 'lastDurationMs': 23554, 'lastDeliveryStatus': 'not-delivered', 'consecutiveErrors': 0, 'lastDelivered': False}
data-quality-monitor True {'nextRunAtMs': 1776032100000, 'lastRunAtMs': 1775945700973, 'lastRunStatus': 'ok', 'lastStatus': 'ok', 'lastDurationMs': 30617, 'lastDeliveryStatus': 'not-delivered', 'consecutiveErrors': 0, 'lastDelivered': False}
vault-control-sync True {'lastRunAtMs': 1775934000068, 'lastRunStatus': 'ok', 'lastStatus': 'ok', 'lastDurationMs': 16654, 'lastDeliveryStatus': 'not-delivered', 'consecutiveErrors': 0, 'nextRunAtMs': 1776020400000, 'lastDelivered': False}
hypothesis-feedback True {'consecutiveErrors': 0, 'lastDelivered': False, 'lastDeliveryStatus': 'not-delivered', 'nextRunAtMs': 1775999400000, 'lastRunAtMs': 1775913000067, 'lastRunStatus': 'ok', 'lastStatus': 'ok', 'lastDurationMs': 36905}

5. 판단

이번 batch A는 “실제로 옮기기”를 시도했다. jobs.json 백업 후 Hermes에 5개를 추가했고, 첫 job을 forced run했다. 그러나 prompt-wrap이 현재 Hermes AIAgent/qwen2.5 실행에서 명령 1회로 고정되지 않아 안전 가드가 발동했다.

최종 소유권 이관은 0개다. 이것은 보수적 중단이 아니라, 실제 첫 실행에서 의도 밖 command 실행이 관찰되어 rollback한 결과다.

다음 수정 없이는 같은 방식으로 나머지 batch를 진행하면 안 된다. 필요한 보강은 Hermes cron에 command 타입/direct shell executor를 추가하거나, prompt-wrap job에 max_tool_calls=1/terminal command allow-single-shot 같은 런타임 가드를 거는 것이다.