All posts
Technical
  • #agents
  • #evaluation

Evaluating agents

12.06.2026·13 min

Evaluating agents

Agent Systems · 21-c08

26 June 2026 · Evaluation reading

Judging an agent by a single success rate is like grading a pilot only on whether the plane landed. Real evaluation is layered: task success, step quality, tool correctness, reliability across repeats, cost, and human review, read together.

Question
what to measure?
Layer
success · step · tool · cost
Lever
traces + human review
Trap
trusting one number

Key terms

  • task success
  • progress rate
  • tool correctness
  • pass^k
  • cost
  • human baseline
  • trace analysis

Earlier posts designed the agent, budgeted it, and mapped its failure modes. Now the question is: is this agent actually good? The answer depends on which question you ask. "Did it finish the task?" is very different from "did it call the right tool?" or "does it hold across ten runs?"

This post splits agent evaluation into layers and ties each layer to a real benchmark: WebArena, SWE-bench, AgentBoard, tau-bench, ToolBench, GAIA, METR. The diagrams loop on their own to show what each layer captures.

01/09

Why success rate is not enough

Success rate is the most common metric: did the agent finish the task, yes or no. Necessary on its own, but incomplete. A single bit treats two very different runs the same: a run that fails one step short of the goal and a run that falls apart on the first step both score zero.

AgentBoard criticises exactly this and proposes progress rate for intermediate state. WebArena shows the best GPT-4 agent finishing only a small fraction of tasks; one number hides where things broke. So evaluation has to be opened into layers.

The single-bit stamp on the left and the multi-metric scorecard on the right describe the same run. One says "done / not done"; the other shows where the run stopped.

one bit vs a multi-metric scorecard
one bit: done / not done

scorecard: several signals

task success
progress rate
tool correctness
cost
02/09

Task success: functional correctness

The right way to measure task success is not to require the agent's steps to match a reference path. WebArena makes this explicit: what matters is functional correctness, whether the resulting world (web state, database) satisfies the user goal. The same goal can be reached by many valid paths.

SWE-bench applies this most strictly: does the generated patch resolve a real GitHub issue? The answer comes from applying the patch and running the repository tests. fail-to-pass tests must pass, prior tests must not break. Here the metric checks execution, not text.

So the validator checks the outcome, not the path. Below, two agents reach the same goal state through different-length steps; the validator accepts both, because it looks at the final state.

functional correctness · two paths, one goal
path Asearchfiltersave
path Bopensearcheditsave
goal state ✓

the validator checks the final state, not the path taken

path A path B validated state
03/09

Step quality: progress rate

Task success tells you the end state but not the journey. AgentBoard fills this gap with progress rate: it tracks the trajectory's best-matching intermediate state toward the goal, reaching 1 when the task is complete. This separates a run that nearly finishes from one that never starts.

To do this the authors define subgoals by hand and validate progress rate against human ratings; the reported Pearson correlation is above 0.95 across tasks. It has a cost: progress rate depends on hand-annotated subgoals, and the authors note current LLMs cannot generate those subgoals accurately on their own.

Below, two runs move along the same subgoal track. Neither finishes (success = 0), but one reaches 0.9 and the other stalls at 0.2. Success rate equates them; progress rate separates them.

progress rate · both fail, one is near the goal
run Aprogress 0.9 · success 0
run Bprogress 0.2 · success 0
success rate: both 0 goal state ✓

progress rate tells near from far

04/09

Tool correctness

An agent can give the right answer through the wrong path: picking the wrong tool, passing invalid arguments, inventing an API that does not exist. Tool correctness measures this as its own layer. ToolBench (ToolEval) evaluates tool selection, argument validity, execution, hallucination rate, and solution-path quality over 16,000+ real APIs.

tau-bench goes further: it has the agent talk to a simulated user, programmatic APIs, and domain policy documents, then compares the final database state with the expected goal. It checks whether the tool produced the correct side effect, not whether the answer sounds plausible. Model-backed evaluators (like ToolEval) scale, but a deterministic validator is preferred when the side effect can be checked directly.

Below, a tool call passes through four gates: right tool, valid arguments, successful execution, correct side effect. A hallucinated tool is rejected at the first gate.

tool call · four validation gates
tool choice
arguments
execution
side effect

a valid call clears all four gates

hallucinated toolrejected at the first gate
05/09

Reliability: pass^k, not pass@k

In production it is not enough for an agent to "pass once"; it has to pass every time. The classic pass@k is optimistic: if at least one of k attempts passes, it counts as success. For a user-facing system this is misleading, because one lucky run hides a bad experience.

tau-bench instead foregrounds pass^k: all k independent attempts must pass. The reported result is striking: function-calling GPT-4o goes from ~61% pass^1 on tau-retail to ~25% pass^8. Consistency is much harder than a single success.

Below, eight independent attempts resolve in sequence. pass@1 asks "did at least one pass?" and turns green; pass^8 asks "did all of them pass?" and a single failure turns it red.

pass@k is optimistic, pass^k measures consistency
trial 1
trial 2
trial 3
trial 4
trial 5
trial 6
trial 7
trial 8

pass@8

at least one passed

pass^8

all must pass, one missed

06/09

Cost: not tokens, time and runtime

Cost is not just tokens. WebArena counts Docker reset and LLM inference time per task as a non-negligible but small evaluation cost. Repeat-based metrics (pass^k) multiply the number of attempts by k, which is both time and money.

METR proposes a different axis: the 50% task-completion time horizon, the human-time equivalent of tasks an agent can complete with 50% probability. For o3 this horizon is about 110 minutes, and over the studied period the horizon roughly doubles every 207 days. Because it ties success to human time rather than raw task count, it is a strong frame for cost and effort.

Below, the components of an evaluation budget stack up: tokens, inference time, environment reset, and repeated trials.

evaluation cost · more than tokens
07/09

Human baselines and human review

Many agent benchmarks share one uncomfortable fact: the gap between humans and agents is still large. On WebArena humans score 78% while the best GPT-4 agent scores 14%; on GAIA humans score 92% and GPT-4 with plugins 15%. METR positions agents directly against human time. Human baselines make the word "good" concrete.

When automated pass/fail finishes, the work is not done. The SWE-bench authors note that even model patches passing execution tests can be less comprehensive, efficient, or readable than human solutions. Where maintainability, policy compliance, safety, and subjective quality matter, human review is still needed. The right setup combines deterministic checks with sampled human review.

Below, agent and human success sit side by side on two benchmarks; on the right, outputs that pass automated checks drop into a review queue.

human baseline · the agent-to-human gap

WebArena

best agent
%14
human
%78

GAIA

best agent
%15
human
%92
auto pass automated pass → human review (sampled)
08/09

The evaluation layers

No single metric describes an agent. A solid evaluation is layered like a scorecard: task success (functional correctness) first, then step quality (progress rate), tool correctness, reliability across repeats (pass^k), cost (time and runtime), and human review on top.

Reading these layers together turns "is the agent good?" into "good at which layer, by how much, at what cost?" A good evaluation tells you not what the model achieved, but where the system is reliable.

evaluation scorecard · layer by layer
task success01
step quality02
tool correctness03
reliability · pass^k04
cost · time05
human review06

A good agent is not one that passes a single test; it is a system that can show how reliable it is at every layer.

So before asking "is this agent good?", ask: which layer, with which benchmark, over how many repeats, and at what cost am I measuring?

09/09

Sources