Quick Start
1
Grade an agent's text output
Run an agent, then score its output against a text criteria — no file needed:
2
Evaluate an image
Score a generated image against a criteria with a multimodal model:
3
Evaluate audio against expected text
Transcribe a TTS file and compare it to an expected transcript:
4
Auto-detect from a file extension
Let the evaluator pick the branch from the file extension:
How It Works
The evaluator routes the output to one of four branches, either frommedia_type or by auto-detection.
Auto-detection reads the file extension (
.mp3/.wav/.ogg/.flac/.m4a → audio, .png/.jpg/.jpeg/.gif/.webp → image, .mp4/.avi/.mov/.webm → video) and the LiteLLM response class (ImageResponse, HttpxBinaryResponseContent, VideoResponse), falling back to text.
Configuration Options
Every field onMediaEvaluator:
Methods
Eval Module Reference
Full Python API for the eval package
MediaEvaluationResult
run() returns a MediaEvaluationResult with these fields:
Response Format
The image and text branches ask the model for aSCORE: / REASONING: response and parse it into score and reasoning. See the Judge response format note for the full rules.
Common Patterns
Gate an image-generation agent so only on-brief renders pass:EvalSuite run:
Best Practices
Use expected_text for TTS regression, criteria for subjective checks
Use expected_text for TTS regression, criteria for subjective checks
Set
expected_text when you have a known transcript — the audio branch transcribes and scores word-overlap similarity. Use criteria for image and text branches when the check is subjective (“looks professional”, “reads clearly”).Set min_file_size above your codec's empty-file threshold
Set min_file_size above your codec's empty-file threshold
A codec that writes headers still produces a tiny file on failure. Raise
min_file_size above that threshold so silent or blank renders fail the file check instead of passing.Pass media_type explicitly when the extension is ambiguous
Pass media_type explicitly when the extension is ambiguous
Auto-detection reads by file extension and by LiteLLM response class (
ImageResponse, HttpxBinaryResponseContent, VideoResponse). When an output has no extension or an unusual one, set media_type explicitly to pick the right branch.Scores are on a 1–10 scale like the other evaluators
Scores are on a 1–10 scale like the other evaluators
The image and text branches score 1–10 and pass at ≥ 7.0, matching the threshold used across the eval framework, so mixed suites compare cleanly.
Related
Judge
LLM-as-judge for evaluating outputs
Harness Evaluator
Score harness traces into an EvalSuite report
Context Evaluator
Score multi-agent handoff fidelity
Evaluation
Evaluators, suites, and reports

