Grade what the agent did, not what it said
An agent eval runs a task several times as trials. Each trial leaves a transcript of what the agent said and an outcome in the world. Graders should score the outcome.
- A task is one test with inputs and success criteria, here “book this flight.” Each attempt is a trial. Outputs vary between runs, so you run several trials.
- You evaluate the model and its harness together. Each trial starts from a clean environment, so files and cached data from one run can’t help or hurt the next.
- Every trial leaves two records. The transcript holds everything the agent said, called and reasoned. The outcome is the final state of the environment.
- Graders score the trial. The agent may say “Your flight has been booked,” but the grader checks whether the reservation exists in the SQL database.
Map of the article
The roadmap is the longest part, about 30% of the words
Graders
Use code where you can, a model where you must, and humans to calibrate
A grader scores one part of the transcript or the outcome. A task can have several graders. Per task, you can weight their scores against a threshold, require all of them to pass, or mix the two.
Code-based
String checks, unit tests, static analysis, state checks. Fast, cheap, objective and easy to debug. Brittle when a valid answer doesn’t match the pattern.
Model-based
Rubrics, natural-language assertions, pairwise or reference comparison. Flexible and good with open-ended output. Non-deterministic and costlier than code.
Human
Expert review, spot checks, A/B tests, inter-annotator agreement. Matches expert judgment. Expensive, slow and hard to get at scale.
Two tips for LLM judges. Give the judge a way out, such as returning “Unknown” when it lacks information, so it doesn’t make up a verdict. And grade each rubric dimension with its own isolated judge instead of one judge for everything.
What to grade
Grade what the agent produced, not the path it took
It is tempting to check that the agent called the right tools in the right order. Anthropic found this too rigid. Agents often find valid approaches the eval designer didn’t expect. Frontier models can even outgrow a static eval. Opus 4.5 solved a τ2-bench flight booking problem by finding a loophole in the policy. It “failed” as written, but its answer was better for the user.
Tool-order check
Punishes a creative path that worked.
Outcome check
Checks the result the user cares about.
Score the parts
Better than failing at once. The score should show it.
Non-determinism
At three trials, the same 75% agent scores 98% or 42%
Agents behave differently from run to run. So the question is how often a task succeeds across trials. Two metrics answer two different questions. pass@k is the chance that at least one of k trials succeeds. pass^k is the chance that all k succeed.
- One trial per task. Both metrics equal the per-trial success rate, 75%.
- Three trials. pass@3 needs one success, so it is 1 − 0.25³ ≈ 98%. pass^3 needs three out of three, so it is 0.75³ ≈ 42%.
- Ten trials. pass@10 is about 100%. pass^10 is 0.75¹⁰, about 6%, and keeps falling toward zero.
Tools that propose options
If the user can pick any working answer, more shots on goal is fine. In coding, pass@1 often matters most, because the fix should work the first try.
Customer-facing agents
Users expect the same good result each time. A 75% agent fails at least one of three conversations more than half the time.
Two kinds of suite
Capability evals start low, then graduate into regression evals
Saturation hides progress. Frontier models now score above 80% on SWE-bench Verified and are nearing saturation. Near the top only the hardest tasks remain, so big capability gains show up as small score bumps. The code review startup Qodo was at first unimpressed by Opus 4.5. Its one-shot coding evals missed the gains on longer, more complex tasks. Qodo built a new agentic eval framework, which gave a much clearer picture.
Zero to one
Nine steps from no evals to evals you can trust
- Start early. Teams wait because they think they need hundreds of tasks. 20 to 50 simple tasks drawn from real failures is a great start. Early changes have large effects, so small samples are enough.
- Start with what you test by hand. Use the checks you run before each release. In production, mine the bug tracker and support queue, and prioritize by user impact.
- Write unambiguous tasks with reference solutions. Two domain experts should reach the same pass or fail verdict on their own. A reference solution proves the task is solvable and the graders work.
- Build balanced sets. Test when a behavior should happen and when it shouldn’t. Claude.ai’s web search evals had queries that need a search, like the weather, and queries it should answer from memory, like “who founded Apple?”
- Isolate every trial. Start each one from a clean environment. Leftover files, cached data or resource exhaustion cause correlated failures that have nothing to do with the agent.
- Design graders with care. Grade the output, add partial credit, give judges an “Unknown” option, calibrate them against human experts, and make them hard to cheat.
- Read the transcripts. A failure should look fair. The transcript shows whether the agent made a real mistake or the grader rejected a valid solution.
- Watch for saturation. A suite at 100% gives no signal for improvement. Don’t take a score at face value until someone has read the details and some transcripts.
- Give the suite owners. At Anthropic, an evals team owns the infrastructure, and domain experts and product teams write most tasks. Product managers or salespeople can add a task as a PR with Claude Code.
When the eval is wrong
A low score can mean a broken eval, not a weak agent
With frontier models, a 0% pass rate across many trials (0% pass@100) is most often a broken task. The article has four cases where the eval, not the agent, moved the score.
Terminal-Bench
Everything the grader checks should be clear from the task.
CORE-Bench
Plus ambiguous specs and stochastic tasks that could not be reproduced exactly.
METR time horizon
Models that ignored the stated goal scored better than Claude.
Anthropic internal
Shared state can make an agent look better than it is.
Beyond evals
Automated evals are one slice of Swiss cheese
Evals run thousands of tasks without touching real users. They still miss things. The article pairs them with five other ways to watch an agent, each with its own blind spots.
Fast, reproducible, no user impact. Cost up front and drift if not maintained. Can give false confidence if they don’t match real usage.
Shows real behavior at scale. Reactive, so problems reach users first, and it lacks ground truth for grading.
Measure real outcomes like retention. Slow, need traffic, and only test changes you ship.
Surfaces what you didn’t expect, with real examples. Sparse, skewed to severe issues, and users rarely say why.
Builds intuition and catches subtle issues. Slow, doesn’t scale, and mostly qualitative.
Gold-standard ratings for subjective work. Expensive, slow, and raters disagree. Use them to calibrate LLM graders.
What to remember
Start small, grade outcomes, and read the transcripts
- Write 20 to 50 tasks from real failures now. Don’t wait for hundreds.
- Make each task clear enough that two experts agree, and give it a reference solution that passes.
- Grade the outcome in the environment, not the agent’s claim or its exact tool path. Add partial credit.
- Use code graders first, LLM judges where needed, and humans to calibrate the judges.
- Run several trials. Report pass^k when users need it to work every time.
- Keep a regression suite near 100% and a capability suite with room to climb. Read transcripts before you trust either.
Check yourself
Three quick questions
The refund record, not the message
That sentence is in the transcript. The outcome is the state of the system, such as a processed refund and a resolved ticket.
pass^k, about 42%
The customer needs all three to go well, so 0.75³ is the honest number.
The task and its grader
With frontier models, 0% pass@100 most often means a broken task. Write a reference solution and see if it passes.
Related lesson
Step 5 says calibrate your LLM judges. Lesson 01 shows how.
Sources
© 2026 Hardeep Singh