JuryTrace: make agent-judge failures inspectable
개요
JuryTrace는 두 개의 에이전트 판사(judge)의 판결 실패를 검사 가능하게 만드는 Python 도구로, 판결의 근거를 검증하고 해결되지 않은 사례를 인간 검토 큐로 보낸다.
주요 내용
- JuryTrace의 목적: 에이전트 회귀 판사의 판결이 "accept"일 때, 점수 자체보다 다른 판사의 동의 여부, 판결 근거 제시 여부, 그리고 이에 대한 처리 과정을 파악하는 데 중점을 둔다.
- 작동 방식: 두 개의 구성된 판사를 사용하여 타입화된 JSONL 트래젝토리를 처리하고, 그 증거를 검증하며, 해결되지 않은 케이스를 지속 가능한 인간 검토 큐로 전송한다.
- 워크플로우: LangGraph를 기반으로 비동기 워크플로우를 사용하며,
StateGraph는hard_gates,dispatch_judges,score_and_compare,persist_clean또는persist_reviews단계를 거친다. - 판사 (Judge) 구성: 각 호출은 자체
asyncio.timeout경계를 가지며, 그래프는 정확히 두 개의 판사, 고유한 판사 ID, 고유한 구성, 최대 트래젝토리 수, 최대 호출 수를 강제한다. - 결과 형식: 유효한 결과는
accept또는reject, 점수, 근거, 하나 이상의 증거 스팬(span)을 포함한다. 스팬은 입력 또는 출력, 문자 오프셋, 원본 트래젝토리의 슬라이스와 비교되는 발췌문을 명시한다. - 오류 처리: 잘못된 트레이스 ID, 일치하지 않는 판사 식별자, 잘못된 응답, 타임아웃, 공급자 오류, 부정확한 발췌문 등은 자동 결정으로 이어지지 않으며, 이러한 불일치는
review_required로 표시된다. - 골든 라벨 (Golden Labels): 평가 답안이 판사 프롬프트의 지침이 되는 것을 방지하기 위해, 골든 라벨은 판사 평가 후에만 제공되어 메트릭의 정직성을 유지한다.
- 인간 검토: 판결 불일치 시,
run_id,dataset_hash,trace_id로 식별되는 SQLite에 내구성 있는 큐 행이 기록되며, 해결 과정은 결정, 해결자, 비어 있지 않은 노트를 요구한다. - 로컬 테스트: Ollama와 같은 로컬 공급자를 사용하여 모델 다양성을 추가하고,
jurytrace demo명령어로 테스트를 실행하고,jurytrace queue로 큐를 확인하며,jurytrace resolve로 불일치를 해결할 수 있다. - 한계: 공유 학습 데이터, 프롬프트, 공급자 행동, 상관관계 있는 오류 가능성으로 인해 통계적 독립성이 확립되지 않는다. Ollama 토큰 카운트는 보고되지만, 요청 비용은 Ollama가 제공하지 않아 알 수 없다.
시사점
JuryTrace는 에이전트 기반 시스템의 평가에서 판결의 투명성과 재현성을 높여, 자동화된 검증을 넘어 인간 검토를 통합함으로써 시스템의 신뢰성을 강화하고 잠재적 오류를 식별하는 데 기여한다.
원문을 불러오는 중...
댓글
GitHub Discussions