feat(agent): add executor evidence output contract
This commit is contained in:
@@ -73,6 +73,41 @@ class DiagnosisTraceEvaluatorTest {
|
||||
assertTrue(result.getFailedChecks().contains("reject output does not use degraded template"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void evaluateFailsWhenStructuredConfirmedClaimHasNoEvidenceBindings() {
|
||||
DiagnosisEvalCase evalCase = DiagnosisEvalCase.builder()
|
||||
.id("structured-claim-case")
|
||||
.title("Structured claim case")
|
||||
.expectedRootCauseKeywords(List.of())
|
||||
.requiredEvidenceTools(List.of())
|
||||
.allowedVerdicts(List.of("LOW_CONFID", "PASS"))
|
||||
.build();
|
||||
DiagnosisTraceResponse trace = DiagnosisTraceResponse.builder()
|
||||
.session(DiagnosisTraceResponse.SessionTrace.builder()
|
||||
.answer("以下结论基于当前已获取证据,仍存在部分证据缺口,请谨慎参考。")
|
||||
.selfEvaluation(java.util.Map.of(
|
||||
"verifier_evaluation", java.util.Map.of(
|
||||
"verdict", "LOW_CONFID",
|
||||
"executor_structured_output", java.util.Map.of(
|
||||
"claims", java.util.List.of(java.util.Map.of(
|
||||
"claim_id", "claim-unsupported",
|
||||
"claim_text", "OOM 导致连接泄漏",
|
||||
"support_level", "direct",
|
||||
"evidence_bindings", java.util.List.of()
|
||||
))
|
||||
)
|
||||
)))
|
||||
.build())
|
||||
.toolInvocations(List.of())
|
||||
.build();
|
||||
|
||||
DiagnosisEvalResult result = evaluator.evaluate(evalCase, trace);
|
||||
|
||||
assertFalse(result.isPassed());
|
||||
assertTrue(result.getFailedChecks().contains(
|
||||
"executor confirmed claim missing evidence bindings: claim-unsupported"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void reportWriterOutputsJsonAndMarkdown(@TempDir Path tempDir) throws Exception {
|
||||
DiagnosisEvalReport report = evaluator.evaluate(readCases(), Path.of("mvp/eval/fixtures"));
|
||||
|
||||
Reference in New Issue
Block a user