← 리포트 목록
에이전트 상태보고 근거 미기재 반복 — 정책 통합 및 오케스트레이터 배선 요구
2026-09-04
cowork
[ops, bus_commands, evidence_gate, orchestrator, policy_consolidation]
결론 (What)
이번 요청("근거 미기재 반복 → 정책안 작성")은 6번째 동일 요청이다.
근거 필드 필수화 정책 문서는 이미 4건 존재하고(260827×2, 260901,
completion_evidence_policy.md, agent_completion_submission_standard.md),
scripts/cowork_daily_prompt.md 834~873행에 4블록 템플릿 배선까지
2026-09-04 오늘 패치로 완료됐다. 그런데도 오늘(2026-09-04) 하루 동안
cowork 2건(#38042, #38044) · ron 2건(#38045, 및 1건)이 동일 사유
(missing_source, missing_original_verification, "결과 확인 보류")로
반려됐다 (실측: sqlite3 /Users/ron/.hermes/data/ops_multiagent.db
"SELECT claimed_by, COUNT(*) FROM bus_commands WHERE (result_note LIKE
'%missing_%' OR result_note LIKE '%결과 확인 보류%') AND
datetime(created_at) >= '2026-09-04 00:00:00' GROUP BY claimed_by" →
cowork|2, ron|2). 즉 7번째 정책 문서를 새로 쓰는 것은 문제를 풀지 못한다
— 정책 텍스트 부재가 원인이 아니라는 것이 오늘 자체 데이터로 재확인됐다.
왜 이렇게 판단하는가 (Why linked)
- 260901 문서(v2, §"근본원인 재진단")가 이미 이 패턴을 지적했다: "정책은
있는데 아무도 안 읽는다" → 프롬프트 배선 누락이 원인이라고 진단하고
조치했다. 그런데 배선(오늘자 패치) 이후에도 재발했다는 것은, 진단이
한 단계 더 깊이 들어가야 한다는 뜻이다: 문제는 "형식을 모른다"가
아니라 "실행하지 않고 제안문만 써서 제출한다"이다. cowork_daily_prompt.md
845~848행이 이미 이걸 정확히 경고하고 있음에도(
제안/권고문만 있고 실제로 명령을 실행하거나 파일을 확인한 근거가 없으면 게이트가 정탐으로 차단한다) 같은 날 재발했다 — 이는 프롬프트 텍스트로 행동을 강제할 수 있는 한계에 도달했다는 신호다. - 근본 구조: 정책 문서와 프롬프트 안내는 에이전트가 "읽고 지킬 것"을
기대하는 소프트 통제다. 실제로 반려를 막는 것은
_completion_required_evidence_gaps()게이트뿐이고, 이 게이트는 이미 올바르게 작동 중이다(오늘도 정확히 빈 근거를 잡아냈다 — 이건 게이트 버그가 아니라 게이트가 제 역할을 한 것). 게이트가 필터링하는 것과 에이전트가 애초에 근거 있는 작업을 하도록 만드는 것은 다른 문제이며, 후자는 정책 문서만으로 해결되지 않는다.
적용 대상 (Scope)
- 채널:
bus_commands테이블 완료 보고 전체(텔레그램 상태보고 아님 — 텔레그램 요약은 이 테이블을 소스로 파생되므로 여기가 원인 지점). - 에이전트:
analyst-fundamental,analyst-macro,analyst-pm,analyst-technical,codex,cowork,data-analyst,guardian,ron(orchestrator 대행 포함).evidence-sentinel은 게이트 운영자이므로 검증 대상에서 제외(기존 표준과 동일). - 이번 정책 통합의 신규 적용 대상:
orchestrator.py의 태스크 생성 로직(create_task()계열) — 지금까지 4건의 정책 문서는 전부 "완료 보고 작성 시점"의 에이전트 행동을 겨냥했지만, 그 이전 단계인 "태스크 생성 시점"에 아무 강제가 없다는 공백이 이번에 처음 특정됐다.
필수 규칙 (Rules)
- 문서 신규 생성 동결(document freeze): "근거 미기재/누락 방지" 주제로 새 정책 markdown을 만드는 작업 요청이 다시 들어오면, cowork는 신규 문서 대신 이 문서 + 기존 4건을 링크하고 "이미 배선됨, 재발 원인은 문서 추가가 아니라 오케스트레이터 강제 배선 누락"이라고 응답한다. 문서 개수가 늘어나는 것 자체가 드리프트 신호이므로 5건째부터는 신규 문서 생성을 정책적으로 금지한다.
- 태스크 생성 시점 템플릿 강제 주입(신규, 코드 변경 필요 — codex 위임):
orchestrator가 bus_commands에 태스크를 만들 때, body 말미에 아래 스텁을
자동 삽입한다.
[완료보고 필수 형식 — 빈 칸 금지] 결론: 근거: 검증: 근거파일(코드/설정 변경 시 필수):목적은 "에이전트가 읽고 기억해서 쓰는 것"에서 "태스크 본문에 이미 빈 칸이 있어서 채우지 않으면 눈에 띄게 비어 보이는 것"으로 강제 방식을 바꾸는 것이다. 이는 코드(orchestrator.py) 수정이 필요하므로 이 문서 자체는 초안이며 실행은 codex 위임 대상이다. - 재발 3회 규칙 하드 적용: 260901 문서 §6-5에 이미 "24시간 missing_original_verification 또는 근거 섹션 미기재가 1건 이상이면 재발"이라는 기준이 있다. 이번 실측으로 이 기준이 이미 초과됐음 (2026-09-04 하루 4건)을 공식 확인한다 — 260901 문서 §"검증방법"의 롤백 조건("동일 라벨 3회 연속 재발 시 게이트 이중화 drift 가능성, codex 재위임")을 지금 발동한다.
- idle/대기 보고는 예외로 유지:
analyst-pm,data-analyst등의 "결론: 작업 대기중 / 근거: 작업 대기중"은 이미 게이트를 통과하고 있고 실제로 대기 상태 자체가 사실이므로 이번 정책의 반려 대상이 아니다 (혼동 방지를 위해 명시).
예외 처리 기준 (Exceptions)
- 순수 idle/대기 상태: 근거란에 "idle" 또는 "작업 대기중"을 그대로 적는 것은 허용(사실 자체가 근거). 신규 게이트 강화 대상 아님.
- [대행:X] 라우팅 실행형 태스크: 헬스체크·run-cycle 등 코드 작성이 아닌 "기존 스크립트 실행" 태스크는, 실행 로그가 없으면 무조건 반려 유지(완화 없음) — 오늘 #38045(헬스 체크, ron, failed)가 정확히 이 케이스이며 게이트가 올바르게 작동한 사례다.
- 순수 정책/조사 태스크(코드 변경 없음): "근거파일(파일+줄+인용)" 요소는 면제 가능하나, "근거"(조회한 실제 데이터 소스+타임스탬프)와 "검증"(실제 조회 명령+결과)은 면제되지 않는다. 이번 문서 자체가 이 기준을 충족한 사례로 남긴다(§"왜 이렇게 판단하는가"의 sqlite3 실측 수치 참조).
산출물
- 본 문서 1건 (신규 markdown, 4번째 아님을 명시 — 통합/롤백판정 성격).
- 검증 근거:
sqlite3 /Users/ron/.hermes/data/ops_multiagent.db "SELECT claimed_by, COUNT(*) FROM bus_commands WHERE (result_note LIKE '%missing_%' OR result_note LIKE '%결과 확인 보류%') AND datetime(created_at) >= '2026-09-04 00:00:00' GROUP BY claimed_by"→ cowork=2, ron=2 (조회 시각 2026-09-04 09:5x KST). - 다음 행동: 규칙 2(오케스트레이터 태스크 생성 시 템플릿 스텁 자동 주입)를 codex에 코드 작업으로 위임 제안. 본 문서 배포 후 24시간 내 동일 라벨 재발이 다시 1건이라도 나오면, "정책/프롬프트 계층으로는 해결 불가"로 최종 확정하고 오케스트레이터 코드 변경을 필수 경로로 전환한다.
ZK 연결
- [[260901_ron_검증근거_누락방지_최소기준]]
- [[260827_cowork_완료보고-검증근거-표준-v2-오분류방지]]
- [[260827_cowork_완료보고-검증근거-필수화-정책안]]