← 리포트 목록
2026-09-21 completion evidence gate 반복반려 원인·조치 이력 (agent_registry.py phantom path)
2026-09-21
cowork
[completion-evidence-gate, cowork, agent_registry, phantom-path, analyst-macro, BAMLC0A0CM]
2026-09-21 completion evidence gate 반복반려 원인·조치 이력
대행 태스크: CMD#39622([대행:cowork], 원래 대상 ron — 인프라 CB 트립으로 재라우팅).
조사 범위: data/ops_multiagent.db의 bus_commands/bus_commands_archive, 2026-09-20 23:29~2026-09-21 13:33.
사실(what) — 시간순 타임라인
| 시각 | CMD# | 대상 | 상태 | 요지 |
|---|---|---|---|---|
| 09-20 23:29~23:49 | #39560~39562 | analyst-macro | failed | BAMLC0A0CM(US IG OAS) 값 재확인 반복 반려 시작 |
| 09-20 23:46~00:18 | #39563, #39565 | cowork | failed | "analyst-macro 완료보고 반려 패턴 진단" 지시했으나 cowork도 함께 반려 |
| 09-21 00:16~02:38 | #39564, 39570, 39571, 39573 | analyst-macro | failed | BAMLC0A0CM 4블록 재제출 반복 실패(라벨/형식 문제) |
| 09-21 04:35~05:00 | #39581~39585 | analyst-macro/cowork | failed | "완료보고 4블록 표준화", "US IG OAS 원자노트화" 지시 — 전부 실패 |
| 09-21 06:17~06:26 | #39586~39589 | ron/cowork | failed/cancelled | run-cycle·헬스체크까지 연쇄 실패, cowork 대행도 실패 |
| 09-21 09:26~09:29 | #39602 | cowork | failed(그러나 조사 성공) | cowork가 completion_evidence_policy.md에 "agent_registry.py 근본원인 사례 v7" 정리 지시 수행 — 이 조사에서 근본원인 최초 확정 |
| 09-21 09:55:05 | (git commit 6d620d2, CMD 직접 연결 없음) | codex | 커밋 완료 | scripts/agent_registry.py 수정: ron(197행)·cowork(283행) 프롬프트에서 self_evolve.py/memory_manager.py 참조 제거, analyst-macro 레인의 market_indicator.py→market_indicator_tracker.py로 교정. 변경량 361행(+319/-42) |
| 09-21 10:16~10:18 | #39605, 39606 | cowork/analyst-macro | failed | 수정 이후에도 동일 phantom path 문자열이 result_note에 재등장하며 반려 지속(원인은 아래 "판단" 참고) |
| 09-21 11:11~13:19 | #39610, 39611, 39613, 39614, 39616, 39619, 39620 | analyst-macro/cowork | failed | BAMLC0A0CM 재확인·agent_registry.py 재검증 지시가 6차례 더 반복 실패 |
| 09-21 13:33 | #39621(analyst-macro), #39622(cowork, 본 태스크) | claimed | 진행중 | analyst-macro BAMLC0A0CM 7차 재시도 + 본 이력 정리 태스크 동시 발행 |
관계(why linked) — 근본원인
- 1차 원인(코드, 2026-09-21 09:55 수정 완료):
scripts/agent_registry.py의AGENT_ROLE_PROMPTS["ron"](구 197행)·["cowork"](구 283행)이 워크스페이스에 실존하지 않는self_evolve.py/memory_manager.py를 "사용 가능 도구"로 명시.find /Users/ron/.hermes -iname "self_evolve.py"→ 0건(오늘 재확인),memory_manager.py는hermes-agent/optional-skills/research/pinecone-research/scripts/와hermes-agent/agent/에만 존재하고 프롬프트가 가리키는workspace/scripts/memory_manager.py경로에는 없음. 에이전트가 시스템 프롬프트를 충실히 따라 이 경로를 근거/검증에 인용하면 게이트(_reported_workspace_paths()inagent_queue_worker.py)가execution_artifact_path_not_found로 즉시 반려. 이 계열 버그는config/completion_evidence_policy.mdv17절(2026-09-13 진단)에 이미 기록된 재발 사례이며, 오늘 09:26 cowork의 CMD#39602 조사가 v7절 형태로 재확정했다. - 09:55 수정 후에도 반려가 지속된 이유(구조적 잔존 원인, 미해결): 코드 수정은
agent_registry.py1개 파일(319 insertions/42 deletions)만 건드렸다. 그러나scripts/cowork_daemon.py의_ALLOWED_RUN_SCRIPTS(368~371행)와scripts/agent_queue_worker.py의 "진화 메트릭" 핸들러(5146/5158행)는 여전히self_evolve.py경로를 직접 호출 대상으로 등록해두고 있어 완전히 정리되지 않았다. 또한 CMD#39605/39606/39610/39611/39613/39614/39616/39619/39620의 태스크 본문 자체가 "self_evolve.py/memory_manager.py가 아직 프롬프트에 남아있는지 grep으로 확인하라"는 메타 진단(주제로서의 인용) 지시였는데, 완료 증거 게이트는 result_note 전체 텍스트에서 해당 경로 문자열이 등장하면 문맥(자기 증거로 인용했는지, 조사 대상으로 인용했는지)을 구분하지 않고execution_artifact_path_not_found로 판정한다. 이는 completion_evidence_policy.md v17절의 "하드블록 스캐너가 리스크 서술 문단의 묘사문을 자기고백으로 오판"하는 것과 동일한 클래스의 오탐(false positive)이다 — 즉 phantom path 제거를 검증하려는 태스크가 검증 시도 자체 때문에 계속 반려되는 재귀적 실패 루프.
판단(so what)
- 09:55 코드 수정으로 신규 태스크가 이 phantom path를 "실행 가능 도구"로 오인해 인용하는 1차 유입 경로는 차단됐다(analyst-macro의 market_indicator.py 오인용도 동시 교정). 이는 실측 가능한 개선이다.
- 그러나 완료 증거 게이트 자체가 "인용 문맥 구분 없이 문자열 매치만으로 반려"하는 구조적 한계가 남아있어, agent_registry.py 자체를 정리/검증하려는 사후 조사 태스크들이 같은 게이트에 의해 계속 반려되는 부작용이 발생했다(09:55 이후에만 #39606·39610·39611·39613·39614·39616·39619·39620, 총 8건 추가 반려). 이는 원래 CMD#39602/v17이 지목한 문제의 재확인이지 새로운 버그가 아니다.
- BAMLC0A0CM analyst-macro 재확인 태스크(총 12회 이상 반복, 09-20 23:29~09-21 13:17)는 phantom path 문제와 별개로 4블록 라벨 형식/근거파일 줄번호 표기(범위 vs 단일줄) 정규식 불일치도 겹쳐 반려가 누적됐다(#39613 지시문에 "근거파일은 범위 표기 금지, 단일 줄번호만" 명시된 것이 그 증거).
행동(now what) — 남은 조치
scripts/cowork_daemon.py_ALLOWED_RUN_SCRIPTS(368~371행)와scripts/agent_queue_worker.py진화 메트릭 핸들러(5146/5158행)의self_evolve.py직접 호출 참조도 agent_registry.py와 동일하게 정리 또는 실존 스크립트로 교체 필요(codex 위임 대상, 미착수).- 완료 증거 게이트의
execution_artifact_path_not_found판정 로직을 "결론/검증 섹션에 실제 실행 증거로 인용된 경로"만 검사하도록 좁히고, "근거/분석 섹션에서 조사 대상으로 언급된 phantom path"는 예외 처리하는 조항이config/completion_evidence_policy.md에 이미 v17절로 제안돼 있음(코드 반영 여부 미확인 — codex 재확인 필요). - analyst-macro BAMLC0A0CM 재시도(#39621, claimed)와 관련 ZK/원자노트화 태스크는 이 문서의 원인 해소 여부와 무관하게 4블록 형식(단일 줄번호 근거파일 표기)만 지키면 통과 가능 — 별도 코드 수정 불필요.
관련 ZK/원자노트 연결
- 검색 결과(
~/knowledge-agent/200-atomic,~/knowledge-agent/300-connected대상phantom|evidence.gate|self_evolve|agent_registry매치 0건, 조회 2026-09-21 13:4x KST) — 현재 원자노트 계층에는 이 주제의 개별 노트가 없다. 대신 아래 기존 400-reports 문서와 직접 연결된다(원자노트 승격 후보): ~/knowledge-agent/400-reports/hermes-quality-log.md— 2026-09-05 동일 계열 반려 3건(CMD#38258/38259/38264/38265) 최초 기록, self_evolve.py phantom path 최초 관측.~/knowledge-agent/400-reports/agent-evidence-message-policy.md—execution_artifact_path_not_found:/Users/ron/.hermes/workspace/self_evolve.py반려 문구 표준 사례로 인용./Users/ron/.hermes/workspace/config/completion_evidence_policy.mdv17절(2273~2339행, 2026-09-13)·v7절(810행 부근, 2026-09-05) — 동일 phantom path 계열 버그의 1~4차 재발 기록, 오늘 CMD#39602가 이어서 재확인.
근거 소스
sqlite3 /Users/ron/.hermes/data/ops_multiagent.db "SELECT id,target_agent,status,title,created_at,updated_at FROM bus_commands_archive WHERE id BETWEEN 39560 AND 39611 ORDER BY id;"(조회 2026-09-21 13:40 KST)sqlite3 /Users/ron/.hermes/data/ops_multiagent.db "SELECT id,target_agent,status,title,created_at,updated_at FROM bus_commands WHERE id BETWEEN 39612 AND 39622 ORDER BY id;"(조회 2026-09-21 13:40 KST)git -C /Users/ron/.hermes/workspace log --oneline -- scripts/agent_registry.py→6d620d2 fix(agent_registry): remove phantom tool paths from agent prompts(2026-09-21 09:55:05, 361행 변경)git -C /Users/ron/.hermes/workspace show --stat 6d620d2및 diff 헤더 확인find /Users/ron/.hermes -iname "self_evolve.py" -o -iname "memory_manager.py"→ self_evolve.py 0건, memory_manager.py는 workspace/scripts 밖 2건grep -n "self_evolve.py" /Users/ron/.hermes/workspace/scripts/cowork_daemon.py /Users/ron/.hermes/workspace/scripts/agent_queue_worker.py→ 여전히 존재(339/341/369/370행, 1660/1922/5146/5158행)