Offline eval
An eval run on a fixed dataset before release, in CI or on demand.
ExampleRun 120 saved prospect briefs through a new drafting prompt and compare pass rates before it ships.
Online, offline, judge, grader, test, monitor. Teams use them interchangeably. Place an eval on where it runs, who grades it and what it looks at, and the names sort themselves out.
“Code eval” is a grader type. “Online” is a location. “End-to-end” is a scope. Most confusion comes from treating three independent choices as one list. Any eval takes one value on each axis, so name it in full: an online, model-graded, trajectory-level eval.
Personalization judge = online · model · turn
{first_name} token.Same agent, 12 evals, no two in the same cell for the same reason. The agent researches prospects, drafts messages, and talks to the user who set up the campaign.
A grader either checks the output against a known-good answer, or against a rubric. Which one you can use depends mostly on where the eval runs: someone has to have written the answer down first.
“Does the domain the research step extracted match the hand-checked CRM record?”
“Does the opener reference something specific to this prospect?”
Some LLM calls over traces judge quality: pass or fail, a score. Others only label what happened: an intent, a segment. The second kind is a classifier. It is built the same way and does a different job. Classifiers slice the data; evals say whether it was good.
Our framing Neither source draws the line this way.
“Did the setup conversation end with the user approving the plan?”
Says whether it was good.
“What was the user trying to do, and from what starting point?”
Says what happened.
Within judgement, Anthropic draws one more split. A capability eval asks whether the agent can do something yet, and should start with a low pass rate. A regression eval asks whether it still does what it did, and should sit near 100%. Capability tasks graduate into the regression suite once they pass reliably.
Grouped by axis, with the synonyms you will meet and a check on the same outbound agent.
An eval run on a fixed dataset before release, in CI or on demand.
ExampleRun 120 saved prospect briefs through a new drafting prompt and compare pass rates before it ships.
An eval run on production traffic after the fact, usually asynchronously on a sample.
ExampleA judge scores 5% of yesterday's sent messages for personalization.
A check in the request path that blocks, retries or falls back before output reaches the user.
ExampleBlock any draft that still contains an unfilled {first_name} token.
Tracking eval and product metrics on live traffic over time, with alerts.
ExampleAn alert fires when the weekly personalization pass rate drops below 80%.
A deterministic check written in code: regex, schema validation, execution, counts.
ExampleThe message is under 300 characters and the prospect's email domain resolves.
An LLM that grades an output or transcript against a written rubric.
Example"Does the opener reference something specific to this prospect?", scored pass or fail.
People labelling outputs, used as ground truth and to calibrate judges.
ExampleYou label 50 drafts pass or fail for "sounds like a person wrote it".
Grading by choosing the better of two outputs on a stated criterion.
ExampleA judge sees two drafts for the same prospect and picks the one with the more specific opener.
Grading against a known-good answer.
ExampleThe company domain the research step extracted matches the one in a hand-checked CRM record.
Grading against a rubric or rule with no known-good answer; the usual option online, where no ground truth exists.
ExampleA judge decides whether a sent message is on-brief. There is no ideal message to compare it to.
An eval of one input and one output.
ExampleGiven this prospect brief, is the first draft on-brief?
An eval of one step inside a run, such as one tool call and its arguments.
ExampleThe research step called the enrichment tool with the right company domain.
An eval of a whole run or conversation, judged on the transcript, the outcome, or both.
ExampleThe campaign-setup conversation ends with an approved plan and a scheduled send.
An LLM playing the user so a multi-turn eval can run without a real person.
ExampleAn LLM plays a campaign owner who wants to send today but has no audience list.
The final state of the world after a run, as distinct from what the agent said happened.
ExampleThe agent says it queued 40 messages. The outcome is what the send queue holds.
An eval of something the agent can't reliably do yet; a low pass rate is expected.
ExampleWrite a follow-up that answers the objection in the prospect's reply. It passes 30% of the time today.
An eval of something the agent already does; the pass rate should sit near 100%.
ExampleEvery draft keeps its unsubscribe line. It passes on every build, and a miss blocks the release.
An LLM or code check that labels a trace with an intent or segment, with no judgement of quality.
ExampleTag each setup conversation intent: send_campaign and segment: no_audience.
One test case: inputs plus success criteria.
ExampleOne prospect brief, plus the criteria a good first draft has to meet.
A hand-curated set of inputs, often with reference outputs, run on every change.
Example120 prospect briefs with approved reference drafts, run on every prompt change.
A trace is one request end to end; spans are its steps; a session is related traces over time.
ExampleOne draft request is a trace. Its research and drafting calls are spans. A user's week of campaign edits is a session.
The full record of one run: messages, tool calls, reasoning, intermediate results.
ExampleEvery message in a campaign-setup conversation, plus each enrichment call and what it returned.
Reading traces, coding what went wrong, and grouping it into failure modes before writing evals.
ExampleYou read 100 sent messages, note each problem, and find a third of them open with the same generic line.
Measuring a judge against human labels, usually by true positive and true negative rate, and adjusting it until they agree.
ExampleRun the opener judge on your 50 labelled drafts and measure how often it agrees on the passes and on the fails.
A judge's agreement with humans degrading over time as models or definitions change.
ExampleAfter a model upgrade, the opener judge starts passing generic openers it used to fail.
The infrastructure that runs evals end to end: execution, recording, grading, aggregation.
ExampleThe script that loads saved briefs, runs the agent, records each transcript and applies every grader.
pass@k is the chance at least one of k attempts succeeds; pass^k is the chance all k do.
ExampleA draft that is on-brief 80% of the time has a pass@3 of 99% and a pass^3 of 51%.
An eval scoring near 100%, so it catches regressions but no longer shows improvement.
ExampleThe character-limit check has passed every draft for three months. It still guards, but it shows no progress.
Offline evals stop the failures you already know about. Online evals find the ones you don't, and error analysis turns them into the next evaluator.
It runs the same kind of check with a different job. A guardrail sits in the request path and can block, so it has to be fast and rarely block a good response; that usually means code, not a judge.
Either. The judge is the grader; where it runs is a separate choice.
In common usage, a test asserts one case passes and an eval measures a rate across many. Teams blur this; the axes don't care which word you use.
No. It labels what happened without saying whether it was good. You need it to slice eval results, not to replace them.
Anthropic suggests 20 to 50 tasks drawn from real failures to start. Hamel Husain describes 100 or more as typical for a CI golden set, though many teams start smaller.
Yes, for different failures. Offline evals stop known failures before release; online evals find the ones you didn't know about. Hamel Husain is explicit that a CI pass rate does not predict production accuracy.
Anthropic · Jan 2026
hamel.dev
Our framing The three axes as a naming device, and the split between judgement and description. Neither source draws them this way.
Anthropic uses “eval” for automated evals in development and treats production monitoring as a separate layer. Hamel Husain counts background monitoring and guardrails as ways an eval is put to work. This page uses the broader sense.
TwoTail runs online evals on your production traces, with LLM judges calibrated against your own labels.