Eval Engineering why the number you have is not evidence › The eval that reports everything is fine 12 of 12 steps written
01 — part 1, why the number you have is not evidencemeasured

The eval that reports everything is fine

You have a number that says your agent is fine, and this is how to find out whether the number means anything.

Start with the worst eval in this volume, because it is the one most people have.

It works like this. Collect the answers your agent produced while you were testing it. Write one check that looks for a substring in each one. Count how many pass. Print the percentage.

what the agent actually does, over and over each square is one answer. The pink ones are wrong. the eval one loose check 7 rows PASS agreement 0.29 recall 0.00 never looked at and the verdict does not move The counts are all correct. What they count is the problem.
Sixty-four runs of the agent go past. The eval sees seven of them and reports that everything is fine.
What moves: answers stream in from the left and the box fills to seven and stops accepting. The verdict lights green. Then the wrong answers outside the box light up one by one, and the verdict does not change.

Run that against the code-fixing agent and it grades 7 rows. Its verdict: everything is fine. Its agreement with the truth, which is how often it and the answer key said the same thing, is 0.29 over 7 rows. Its recall is 0.00 over 5 of 7 rows.

Recall is the number this volume returns to most. Of the answers that were genuinely wrong, recall is the fraction your eval caught. A recall of zero means it caught none of them. Not some. None.

The eval is not lying. Every count it printed is correct. It is wrong about what it is counting, which is a different failure and much harder to see, because nothing in the output looks broken.

Two things went wrong at once

It only looked at what the agent already did. Sweeping every configuration of that agent produces 7 distinct answers, and only 2 of the six ways an answer can be wrong appear among them. The other four are invisible, so the eval reports nothing about them and does not know it is silent.

Its one check could not decide anything. A substring test passes almost everything. Where it cannot tell, the suite treats I have no opinion as fine, and that single coercion is where most of the missing recall comes from.

That second habit is the thread running through the whole volume. An eval with no opinion reports success. It is exactly how a suite comes to print a high number over a system that is broken.

Every term this page uses

recall
Of the answers that were genuinely wrong, the fraction your eval caught.
precision
Of the answers your eval flagged as wrong, the fraction that really were.
agreement
How often the eval and the answer key said the same thing.
corpus
The set of answers your eval grades. Also called an eval set.
grader
One check that looks at one answer and returns a verdict.
judge
A grader that asks a model to rule on answers the cheap checks could not decide.
abstention
The eval keeping a third answer beside right and wrong: I cannot tell.
horizon
How much of the right answer you hold. There are three, and they shrink.
detector
A check that looks for one specific kind of wrongness.
monitor
Something watched continuously in production, with no answer key to compare against.
threshold
A rule that waits for a problem to persist before raising an alarm.
label
What the answer key says about one row: right or wrong.
operator
One specific edit that breaks a right answer, and so decides its label.
stale
An answer that quotes a real source correctly and is wrong, because the figure moved.
grounding
Whether a claim is actually supported by the source the answer points at.
false negative
A wrong answer your eval passed. The only outcome that leaves no trace.

Taken as already known, and so not defined here: eval, agent, model, prompt, tool, test, harness. That list is a claim about who is reading, and it is printed so it can be argued with.