Agent systems · Evaluation

Agent evals should explain why, not just score what.

A simple framework for using LLM and VLM judges to compare agent runs with grounded references—and explain what worked, what failed, and why.

Soumil ChughSeptember 20268 minute read
01 · The goal

An eval should tell us more than whether a run was good.

A useful agent eval answers three questions: Did the agent produce a good result? Why did the run behave that way? Did a specific change make it better or worse?

A final score answers only the first question. Agents are systems made of models, prompts, context, memory, tools, state, and infrastructure. A weak output could come from a poor plan, missing context, the wrong tool, bad parameters, a failed recovery, or a judge that misunderstood the task.

The objective

Connect the final result to evidence from the run so an engineer can find the cause, fix it, and prevent it from returning.

02 · The framework

Put LLM and VLM judges at the center.

The evaluation factors describe what matters. LLM and VLM judges do the grading. Each judge receives the candidate run, the relevant evidence, and a grounded reference package.

ScenarioRequest, state, constraints
ReferenceExpected behavior and examples
Agent runTrace, tools, artifacts
LLM / VLM judgesFactor-by-factor comparison
DecisionDiagnosis and regression signal

Final outcome

Did the artifact satisfy the request, constraints, and quality bar? A VLM can inspect images, video frames, canvases, and interfaces.

Tool use

Did the agent choose the right tool, provide correct parameters, change the intended state, and recover from errors?

Execution path

Was the plan coherent? Did the agent loop, miss an important step, or stop too early?

Context

Did the agent receive the right history, source material, user information, and tool results when it needed them?

Cost and latency are measured alongside these judgments. They are not substitutes for quality, but they show whether an improvement is operationally worthwhile.

03 · Reference data

Ground the judges in real work, then scale with synthetic data.

Hand-written scenarios are useful, but they rarely capture the variety of real usage. The strongest starting point is approved, de-identified production-shaped data: actual goals, realistic state, long conversations, common tool combinations, and known failure modes.

Models can expand those examples into a larger evaluation set. They can create paraphrases, edge cases, longer conversations, expected tool results, successful traces, strong reference artifacts, and deliberately flawed outputs. This gives the judge both positive examples and hard negatives.

Start with an approved real scenario

Keep the properties that make the task realistic while removing private or identifying information.

Generate controlled variants

Create alternate inputs, references, and known failure cases without changing the capability being tested.

Validate before use

A human reviewer or deterministic checker accepts, repairs, or rejects each synthetic reference. Generated data is a proposal, not ground truth by default.

Version the package

Store the scenario, rubric, references, judge configuration, and provenance together so a result can be reproduced.

A reference is not always one perfect answer

Creative and open-ended tasks may have many valid outputs. For those tasks, use a reference package: required constraints, accepted examples, disallowed failures, expected state changes, and a clear rubric. The judge grades against the package without forcing the candidate to copy one surface form.

04 · Run evidence

Record enough of the run to explain the grade.

The judge should see the evidence needed for the factor it is evaluating. An outcome judge needs the request, reference package, and rendered artifact. A tool judge needs the intended subgoal, tool call, result, and resulting state. A context judge needs the information available to the agent at that point in time.

Production-derived records need consent or approved use, de-identification, access controls, limited retention, and a deletion path. Raw hidden chain-of-thought is not required; observable actions, concise decision summaries, state transitions, and tool evidence are more useful and safer to store.

05 · Grading

Prefer relative comparison before absolute scores.

It is difficult for a judge to invent a reliable score for one output in isolation. It is usually easier to ask a focused question: for the same scenario and reference package, is candidate A better, worse, or equivalent to candidate B?

Show the baseline and candidate in randomized order and hide which system produced each one. Ask for a decision on each factor, require evidence, and report win, loss, and tie rates. Deterministic checks—such as schema validity, required elements, state invariants, and exact constraints—should run before model judgment.

Example

Instead of asking “Is this image an 8 out of 10?”, ask “Which image better satisfies the layout, brand, and content requirements in the reference package? Cite the visible evidence for each factor.”

A scalar score can still be useful for dashboards, but it should be derived from calibrated factor-level decisions rather than treated as the source of truth.

06 · Judge calibration

Evaluate the judges before trusting their grades.

Create a reviewed calibration set containing clear wins, clear failures, close calls, and ties. Compare the judge's decisions with human preferences for each factor, not only the overall result.

Agreement

Measure how often the judge matches reviewed human decisions and where disagreement occurs.

Position bias

Swap candidate order. The verdict should not change simply because an output appears first.

Consistency

Repeat the same judgment to learn how stable the decision is, especially for close comparisons.

Change control

Recalibrate when the judge model, prompt, renderer, rubric, or reference set changes.

The evaluation pipeline also needs normal software tests. Filters, defaults, fixtures, joins, and schemas can fail while still producing believable numbers. Run an unchanged scenario several times to measure the noise floor before treating a small movement as real.

07 · Regression decisions

Turn judge preferences into a reliable release signal.

Map every scenario to the capabilities it exercises—such as planning, memory, a specific tool, or visual output. Compare a candidate with a versioned baseline while changing one variable at a time. This makes the result easier to attribute.

A gate should consider factor-level win rates, important hard failures, judge confidence, and normal variance. It should also report tokens, cost, latency, tool calls, and retries. A cheaper run is only better if it maintains the required quality.

Automated blocking comes last. First establish trustworthy references, complete evidence, calibrated judges, stable baselines, and clear ownership for approving exceptions.

08 · Practical rollout

Build the system in the order that makes each result trustworthy.

1 · Measure the current noise

Run an unchanged scenario several times. Measure variation in outputs, judge preferences, cost, and latency.

2 · Build the run record

Capture scenarios, configurations, traces, tool evidence, artifacts, timings, and evaluator inputs under stable identifiers.

3 · Create reference packages

Start from approved real scenarios, generate controlled synthetic variants, validate them, and record provenance.

4 · Add factor-specific judges

Begin with final outcomes and high-impact tools, then add trajectory and context evaluation.

5 · Calibrate and test

Compare with human preferences, test order bias and consistency, and add tests for the evaluation pipeline.

6 · Enable regression gates

Use controlled comparisons and noise-aware thresholds only after the earlier layers are dependable.

A mature eval

One run should produce a clear answer.

After changing a model, prompt, tool, memory strategy, or runtime component, the system should show:

  • which workflows improved or regressed;
  • which factor caused the change and what evidence supports it;
  • whether the change is larger than normal variance; and
  • what happened to cost, tokens, retries, and latency.

That is the shift from a scorecard to an engineering tool.

More engineering work

Agent systems are only useful when they can be understood and improved.

Explore the portfolio →