Evals for agent output
For whoever maintains an agent's instructions: at the end a change to the instructions is tested with a small set of cases, and the instructions change only on repeated evidence.
- Based on
- Updated
- ·
Before you start
-
An agent with written instructions whose answers affect something: routing, decisions or code.
-
A list of the failures already seen or feared.
-
Two ways to run the agent: the real setting and a fast preflight through the API.
Steps
Pick the failures that have consequences
The suite tests the smallest set of distinct failures with a material consequence. Each base case tests one decision boundary: for example whether the agent asks the owner or decides itself.
Write self-contained prompts
A prompt carries everything the right answer needs. The answer must not depend on hidden state or an assumed authorisation; an ambiguous prompt is rewritten rather than explained to the grader.
Consolidate near-duplicate cases
Two cases that fail for the same reason are one case. Rare variants move out of the base suite as optional ones.
Repeat adaptively
The smoke set runs twice. Only a case whose two runs disagree gets a third, deciding run. The full suite runs once when the instructions change significantly. A passing case is not rerun to make more evidence.
Test in the real setting, preflight fast
The real setting is the integration test; the suite run through the API is a fast preflight. A green preflight does not replace a run in the real setting.
Change the instructions only on repeated evidence
The instructions change when a repeated run shows a defect in the instructions rather than in the test case. The change records the runs it rests on, and the smoke set runs again after it.
When not to use this
-
Output a program can check directly, such as code or data: write a test, not an eval.
-
A one-off prompt that will not be maintained.
-
The grader is the same model with no written expected answer: the suite then measures the model's opinion of itself.
Where it comes from
The suite began as a regression test for the instructions of an AI team's control room: prompts, expected answers, smoke runs and deciding runs. The same idea recurs as blind-reviewed benchmarks in the Searchint work.