Apply to my task
arXiv:2610.11678 ★ 75 Oct 8, 2026

TRACE: diagnosing a drop in an agent's score — is it the agent or the measurement?

Key result

The agent's score dropped by 0.25 even though it was doing exactly the same thing. In the test, the tools were simply renamed, and the checking code matched names, not actions. The TRACE method lets you figure out who's to blame for the drop: the agent itself or whoever sets the score. TRACE re-scores the same action records and doesn't re-run the agent. The action records (trajectories) work as evidence. If the gap disappears after fixing the rule, the check is to blame. If it remains, the agent's behavior is to blame.

01

TL;DR

TRACE is a four-step protocol that turns “the score dropped” from a verdict into a testable hypothesis. First you do paired runs: the same task runs before and after the change. Then you compare trajectories (records of the agent's actions). Next you re-score the same trajectories with a corrected rule, without running the agent again. In parallel you set up two controls: a repeat with no changes (how much the result is noisy on its own) and a deliberately harmful change (whether your check can see a real effect at all).

The main finding: the score can drop even though the agent does exactly the same thing. In a control experiment, the agent's tools were renamed. The operations stayed the same, but the checking code matched names, not actions, and the score dropped by 0.25. The second finding: a single run proves almost nothing. An identical re-run flips “pass/fail” for 15–36% of tasks. One more unpleasant fact: two strong LLM judges are consistent with themselves but disagree with each other on 57% of the same records. One of them grades the order of actions, not the outcome.

The method solves this by separating the questions. “Did the overall score change?”, “did the agent's behavior change?” and “did the checker's judgment change on the same record?” are three different questions, and they need to be answered with different data. For a practitioner it's a checklist: don't compare on a single run, look at what the agent actually did, and double-check a suspicious rule by re-scoring.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

STEP 0: Controls → (a) repeat with no changes = noise baseline
                   (b) deliberately harmful change = “can the check see an effect”
STEP 1: Paired runs → the same tasks, before and after the change (several times)
STEP 2: Compare scores → difference, pass rate, comparison with repeat noise
STEP 3: Review trajectories → did behavior/outcome change or not?
STEP 4: Re-score → same trajectories, corrected rule
        gap gone → the checking rule is to blame
        gap remains → the agent's behavior is to blame

Each step is a separate operation on the data. This isn't a single prompt but a process of several requests or manual checks.

03

Example in Practice

Task: A seller's team on a marketplace (say, Amazon) launched an agent to handle returns. It's tested on 20 test tickets, and the “pass/fail” score is set automatically. A developer renamed the tools to clearer names: get_order became fetch_order_details, refund became issue_refund_to_customer. The success rate dropped from 80% to 65%. The boss is already asking to roll back the prompt.

Prompt (sent to the chat along with the exported logs):

<Role>
You are an agent quality analyst. Your task is to figure out what caused the score drop: 
a change in the agent's behavior or quirks of the check itself. 
Don't draw conclusions from a single number.
</Role>

<Context>
Agent: handling returns on a marketplace.
What changed: the tools were renamed (get_order → fetch_order_details, 
refund → issue_refund_to_customer). The tools' logic and arguments didn't change.
Check: an automated script that outputs “pass/fail”.
</Context>

<Data>
Table A: 20 tasks × 3 runs BEFORE the change (result + action trace).
Table B: 20 tasks × 3 runs AFTER the change (result + action trace).
Table C: the same 20 tasks, a repeat run BEFORE the change with no edits.
[paste the tables]
</Data>

<Protocol>
Step 1. Noise. Using tables A and C, compute the share of tasks whose 
“pass/fail” result differs between two identical runs.
Step 2. Difference. Compute the change in success rate between A and B. 
Compare it with the noise from step 1. Say whether the difference exceeds the noise or not.
Step 3. Behavior. For tasks whose result changed, compare the traces 
before and after: same calls, same arguments, same outcome for the customer? 
Split the tasks into three groups: “same behavior”, “behavior changed”, “unclear”.
Step 4. Suspect the check. For the “same behavior, but score dropped” group, 
describe which checking rule might have fired differently (for example, matching by tool name). 
Propose a corrected rule and show how the score would change 
when re-scored on the same traces.
Step 5. Conclusion. Split the drop into two parts: 
how much the check explains, how much the actual behavior explains. 
State what additional control is needed to claim this with confidence.
</Protocol>

Result: The model works through the steps. First it estimates the background noise: how much the repeats themselves diverge. Then it compares that with the drop and says whether the drop goes beyond the noise. Next it sorts tasks into behavior groups and points to where the checking rule looks suspicious. At the end, the model splits the drop into “the check is to blame” and “the behavior changed”, with caveats where data is thin.

04

Why It Works

The weakness: a score is always “agent + environment + checker”. When the score changes, it's unclear who's to blame. On top of that, we tend to read any change as a change in capability. A simple check based on names, format or a template pretends to measure the outcome but actually measures the form.

The strength: a trajectory is evidence. If the agent has the same actions and the same outcome but a different score, the check is to blame. You can show this without re-running anything. Re-scoring on the same records is cheap and unambiguous: if the gap disappears after fixing the rule, you've found the cause.

Controls make the conclusion meaningful. A repeat with no changes shows that 15–36% of outcomes change on their own. Without that baseline, any “dropped by 5 points” could be noise. A positive control is needed for the opposite situation. If you made a deliberately harmful change and the score didn't react, your check is blind, and the conclusion “nothing changed” is worthless.

Control knobs: - Number of repeats — more repeats, more precise noise estimate. For a quick check, three per task is enough. - The “pass” threshold — vary it and see whether the conclusion holds at 0.55, 0.65 and 0.75. - Equivalence margin — the authors used ±0.10. For critical tasks, go narrower. - The suspected rule — plug in your own (date format, case, call order), and re-scoring will show its contribution.

05

Prompt Template

<Role>
You are an analyst of agent quality (or of LLM-based automation). 
Your task is to separate the causes of a score change: the agent's behavior or the checking rule. 
No conclusions from a single number.
</Role>

<Context>
System: {what_agent_or_process}
What changed: {change}
How it's scored: {checking_rule_or_judge}
What was expected: {should_the_change_affect_the_outcome_or_not}
</Context>

<Data>
Before the change: {data_before}
After the change: {data_after}
Repeat run with no changes: {repeat_data}
Action traces (if available): {traces}
</Data>

<Protocol>
Step 1. Compute the noise: the share of tasks where two identical runs gave different results.
Step 2. Compute the before/after score change and compare it with the noise.
Step 3. For tasks with a changed result, compare traces: calls, arguments, outcome for the user.
Step 4. For “same behavior, different score” cases, name the checking rule that might have fired differently. 
       Propose a corrected rule and re-score on the same traces.
Step 5. Split the drop: share explained by the check / share explained by behavior. 
       State what data is missing.
</Protocol>

<Rules>
- Compute the “average score” alongside the pass rate: a small gap can mean failure in both cases.
- Don't call a cause proven if the difference doesn't exceed the noise.
- If there's too little data, say so plainly.
</Rules>

What to fill in: {change} — one specific change at a time (tool names, output format, task wording). {checking_rule_or_judge} — how exactly the score is set: a script, a checklist, an LLM judge. {data_*} — exported results as a table. {traces} — the agent's action logs.

🚀 Quick start — paste into the chat:

Here's a template for diagnosing a score change (TRACE). Adapt it to my task: [describe your agent/automation and what changed]. 
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what exactly you changed, how the check works and what data you have. The method needs this to separate the culprits: it has to know what checks the outcome and whether there are action records for re-scoring. The model will take the structure from the template and adapt it to your system.

06

Limitations

⚠️ You need run data: without several repeats and action records (traces), you'll only get a hypothesis. Noise and re-scoring require the actual materials, not a memory of “it was roughly like this”.

⚠️ Few tasks — wide intervals: on 30 tasks in the first study, almost all intervals included zero. The absence of an effect there didn't mean there was none: there just wasn't enough data. The only “clear” effect vanished when the sample was expanded.

⚠️ Tested on a narrow set: most of the experiments are one public benchmark (retail and airline), four agents and a synthetic environment. Conclusions like “renaming is safe” can't be carried over to any tools and prompts.

⚠️ A caveat about the checks themselves: the “matching by name” defect was found in a simple homemade script. It's not a conclusion about trained evaluator models.

⚠️ Misleading names do hurt: if a tool's name contradicts what it does, reward drops for every agent. Neutral renames are harmless; misleading ones are not.

⚠️ A judge can't be tested on stability alone: repeatability isn't validity. A judge can consistently grade the wrong thing (for example, the order of steps instead of the outcome).

07

How They Studied It

The idea was simple: to trust the diagnosis, you first need to test it where the cause is known in advance. The author built a synthetic world of 25 research tasks (for example, fix the learning rate or prevent data leakage) and three “actor” agents with scripted behavior: a careful one, an “answer-memorizer” and a cheater. The same tool rename produced different results. For the careful agent the score dropped by 0.25, but after mapping the names back the gap went to zero — meaning the check was to blame. For the “memorizer” the gap remained (0.13): it really was producing a failed report. The cheater's gap was nearly zero (0.006). But that's not “robustness”: it failed both variants equally badly.

Then they moved to real LLM agents on the public τ²-bench: four agents, 30 tasks, three conditions (original, renaming, reformatting the answers). They saw an “effect”: Laguna's score rose by 0.267 with renaming. The authors didn't buy it and re-checked on 88 new tasks with three runs each. The effect vanished, and in 7 of 8 pairs the difference fell within ±0.10. To make the zeros meaningful, they added a positive control: the tool names were deliberately shuffled, but the tasks stayed solvable. Reward dropped for every agent by 0.20–0.44, so the setup can see an effect.

The biggest surprise was the noise. An identical repeat changed the result for 14.7–16.3% of tasks, and for 35.6% with Laguna. That means any single-run comparisons on benchmarks like these are unreliable. The judges (GPT-6.1 Sol and Claude Opus 5.5) were robust to presentation format on 118 fixed trajectories: the difference stayed within their own noise. But they disagreed with each other on 57% of records. Claude agreed with the reference in 95% of cases, GPT in 38%, mostly nitpicking the procedure — for example, multiple tool calls in a single turn. The practical takeaway: control for noise, look at trajectories, and don't confuse stability with correctness.

08

Adaptations and Extrapolations

🔧 Technique: add an outcome clause to the judge's rubric → less nitpicking about procedure

The authors didn't test this themselves, but their finding suggests the move. One judge penalized procedure even though the benchmark counted the task as a success. If you use an LLM judge, spell out explicitly what's being graded:

Grade only the final outcome for the user: 
whether the task is solved and whether the final data is correct. 
Don't lower the score for the order of actions, the number of tool calls 
or style if the outcome is correct. 
If the order of actions is critical (security, irreversible operations), flag it as a separate item.

This is a hypothesis; test it on your own sample: take 20 records, run them through the old and new rubric and compare with human grading.

Extrapolation: checking tool descriptions in the agent's instructions

The authors showed that misleading tool names hurt every agent. From this you can build a self-check for an instructions file (CLAUDE.md, AGENTS.md):

Before using a tool, check its name against its description. 
If the name and description disagree (for example, “delete” actually archives), 
stop and report it — don't choose by name.

This is a conclusion inspired by the paper, not its result. The authors tested shuffled names specifically, but not an instruction like this.

09

Resources

  • Paper: “TRACE: Diagnosing Verifier Brittleness in Agentic Evaluation”, AI Measurement Science Workshop at COLM 2026.
  • Author: Radhika Gaonkar, Prime Intellect.
  • Benchmarks and environments: τ²-bench (Barres et al., 2026), ResearchOpsEnv (a synthetic environment of 25 tasks created by the authors).
  • Related work: Krakovna et al. (2020) on specification gaming, Gao et al. (2023) on reward model overoptimization, Zhu et al. (2025) on auditing agent benchmarks, Ribeiro et al. (2020) on behavioral testing.

Research digest

Key result

The agent's score dropped by 0.25 even though it was doing exactly the same thing. In the test, the tools were simply renamed, and the checking code matched names, not actions. The TRACE method lets you figure out who's to blame for the drop: the agent itself or whoever sets the score. TRACE re-scores the same action records and doesn't re-run the agent. The action records (trajectories) work as evidence. If the gap disappears after fixing the rule, the check is to blame. If it remains, the agent's behavior is to blame.

Principle

Four steps, each answering its own question. 1. Two controls. A repeat with no changes shows how noisy the result is on its own. A deliberately harmful change shows whether the check can see a real effect. 2. Paired runs. The same tasks run before and after the change, several times each. 3. Review the records. Look at the calls, arguments and outcome for the user. Is the behavior changing, or just the number? 4. Re-score. Run the same records through the corrected rule. “The overall score dropped”, “the behavior changed” and “the checker's judgment changed” are three different questions, and they need to be answered with different data. It's like a doctor who won't treat based on one number on the thermometer. First they check whether the thermometer itself is lying.

Why it works

A score always has three parts: the agent, the environment and the checker. When the number changes, we automatically blame the agent. But a simple check based on names, format or a template actually measures form, not outcome. Here's the kicker: an identical re-run without a single edit flips “pass/fail” for 15–36% of tasks. A 5-point drop after a single run may turn out to be just noise. An action record can't be argued with: if the actions and outcome are the same but the score differs, the check is to blame, and you don't need a single new agent run to show it. With LLM judges (large language models acting as checkers) it's a similar story. Two strong judges are consistent with themselves but disagree with each other on 57% of the same records. One of them was grading the order of steps, not the outcome. Stability isn't correctness. A positive control is needed for the opposite situation. Made a deliberately harmful change and the score didn't budge? Then the check is blind, and the conclusion “nothing changed” is worthless.

When to apply

Evaluating agents and LLM-based automations → analyzing a drop or jump in score after editing a prompt, renaming tools, changing the output format or the model, especially when the score is set by a script or an LLM judge and the action records are saved. NOT a fit if you have one run per task and no action records. Then you'll only get a hypothesis. Small samples are another weak spot: on 30 tasks almost all intervals included zero, and the only “clear” effect vanished when the sample was expanded. The “matching by name” defect was found in a simple homemade script, not in trained judges. Misleading tool names really do hurt, so “renaming is safe” holds only for neutral names.

Mini recipe

1. Measure the noise: run the same tasks with no changes at least 3 times. See what share of tasks flip their result on their own. 2. Break it on purpose: make a deliberately harmful change. If the score didn't dip, fix the check, not the agent. 3. Run before and after: the same tasks, 3 repeats for each version. 4. Compare with the noise: is the drop smaller than the repeat baseline? Then don't name a cause. 5. Open the action records: sort the tasks into “same behavior”, “behavior changed”, “unclear”. 6. Name a suspect: matching by tool name, date format, case or call order. 7. Re-score: run the same records through the corrected rule. Don't fixate on one “pass” threshold: check that the conclusion holds at 0.55, 0.65 and 0.75. 8. Split the drop: how much the check explains, how much the actual behavior. Say plainly what data is missing.

Examples

[BAD]: `The returns agent's score dropped from 80% to 65% after the tools were renamed. Why did it get worse?` [GOOD]: `You are an agent quality analyst. Don't draw conclusions from a single number. What changed: get_order renamed to fetch_order_details, refund to issue_refund_to_customer, same logic. Check: a script outputs “pass/fail”. Data: table A (20 tasks, 3 runs before), table B (3 runs after), table C (a repeat before, no edits). Step 1: compute the share of tasks where A and C give different results. Step 2: compare the A→B drop with that noise. Step 3: for tasks that changed, compare calls, arguments and the outcome for the customer. Step 4: for the “same behavior, score dropped” group, name the checking rule that fired differently, propose a fix and re-score on the same records. Step 5: split the drop into “the check is to blame” and “the behavior changed”.` With the bad request, the model will start guessing about “the agent getting worse”. With the good one, it first checks whether the check itself is lying. In this case, a script that matched tool names will be exposed at step 4.

In plain words

Your AI agent suddenly hit rock bottom on its metrics: say, the success rate crashed from 80% to 65%. The first reaction is panic, because it looks like the model got dumber or the prompt broke. But in most cases the problem isn't the agent's logic — it's a brittle verifier, an automated tester that grades form instead of substance. You just renamed a tool, the agent worked perfectly, but the checker script failed the task because it was expecting the exact old name.

It's like a nitpicky teacher who gives you an F for the right answer just because you wrote “5 dollars” instead of the canonical “$5”. The agent brilliantly solved the customer's problem and processed the return, but the tester went blind: it was looking for the command getorder, and it saw fetchorder_details. Technically the test failed, but it's not the agent screwing up — it's the scoring system.

To avoid fixing what isn't broken, the researchers rolled out the TRACE protocol. It breaks the problem down in four steps: you do paired runs on the same data, compare the actual action trajectories and re-score with a corrected rule right on the old records, without burning budget on re-running the LLM. On top of that they add a noise control (to see how much the model fluctuates on its own) and a deliberately harmful edit — a basic check of whether the tester can even notice a real screwup.

The experiment used a support bot for a marketplace, but the principle is universal. The same diagnosis applies to coding assistants, complex RAG pipelines and autonomous browser agents. Anywhere a rigid autotest sits between the model's decision and the “success” checkmark, benchmarks lie through their teeth, mistaking a minor format change for a loss of intelligence.

Bottom line: if your metrics chart is heading down, don't rush to rewrite the logic or roll back the release. First check whether your own judge is goofing off. The TRACE framework saves hours of debugging and spares engineers' nerves. Otherwise you risk rejecting a working model just because of a crooked autotest that got hung up on a comma.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on TRACE: diagnosing a drop in an agent's score — is it the agent or the measurement? arXiv:2610.11678

Sign in to apply this study New accounts get 50 free credits.