Two-thirds of failed agent runs in ThinkingBox exited cleanly with the backend still wrong
Microsoft and Hugging Face's ThinkingBox found that 67.24% of 79,853 failed agent runs ended cleanly, with no final tool error. Those failures showed up only when executable checks read the records each run left in the backend.
The Engineer · Build desk

What happened
- In the worked example, the agent made nine tool calls on a late-delivery complaint and correctly found that the customer's account segment did not qualify for compensation.
- Among failed runs, the checks found wrong field values in 77.61%, unintended extra effects in 43.30% and missing required effects in 25.36%, with the categories overlapping.
- Claude Opus 5.5 led the single-attempt pass@1 ranking at 67.16%, two-thirds of a point above Claude Opus 5.
- Claude Opus 4.6 scored 68.62% on the retail tasks and 8.30% on the auto-insurance tasks.
Why it matters
- Who's exposed exposure Failures that exit cleanly do not trip error-based monitoring, so in production they stay in customer records until someone inspects the records themselves.
- What it costs cost Grading for consistency this way costs 10,140 runs per model, each from a freshly reset backend, against 507 for a single pass over the tasks.
- Who has to decide decision On the authors' task mix, a team that needs open weights gives up less than a point of pass@1 by choosing Kimi-K3 over GPT-6-Astra.
- What it limits constraint State grading only works where the correct end state can be written in advance as a field value, such as hold for a ticket blocked on an open carrier exception.
Next story · Science · Sep 23
Opus 5.5's claimed 40% cost cut needs a cache-heavy workload to appearConfirmed2 publishers
The check that fails in the worked example is one field. The ticket's status is solved, where the task requires hold [6]. The carrier exception was still open, so the correct end state was on hold, pending resolution [5]. The agent's last message read: "Since your query is resolved, is there anything I may assist you with?" [7] It is a courteous sentence to send someone whose $745 appliance is fifteen days late and still stuck at a Nashville distribution center [3]. According to the authors, she also never got an answer to what she asked [8].
Grading the transcript cannot catch this. A grader that reads the tool calls would find nothing malformed. One that checks whether the agent wrote to the database would find the write [18]. Only the value in the status field shows the error [6].
ThinkingBox gets to that value by controlling the environment. The agent works against isolated MCP tool sessions. When the run ends, the grader reads the terminal backend state and the side effects left behind [1]. Each of the 507 workflows runs 20 times, and every run starts from an identical clean backend [9]. One of the three reported numbers, observed 20/20, is the literal count of tasks a model passed on all 20 runs, with no estimator and no smoothing [13]. I think a literal count is the right design for a reliability figure, because nobody needs an error model to read it.
The ablation shows how large the gap is. Across 121,680 valid trials on 12 models, 79,853 runs failed the executable checks [14]. The failure rate is about 65.6% [21]. The trial count equals 507 tasks times 20 runs times 12 models [20]. Roughly 53,700 of the failed runs changed state, terminated cleanly and reported no final tool error [22][10]. That is about 44% of every valid trial [23].
The authors' summary of the method runs to three sentences: "A trajectory is a claim. Database state is the evidence. Repetition is the trust test." [15]
The pass@1 table needs more care than the state checks. It describes the authors' mix of 507 workflows. For an overall score to carry over to a team's own agent, that team's tasks would need a similar domain mix and tools exposed the same way, through MCP [1]. The domain breakdown argues against borrowing the overall figure. One model's retail and auto-insurance scores sit about 60 points apart [24].
The harness is public. The benchmark runs through OpenEnv. The worked example comes from task test_case_ST003_006 in sandbox_external_retail_group1.py, and the full trace is in Appendix D.4 of the paper [17].
What to watch
- The observed 20/20 counts per model, showing how many of the 507 tasks each model completes correctly on every run.
- Independent OpenEnv runs of ThinkingBox on other backends, to test whether the clean-exit failure share holds outside the authors' workflows.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence60
- Adoption
- Not scored
- Hype gap+15
- Incentives40
- Confidence62
Perspective Coverage
3 publishers- Builder
- Builder 55%
- Operator
- Operator 37%
- Investor
- Investor 8%
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
ThinkingBox runs an agent against isolated MCP tool sessions, then grades the terminal backend state and side effects it leaves behind.
- [2]
ThinkingBox is presented in a joint blog by Microsoft and Hugging Face.
- [3]
In the example, a customer's $745 kitchen appliance has been stuck in a courier 'exception' at a Nashville distribution center, fifteen days past its estimated delivery date.
- [4]
The agent made nine tool calls: it pulled the order, checked tracking, looked up the customer profile, searched the refund policy twice, confirmed no ticket existed, opened one, documented the timeline, and read the policy correctly; the customer's account segment does not qualify for late-delivery compensation.
- [5]
The agent closed the ticket as resolved, but the carrier exception was still open, so the required end state was on hold, pending resolution.
- [6]
The executable check that fails is a single field: the ticket's status is solved where the required end state is hold.
- [7]
"Since your query is resolved, is there anything I may assist you with?"
- [8]
The customer never got a real answer to what she actually asked.
- [9]
ThinkingBox covers 507 stateful business workflows; every task runs 20 independent times, each from an identical clean backend.
- [10]
Of the 79,853 failures, 67.24% still terminated cleanly, invoked a state-changing tool, and reported no final tool error.
- [11]
Among the failures, executable checks found wrong field values in 77.61%, unintended extra effects in 43.30%, and missing required effects in 25.36%; the findings overlap.
- [12]
Kimi-K3 is the strongest open-weights model on pass@1, within a point of GPT-6-Astra.
- [13]
The authors report three numbers; 'observed 20/20' is the literal count of how many of the 507 tasks passed 20 out of 20, with no estimator and no smoothing.
- [14]
In a common-set ablation covering 121,680 valid trials across 12 LLM models, 79,853 attempts failed the executable checks.
- [15]
"A trajectory is a claim. Database state is the evidence. Repetition is the trust test."
- [16]
Claude Opus 5.5 leads overall pass@1 at 67.16%, two-thirds of a point above Claude Opus 5.
- [17]
The benchmark can be run through OpenEnv; the example is adapted from task sandbox_external_retail_group1.py:test_case_ST003_006, with the full trace in Appendix D.4, Case 3 of the paper.
- [18]
An AI grader checking tool calls would see nine well-formed ones, and a grader checking whether the agent wrote to the database would see that too; the database is what disagrees.
- [19]
Claude Opus 4.6 scores 68.62% on retail but 8.30% on auto insurance.
- [20]
The ablation's 121,680 trials equal 507 tasks x 20 runs x 12 models.
- [21]
The ablation failure rate is about 65.6%.
- [22]
About 53,700 failed runs terminated cleanly with a state-changing tool call and no final tool error.
- [23]
Clean-exit failures are about 44% of all valid trials in the ablation.
- [24]
Claude Opus 4.6's retail and auto-insurance pass@1 scores differ by about 60 points.
- [25]
Running each of the 507 tasks 20 times means 10,140 runs per model, against 507 for a single pass.
Sources
2 independent publishers whose own reporting we read for this story.
- dev.toNew Benchmark Catches AI Agents Lying About Finished Work
3 articles · October 5, 2026
- huggingface.coThe Agent Said It Was Done. The Database Disagreed.
1 article · October 3, 2026
- runtimewire.comMicrosoft releases an agent benchmark where the database gets the final vote
1 article · October 3, 2026