Skip to main content

agent_sdk_eval/
evaluator.rs

1//! Evaluator trait for post-hoc evaluation implementations.
2
3use agent_sdk_core::AgentError;
4
5use crate::{EvaluationReport, EvaluationRequest, EvidenceBundle};
6
7/// Evaluates an evidence bundle against an evaluation request.
8pub trait Evaluator {
9    /// Runs the evaluator and returns a validated report.
10    fn evaluate(
11        &self,
12        request: &EvaluationRequest,
13        evidence: &EvidenceBundle,
14    ) -> Result<EvaluationReport, AgentError>;
15}
16
17impl<T> Evaluator for &T
18where
19    T: Evaluator + ?Sized,
20{
21    fn evaluate(
22        &self,
23        request: &EvaluationRequest,
24        evidence: &EvidenceBundle,
25    ) -> Result<EvaluationReport, AgentError> {
26        (*self).evaluate(request, evidence)
27    }
28}