virtual-insanity
← 리포트 목록

agent-evidence-message-policy

근거 없는 상태 메시지 방지 운영안

목적

최근 recent_bus_messages에 남은 cowork needs_evidence 메시지와 CMD#38840 근거 없는 상태 메시지 방지안 정리 실패 흐름을 기준으로, 에이전트가 처리됨, 대기, 확인 같은 상태문만 보내고 일을 끝낸 것처럼 보이는 문제를 막는다.

이 문서는 코드 수정 없이 적용하는 운영 문서 초안이다. 목표는 모든 에이전트가 상태가 아니라 증거를 남기게 하는 것이다.

확인한 실패 흐름

  • CMD#38840은 status=failed, claimed_by=cowork, updated_at=2026-09-15 09:17:11로 남았다.
  • 실패 메시지는 needs_evidence: 결과 확인 보류였고, 누락 사유에 근거 섹션 미기재, 결과물과 검증 근거가 없음, 확인 보류, 검증 근거가 없음, 근거 없음, verification_command_unverifiable, execution_artifact_path_not_found:/Users/ron/.hermes/workspace/self_evolve.py가 포함됐다.
  • 핵심 원인은 상태 메시지가 실제 결과물 경로, 검증 명령, 검증 결과, 원문 인용을 대신했기 때문이다.

최소 규칙

  1. 완료 또는 상태 보고에는 반드시 결론, 근거, 검증, 근거파일 중 최소 해당되는 증거를 붙인다.
  2. 처리됨, 대기, 확인, 보류, 진행 같은 단어만으로는 어떤 작업도 마감하지 않는다.
  3. 근거에는 실제로 읽은 파일, 조회한 데이터베이스, 호출한 내부 API, 로그 경로 중 하나와 조회 시각을 적는다.
  4. 검증에는 실행한 명령 또는 검사 방법과 실제 결과값을 함께 적는다.
  5. 근거파일에는 실존 경로, 줄번호, 원문 일부 인용을 함께 적는다.
  6. 검증 명령에 없는 파일이나 차단된 명령을 적지 않는다. 특히 self_evolve.py처럼 현재 워크스페이스에 실존 확인이 안 된 경로는 근거로 쓰지 않는다.
  7. 상태 전달만 필요하면 완료처럼 쓰지 말고 아직 완료 아님을 명시한다.

금지 문장 5개

  1. 처리됨.
  2. 대기 중.
  3. 확인했습니다.
  4. 정상 확인함.
  5. 결과 확인 보류.

위 문장들은 단독으로 쓰면 금지다. 뒤에 실제 파일, 조회 시각, 검증값, 원문 인용이 붙으면 허용 문장으로 다시 쓴다.

허용 문장 5개

  1. 결론: 정책 문서를 생성했다. 근거: /Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md, 조회 2026-09-15 09:50 KST.
  2. 근거: /Users/ron/.hermes/data/ops_multiagent.db의 bus_commands #38840을 조회했고, status=failed, claimed_by=cowork, updated_at=2026-09-15 09:17:11을 확인했다.
  3. 검증: python3 - <<'PY' ...로 금지 문장 5개, 허용 문장 5개, 4블록 예시 1개를 검사했다 → 통과.
  4. 근거파일: /Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md:31 "1. 처리됨."
  5. 결론: 아직 완료가 아니다. 근거: 검증값이 없어서 done 제출 조건을 충족하지 못했다.

4블록 예시 1개

결론: 근거 없는 상태 메시지 방지 운영안 문서를 생성했다. 근거: /Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md, 조회 2026-09-15 09:50 KST, CMD#38840 실패 흐름 반영. 검증: python3 - <<'PY' ... → 금지 문장 5개, 허용 문장 5개, 결론/근거/검증/근거파일 예시 1개 확인, exit code 0. 근거파일: /Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md:45 "## 4블록 예시 1개"

반려 시 재작성 기준

반려 메시지에 needs_evidence, missing_source, missing_verification_value, missing_original_verification, verification_command_unverifiable, execution_artifact_path_not_found가 있으면 원문을 그대로 다시 보내지 않는다. 아래 순서로 재작성한다.

  1. 상태문 제거: 처리됨, 대기, 확인, 보류 같은 단독 상태문을 삭제한다.
  2. 결과물 확인: 실제 생성된 파일, 로그, 데이터베이스 레코드, 리포트 경로를 하나 이상 적는다.
  3. 검증값 추가: 실행한 검증 명령과 결과값을 적는다. 가능하면 exit code 0 또는 통과 토큰을 포함한다.
  4. 원문 인용 추가: 근거 파일의 줄번호와 짧은 원문 1줄을 붙인다.
  5. 그래도 증거가 없으면 done으로 마감하지 말고 아직 완료 아님으로 남긴다.

운영 판단

상태 메시지는 진행 상황을 알리는 데만 쓰고, 완료 메시지는 증거를 남기는 데 쓴다. 에이전트가 상태문만 보내면 사람은 일이 끝났는지, 막혔는지, 검증했는지 구분할 수 없다. 따라서 최소 운영 기준은 “상태 1줄 금지, 증거 4블록 우선”이다.