근거 없는 상태 메시지 방지 운영안
목적
최근 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가 포함됐다. - 핵심 원인은 상태 메시지가 실제 결과물 경로, 검증 명령, 검증 결과, 원문 인용을 대신했기 때문이다.
최소 규칙
- 완료 또는 상태 보고에는 반드시
결론,근거,검증,근거파일중 최소 해당되는 증거를 붙인다. 처리됨,대기,확인,보류,진행같은 단어만으로는 어떤 작업도 마감하지 않는다.근거에는 실제로 읽은 파일, 조회한 데이터베이스, 호출한 내부 API, 로그 경로 중 하나와 조회 시각을 적는다.검증에는 실행한 명령 또는 검사 방법과 실제 결과값을 함께 적는다.근거파일에는 실존 경로, 줄번호, 원문 일부 인용을 함께 적는다.- 검증 명령에 없는 파일이나 차단된 명령을 적지 않는다. 특히
self_evolve.py처럼 현재 워크스페이스에 실존 확인이 안 된 경로는 근거로 쓰지 않는다. - 상태 전달만 필요하면
완료처럼 쓰지 말고아직 완료 아님을 명시한다.
금지 문장 5개
- 처리됨.
- 대기 중.
- 확인했습니다.
- 정상 확인함.
- 결과 확인 보류.
위 문장들은 단독으로 쓰면 금지다. 뒤에 실제 파일, 조회 시각, 검증값, 원문 인용이 붙으면 허용 문장으로 다시 쓴다.
허용 문장 5개
- 결론: 정책 문서를 생성했다. 근거:
/Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md, 조회 2026-09-15 09:50 KST. - 근거:
/Users/ron/.hermes/data/ops_multiagent.db의 bus_commands #38840을 조회했고, status=failed, claimed_by=cowork, updated_at=2026-09-15 09:17:11을 확인했다. - 검증:
python3 - <<'PY' ...로 금지 문장 5개, 허용 문장 5개, 4블록 예시 1개를 검사했다 → 통과. - 근거파일:
/Users/ron/knowledge-agent/400-reports/agent-evidence-message-policy.md:31 "1. 처리됨." - 결론: 아직 완료가 아니다. 근거: 검증값이 없어서 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가 있으면 원문을 그대로 다시 보내지 않는다. 아래 순서로 재작성한다.
- 상태문 제거:
처리됨,대기,확인,보류같은 단독 상태문을 삭제한다. - 결과물 확인: 실제 생성된 파일, 로그, 데이터베이스 레코드, 리포트 경로를 하나 이상 적는다.
- 검증값 추가: 실행한 검증 명령과 결과값을 적는다. 가능하면
exit code 0또는 통과 토큰을 포함한다. - 원문 인용 추가: 근거 파일의 줄번호와 짧은 원문 1줄을 붙인다.
- 그래도 증거가 없으면 done으로 마감하지 말고
아직 완료 아님으로 남긴다.
운영 판단
상태 메시지는 진행 상황을 알리는 데만 쓰고, 완료 메시지는 증거를 남기는 데 쓴다. 에이전트가 상태문만 보내면 사람은 일이 끝났는지, 막혔는지, 검증했는지 구분할 수 없다. 따라서 최소 운영 기준은 “상태 1줄 금지, 증거 4블록 우선”이다.