Skip to content

GlossaryFloor 3 · The Agentthe block caught in a loop: it starts again until it gets thereFloor 3 · The Agent

evals

No. 024 · v2026-08FR: évaluation (evals)

An eval is a series of test cases replayed at every change, to see whether the system still answers correctly. Like driving the same test route again after every adjustment: it does not prove that you drive well everywhere, only that you have broken nothing.

What it is not

An eval guarantees nothing. It measures behaviour on the cases it contains and stays silent about all the others: a good score says that nothing has regressed where you are looking, not that the system is reliable. Nor is it a classic software test, because the same input can produce two different outputs and the right answer is not always unique. You therefore reason in rates over a batch of cases, never in line-by-line equality.

In depth

The three pieces

An eval is made of three pieces: a set of cases, a success criterion and a judge. The cases come from real usage and above all from past incidents, every defect that gets fixed having to leave a case behind it. The criterion is the difficult part, because “right answer” breaks down into accuracy, format respected, absence of invention, tone, cost and delay, which do not improve together. The judge can be an exact comparison, a programmed rule, a person, or a model tasked with scoring, each with its own biases and its own price.

Marking a path

Evaluating an agent is harder than evaluating an answer, because you have to score a path and not only an arrival. Two runs of the same case can diverge, which forces you to replay several times and to read rates rather than verdicts. You look at the final result, but also at the number of turns consumed, the tools called in error and the dangerous actions avoided. An agent that reaches its goal by burning twenty turns and deleting a file along the way has not succeeded, even if the final answer is correct.

The three traps

The first trap is the frozen set of cases: by dint of optimising against it, you tune the system for the exam rather than for the job. The second is the automatic judge used without control, which scores generously, prefers long answers and shares the blind spots of what it evaluates. The third is believing that the eval replaces monitoring: it looks backwards, at chosen cases, whereas production brings in situations every day that nobody had foreseen. An eval therefore replaces neither the traces, nor the guardrails, nor human approval at irreversible points.

Under the hood2 steps · the real shape of the objects

An eval is a versioned set of cases, not a table of scores. Seeing the shape of a case answers the question everyone postpones: what exactly is being scored, and who decides that it is good.

  1. 01

    The shape of a case

    A case carries its input, its judges and its origin. All three matter, and the third more than one might think: a case whose reason for existing has been forgotten is a case nobody dares modify or delete.

    js
    {
      id: 'cap-2024',
      input: 'What is my reimbursement cap?',
      origin: 'incident of 2026-03-14',    // every fixed defect leaves a case
    
      // “right answer” does not exist: three criteria, scored separately,
      // because they do not improve together
      judges: [
        exact((r) => r.amount === 2400),                  // programmed: safe, narrow
        rule((r) => r.cites('contract-2024.pdf')),        // programmed: verifiable
        model('Does the answer invent a figure?'),        // model: broad, biased
      ],
    }
    
    exact
    The cheapest and most reliable judge, when it applies. The whole skill consists in phrasing enough cases for it to apply often.
    model
    The model judge: indispensable for what cannot be compared character by character, and the only one of the three whose mark is worth nothing until it has been set against a sample corrected by hand. Its biases are documented; the `juge-automatique` entry details them.

    The trapThe “origin” field is what makes it possible to renew the set from reality instead of letting it grow old. Without it, nobody knows which incident a line was protecting, so nobody dares remove or replace it, and the set freezes.

  2. 02

    Scoring a path, not an arrival

    Evaluating an agent calls for replays: two runs of the same case diverge. You therefore read rates and not verdicts, and you look at the journey as much as at the answer, because a goal that has been reached may have been reached in an unacceptable way.

    js
    const runs = await Promise.all(
      Array.from({ length: 10 }, () => execute(testCase)),   // the same case, ten times
    );
    
    const report = {
      success: rate(runs, (r) => r.ok),                  // a rate, not a verdict
      turns: median(runs, (r) => r.turns),               // what the path costs
      wrong_tool_calls: rate(runs, (r) => r.calls.some((c) => !c.useful)),
      irreversible_without_approval: runs.filter((r) => r.actedWithoutApproval).length,
    };
    
    // an agent that reaches the goal in twenty turns and deletes a file along
    // the way has not succeeded: the success rate alone would never say so.
    if (report.irreversible_without_approval > 0) fail(report);
    
    length: 10
    The number of replays. It does not have to be large, it has to be constant: what informs you is the comparison from one version to the next, not the absolute value.
    irreversible_without_approval
    The only criterion of the batch that is a count rather than a rate, because it does not average out: a single occurrence is enough to fail the version.

    The trapThis count fails a version on its own, and that is deliberate: on actions with no way back, a rate means nothing, since it would stay excellent while letting through the very case you were trying to prevent.

Shown elsewhere
  • tool callingthe shape of a call, which is what the list of calls above records
  • system promptthe artefact these cases primarily serve to protect

What variesEvaluation tooling each exposes its own vocabulary, and the names used here are those of common sense, not of a product. What does not vary: several criteria scored separately rather than a single score, a replay so as to read rates as soon as an agent is involved, a model judge that itself has to be checked, and cases that come from real incidents.

Relations where the neighbours live

Check 3 questions · click your answer

Level 1 · Recognise

Your eval set passes at one hundred per cent after a change. What can you conclude from it?

Level 2 · Distinguish

Why can an agent not be evaluated the way classic software is tested?

Level 2 · Distinguish

What will an eval never be able to replace?

Try it 2 practices

Concrete things to try where this term comes up, in ten minutes.

Who works with this 7 roles

The roles for which this term is part of the ordinary work.

No. 024 · v2026-08 · first written in · editorial responsibility Anthony Capirchio

Lexigraph, "Evals", v2026-08, https://www.lexigraph.org/en/evals/, CC BY 4.0.

Report

What goes with your message

Entry · Evals
No. 024 · v2026-08 · /en/evals

What is this about
0 / 600

It is used to reply to you, and for nothing else. What is recorded