Drag to rotate · 12 test cases flow through the judge gate; green = pass, coral = fail
Why one run is never enough
LLMs are stochastic: the same prompt can pass a test today and fail it tomorrow. A single run tells you almost nothing. Evals fix this with repeated runs:
- pass rate — fraction of runs that succeed (7/10 = 70%).
- pass@k — did any of k attempts succeed? Useful when a human picks the best output.
- variance — if a case passes 3/10 runs, the feature isn't "working," it's gambling.
Worked example
A case with true 60% per-run success: 1 run misleads you 40% of the time. Across 10 runs, the chance of seeing 0 passes is 0.410 ≈ 0.01% — you now measure reliability, not luck.
The vocabulary, decoded
Judge model
A second LLM grades the output against a rubric ("did the agent fix the bug without breaking tests?"). Cheaper and faster than human graders; you audit a sample to keep it honest.
Threshold
The minimum pass rate to ship. CI can fail the build if the suite scores below it — exactly like code coverage gates, but for model behavior.
Ablation
Re-run the suite with one ingredient removed (a tool, a prompt section, a scaffold) to measure what that ingredient is actually worth.
Cost caps
Flags like --max-cost-usd keep a 10-run × 50-case suite from surprising you with a large API bill.
A minimal eval loop you can copy
That's the whole idea. Everything else — tags, ablations, scaffolds, output dirs — is tooling around this loop so you can compare configurations honestly instead of vibe-checking your agent.