1. Which required check failed
result.json names it, and the CLI prints it:
detail on each check carries the numbers behind the verdict — 0 of 2 moved to USR-003 tells you the agent did nothing, while 1 of 2 moved tells you it started and stopped.
2. Did the world change at all?
3. How did the run end?
run.json
agent_error with 0 tool calls and a near-zero duration almost always means the agent never reached its model — a model server that is not running, or a missing API key. A genuine model failure shows up after some work, as tool errors or a timeout.4. Read the trace
trace.jsonl is the record of what actually happened, in order.
Common failures
A runaway loop
--max-tool-calls 10 turns a two-minute timeout into an instant, readable failure.
The agent keeps sending bad arguments
result.output back into the conversation rather than discarding errors.
The right answer, graded wrong
Check what the verifier expected:A task nothing can solve
If no agent can pass, the environment may be at fault rather than the agent. Ask:- Is the information reachable? If the task needs to know which users are inactive and no tool reports it, the task is unsolvable no matter how good the model is. Missing tools look like agent failures.
- Is the answer unique? If two reps tie for “most stalled deals”, a correct agent can still fail.
- Does the instruction contain what a person would need? Names, ids, and any parameter that is a decision rather than a deduction.
Is it the agent or is it chance?
One failure proves nothing about a non-deterministic agent.Best 1.00 means the task is solvable and your agent can solve it — this is a reliability problem. If every run sits at the same low score, it is a capability or environment problem, and repeating it will not tell you more.
Silo