Evaluation 9 February 2026 · 8 min read
How to actually evaluate an agent
Most agent evaluation is a number that goes up. When it goes down you have no idea which of the eleven steps got worse — here is the boring, specific alternative.
Stop writing the loop by hand
Pilot gives you the durable loop, typed tools, and the trace — so you write the agent, not the plumbing.
Get startedMost agent evaluation is a number that goes up. That number is nearly useless, because when it goes down you have no idea which of the eleven steps got worse.
Useful evaluation is boring and specific: assertions on steps, run on every change, attributed to a cause.
Start from runs you have already seen
You do not need a synthetic benchmark. You need the twenty runs from last month that went wrong, frozen as fixtures. Promote a recorded run to a test case: same inputs, same tool responses, replayed against your current prompt and model.
This gives you something a benchmark never does — regression tests for the specific failures your users actually hit.
Assert on steps, not just outcomes
Outcome-level assertions tell you something broke. Step-level assertions tell you what:
- Did it call
search_chargesbeforerefund? - Did it stop after the approval gate rather than proceeding?
- Did it stay under six steps?
- Was the refund amount exactly the charge amount?
Each of these fails loudly and points at one place. "Score dropped from 0.82 to 0.79" points at nothing.
Separate the three things you are testing
A regression comes from the prompt, the model, or the tools — and if you change more than one at a time you will not know which. Pin two, vary the third. It is slower for an afternoon and much faster for a quarter.
Run it where you run your other tests
An eval suite that lives in a notebook gets run when someone remembers. One that runs on every pull request gets run always. Put it in CI with everything else, and treat a failing eval exactly like a failing unit test.
Watch cost and latency as first-class results
An agent that gets the right answer in forty steps and eleven dollars has regressed, even if the assertion passes. Record tokens, wall-clock, and spend per run in the same report as correctness, and set ceilings on all three.
None of this is sophisticated. It is just testing, applied to a system that happens to be stochastic — and the teams shipping agents are the ones treating it that way.