virtual-insanity
← 리포트 목록

bus 완료보고 검증근거 누락 방지 운영안

2026-08-31 bus [ops, bus, evidence-gate, agent-quality]
  1. [권고] → 1순위: 모든 bus 완료보고를 6칸 형식으로 고정한다. 필수값은 원본, 산출물, 실행값, 검증값, 저장위치, 미확인/예외다. 최근 20건 중 증거 차단 10건, 실패 11건으로 실패율 55.0%였고, 이 중 ron 5건, cowork 3건이 반복 중심이었다. 기대효과는 증거누락형 failed 10건을 즉시 재작성 대상으로 분리해 같은 결론 반복을 50% 이상 줄이는 것이다. → 2순위: 에이전트 계열별 완료 필수값과 차단 기준을 다르게 적용한다. ron은 운영 실행 증거, cowork는 판단 근거와 적용 대상, analyst는 데이터 기준일과 표본 수를 필수값으로 둔다. 최근 차단 사유는 missing_source 6건, missing_original_verification 6건, missing_verification_value 5건, missing_execution_value 4건이었다. 기대효과는 원인별 재시도 지시를 자동화해 재시도 낭비를 30% 이상 줄이는 것이다.

  2. [현황] 조회 기준은 ops_multiagent.db의 bus_commands 최신 20건(id 37365~37564)과 completion_evidence_blocked.jsonl 최근 200줄이다. 최신 20건 중 failed는 11건(55.0%), 증거 관련 차단은 10건(50.0%)이다. 에이전트별 증거 차단은 ron 5건, cowork 3건, analyst-fundamental 1건, analyst-technical 1건이다. 차단 로그 최근 200줄에서는 codex 165건, ron 20건, analyst-fundamental 8건, cowork 7건으로 codex성 코드완료 게이트가 가장 많이 작동했지만, 이번 대상인 최근 bus_messages 반복은 ron/cowork 대행 흐름에 집중됐다. 이전 참고 메모(2026-08-31 agent-result-evidence-proposal)는 최근 6시간 33건 중 failed 17건(51.5%)으로 기록돼 있었고, 이번 최신 20건은 failed 11건(55.0%)이라 실패율이 3.5%p 높아졌다.

  3. [리스크] 구조적 위험 1: 대행 작업에서 원래 담당자와 실제 수행자가 갈라지며 원본 확인 책임이 흐려진다. #37557, #37558, #37562는 대행·정책·헬스체크 문장이 있었지만 원본과 검증값이 부족해 failed로 저장됐다. 구조적 위험 2: 정책 제안 작업은 실제 파일 산출물이 없어도 말로 닫히기 쉬우며, 이때 missing_source와 missing_original_verification이 반복된다. 구조적 위험 3: blocked: not in whitelist를 장애나 보안 사고처럼 해석하면 잘못된 복구 작업이 생긴다. 이는 정상 권한 차단이며, 차단된 명령·차단 범위·대체 조회 여부만 남겨야 한다. 단일 장애점: completion_evidence_blocked.jsonl은 차단 사유의 핵심 장부다. 이 로그가 비어 있거나 갱신되지 않으면 실패 원인 통계와 재시도 분류가 동시에 약해진다.

  4. [에이전트별 완료 보고 필수값] ron 계열: 원래 요청 id, 실제 수행 id, 실행한 명령/조회 경로, 산출물 위치 또는 메시지 id, 검증 결과값, 다음 실행 조건을 필수로 둔다. 차단 기준은 missing_execution_value, missing_source, missing_verification_value, missing_original_verification, 근거 섹션 미기재, 실행 전 선언문이다. 예외는 llm_infra_failure_retry_deferred처럼 실행 자체가 상류 모델 실패로 막힌 경우이며, 이때는 후보 모델 수, 실패 유형, 쿨다운 기준, 다음 재시도 시각을 적으면 done이 아니라 failed/재시도대기로 닫는다. cowork 계열: 판단 대상, 근거 원천 2개 이상, 비교 수치, 권고 액션, 적용 범위, 검증 명령을 필수로 둔다. 정책안·설계안도 산출물로 인정하되 파일, ops 메시지, 큐 id 중 하나가 있어야 한다. 차단 기준은 수치 없는 권고, 원본 없는 판단, 검증 방법 없는 운영안, “확인 필요”만 적고 실제 조회가 없는 보고다. 예외는 순수 검토 보류이며, 이때도 보류 사유와 다시 볼 조건을 적어 failed/보류로 남긴다. analyst 계열: 데이터 기준일, 사용 데이터셋, 표본 수/행 수, 제외 목록, 산출 파일, 핵심 지표값, 검증값을 필수로 둔다. analyst-macro는 지수·금리·환율·원자재·신용·변동성 중 확인 항목 수를 적고, analyst-fundamental은 기업 수·재무 기준일·최신성 공백을 적고, analyst-technical은 티커 수·지표 수·과열/침체 판정값을 적는다. 차단 기준은 데이터 기준일 없음, 표본 수 없음, 원문/파일 없음, 산출물 없음, 검증값 없음이다. 예외는 데이터 제공처 차단 또는 장 마감 전 미공개이며, 이때는 빈 항목 목록과 다음 수집 조건을 남긴다.

  5. [예외 처리 기준] 정상 예외 1: blocked: not in whitelist는 정상 보안 차단이다. 보안 사고가 아니라 권한 경계로 분류하고, 차단 명령과 대체 경로만 기록한다. 정상 예외 2: 모델 요청과다/타임아웃은 llm_infra_failure_retry_deferred로 분류한다. 즉시 재시도 금지, 쿨다운 후 다음 주기로 넘긴다. 정상 예외 3: 데이터가 실제로 0건이면 “0건”을 검증값으로 인정한다. 단, 실행 명령과 조회 범위가 있어야 한다. 비정상 예외: “도구가 없다”, “확인 못함”, “확인할 수 없음”, “결론 참고”는 완료 근거가 아니다. 이 문구가 있으면 done 금지다.

  6. [검증방법] KPI 1: 최신 20건 중 증거 관련 failed 비율을 50.0%에서 25.0% 이하로 낮춘다. KPI 2: completion_evidence_blocked.jsonl 최근 200줄에서 missing_original_verification 비중을 77건에서 40건 이하로 낮춘다. KPI 3: ron/cowork 대행 작업은 완료보고마다 원래 요청 id와 실제 수행 id를 100% 포함한다. 검증 명령어: sqlite3 /Users/ron/.hermes/data/ops_multiagent.db "SELECT target_agent,status,count(*) FROM bus_commands WHERE id>37364 GROUP BY target_agent,status;" 검증 명령어: python3 -m pytest scripts/tests/test_agent_queue_worker_codex_quality.py -q 검증 명령어: python3 -m pytest scripts/tests/test_completion_evidence_line_quote_gate.py -q 기대값: 증거 없는 완료보고는 failed 또는 needs_evidence로 저장되고, 6칸 필수값이 있는 보고만 done으로 저장된다. 롤백 조건: 정상 0건 보고나 정책 제안서가 missing_source로 과다 차단되어 24시간 내 오탐 3건 이상 발생하면, 예외 판정만 완화하고 필수값 6칸은 유지한다.

Knowledge OS 연결

  • [[MOC-Hermes-결과문-근거형식-260901]] — 표준안, 구현대상, 검증기준 상위 지식망.
  • [[260901_에이전트별_결과문_기준_분류]] — 에이전트별 결과문 기준 분류.
  • [[260901_결과문_근거누락_반례_분류]] — 근거 누락 반례와 정상 예외 분류.
  • [[260901_근거게이트_후속구현_검증항목]] — 후속 구현 대상과 검증 기준.
  • [[260901_cowork_agent_result_evidence_standard_37714]] — 에이전트 결과문 근거 형식 표준안 원문.