Skip to main content
The Evaluation module provides a composable framework for assessing agent and team output quality. Run evaluations programmatically against multiple dimensions — accuracy (LLM-judged), performance (latency and memory), reliability (tool usage verification), and custom criteria (flexible LLM judgment).

Quick Start

Evaluation Types

AccuracyEval

Uses an LLM judge to score output correctness on a 1-10 scale.
str
default:"openai/gpt-4o-mini"
Model used to judge output quality. Accepts string shorthand.
float
default:"7.0"
Minimum score (1-10) required for a passing result.

PerformanceEval

Profiles execution time and memory usage across multiple runs.
float
Maximum allowed p95 execution time in milliseconds. None disables the check.
float
Maximum allowed peak memory delta in megabytes. None disables the check.
int
default:"3"
Number of profiling runs. Duration uses p95 percentile; memory uses peak across all runs.
int
default:"0"
Number of warmup runs excluded from metrics (useful for cache priming).

ReliabilityEval

Verifies that expected tools are called during agent execution.
List[str]
Tool names that must be called during execution.
bool
default:"false"
When true, unexpected tool calls cause failure. When false, only missing tools fail.
Per-case overrides are supported via EvalCase(metadata={"expected_tools": ["tool_a"]}).

AgentAsJudgeEval

Evaluates output against custom criteria using an LLM judge. Supports numeric (1-10 score) and binary (pass/fail) modes.
str
Evaluation criteria for the judge. Can be overridden per-case via case.metadata["criteria"].
str
default:"numeric"
"numeric" for 1-10 scoring with threshold, or "binary" for pass/fail.

Batch Evaluation

Run multiple test cases and get aggregated results:
The EvalSuite result provides:

Team Evaluation

All eval types support team evaluation:

Result Types

Each eval type returns a specialized result: All results share common fields: eval_name, success, score, reason, metadata. All results support .to_dict() for JSON serialization.

Custom Evaluators

Extend BaseEval to create custom evaluation logic:

Imports