AI Blog

65% Once, 25% Twenty Times: Your Headline Score Is Mostly Flake

Microsoft's new Thinkingbox benchmark reports 65.36% pass@1 and 25.25% pass^20 for its strongest model. If failures were independent, twenty-in-a-row would be 0.02% — so the agent is dependable on a quarter of the work and a coin flip on most of the rest, and the coin-flip band is what passes review and ships.

By Agentic AI Wiki 15 min read

The strongest model in Microsoft's new agent benchmark completes 65.36% of business workflows on the first attempt and only 25.25% of them on twenty attempts out of twenty. If each attempt failed independently, twenty-in-a-row would land at 0.02% — one task in five thousand — so the observed 25% is not a smaller version of the same measurement. It is a different fact: the agent is dependable on about a quarter of the work and behaves like a coin on most of the rest, and the coin-flip band is the part that passes your review and ships.

What Thinkingbox measured

Thinkingbox is a sandbox and benchmark for agents working in stateful business workflows, released on 19 August 2026 by researchers at Microsoft with collaborators at the University of Pittsburgh, Northwestern University and UC Irvine, under the paper title One Success Isn't Reliability (arXiv:2608.19741). The framework is on GitHub under an MIT licence; tool mocks are defined as MCP servers, so the agent under test talks to the sandbox the same way it talks to production.

Thinkingbox-bench, the executable suite that ships with it, contains 507 policy-conditioned workflows across five domains — retail, hospitality, auto insurance, neobank internal IT, and consulting IT and HR support. "Policy-conditioned" is doing real work in that sentence: each task hands the agent a written business policy and the correct answer depends on applying it, so a task can be failed by doing something competent that the policy forbids.

The grading is the second thing worth noting. Outcomes are checked against the terminal state of the backend the agent was manipulating, plus collateral effects — what else changed that should not have. The agent's own account of what it did is not the artefact under test. That distinction turns out to explain a large share of the failures: the paper's recurring pattern is a plausible, well-formed response sitting on top of an incorrect state change, or a failure the agent recovered from badly and then reported as handled.

MeasurementValueQuestion it answersWhat it hides
pass@165.36%Can it do this at all?Whether it does it twice
pass^2025.25%Can it do this every time?Which failure mode, and why
Independent-failure prediction0.02%What pass^20 would be if trials were independentNothing — it is arithmetic, and it is wrong

The metric itself is not new. pass^k — succeed on all k trials, as opposed to pass@k's at least one — was introduced with τ-bench in 2024, which reported the same collapse: an agent scoring around 60% on a single attempt fell to roughly 25% at pass^8 on the retail split. Two years later the headline number in nearly every model announcement is still the single attempt.

Run the arithmetic and the score falls apart

Three readings of the same agent on the same 507 tasks Horizontal bar chart with three bars. The strongest model in the Thinkingbox paper solves 65.36 percent of tasks on a single attempt, and only 25.25 percent of tasks on all twenty consecutive attempts. A third bar shows what twenty-in-a-row would be if each attempt failed independently at the same rate: 0.02 percent, roughly one task in five thousand. The observed twenty-in-a-row figure is more than a thousand times higher than the independent prediction, which means failures are strongly correlated per task. Same model, same 507 tasks, three numbers Strongest model in Thinkingbox-bench. The third bar is arithmetic, not a measurement. pass@1 one attempt 65.36% pass^20 twenty in a row 25.25% if independent 0.6536 ^ 20 0.02% about 1 task in 5,000 Observed twenty-in-a-row beats the independent prediction by more than a thousandfold. Failures are not spread across attempts. They are concentrated in particular tasks.
Two measurements and one calculation. The calculation is the interesting one.

Take the two published numbers seriously for a moment. If the agent had a flat 65.36% chance on every attempt at every task, drawn fresh each time, then twenty successes in a row would occur with probability 0.653620 ≈ 0.0002. A benchmark of 507 tasks would show roughly zero of them passing twenty out of twenty. The measured figure is 25.25%.

Three orders of magnitude of disagreement is not noise, and it has exactly one explanation: outcomes are strongly correlated within a task. Whatever varies between runs is not sprinkled evenly over the suite. Some tasks the agent simply gets right, run after run. Others it gets right sometimes.

You can put a rough shape on that split with one assumption — that a task the agent is genuinely flaky on essentially never survives twenty consecutive attempts, which holds for any per-attempt rate below about 0.8. Then the deterministic band is the pass^20 figure, 25.25% of tasks, and the per-attempt success rate on everything else falls out of the pass@1 total:

deterministic band  d = pass^20              = 0.2525
remainder           r = 1 - d                 = 0.7475
per-attempt rate    q = (pass@1 - d) / r
                      = (0.6536 - 0.2525) / 0.7475
                      = 0.537

So: on a quarter of the suite the agent is reliable, and on the other three-quarters it succeeds about 54% of the time. That is a two-population caricature of what is really a continuum, and the real distribution certainly includes tasks the agent never solves at all, which this fit folds into the same bucket. But the direction is not in doubt, and it is the direction that matters. Forty of the sixty-five points in the headline score are contributed by tasks the agent solves sometimes.

Splitting a headline score into a deterministic band and a flaky band Diagram. A box on the left holds 507 policy-conditioned tasks. Two arrows split them into two bands. The upper band, about a quarter of the tasks, is solved on all twenty attempts and is the part of the score that survives deployment. The lower band, about three quarters of the tasks, succeeds roughly fifty-four percent of the time per attempt and is some mix of coin-flip tasks and tasks the agent never solves. A third column names the production consequence of each band: the deterministic band can be shipped and monitored, while the flaky band passes review and then fails at a rate nobody measured. THE SUITE WHAT THE TWO NUMBERS IMPLY WHAT IT DOES IN PRODUCTION 507 tasks retail, hospitality, auto insurance, neobank IT, consulting IT and HR Deterministic band ~25% of tasks, 20 of 20 This is the pass^20 figure, and it is the only part you can promise. Everything else ~75% of tasks, ~54% per attempt Solve pass@1 for the remainder and you get a coin. Some are flaky, some are never solved; one number hides both. Shippable Fails visibly when it fails, so a fallback and an alert are enough to hold it. Passes review, then bites Green in the eval that sampled it once, red for roughly half of real users, irreproducible for whoever is on call. Two-population reading of pass@1 = 65.36% and pass^20 = 25.25%: assume the always-solved band passes every trial, and the remainder falls out as (0.6536 − 0.2525) / (1 − 0.2525) ≈ 0.54 per attempt.
The headline number is an average across two populations that behave nothing alike in production.

"Sometimes" is operationally worse than "never"

The intuition to overturn is that a 54% task is halfway to a good task. It is not. In deployment terms it is worse than a task the agent fails every time, and the reason is that failure modes get handled in proportion to how visible they are.

A task the agent never completes announces itself on day one. Someone tries it in staging, watches it fail, and the system grows the thing it needed anyway: a fallback, a human queue, a refusal, a scope boundary in the product copy. The capability gap becomes a design decision, which is the correct outcome.

A task the agent completes half the time announces nothing. It passes the demo. It passes the eval — because the eval ran it once, and one sample from a 54% coin comes up heads more often than not. It ships. Then it fails for roughly half the users who hit that path, in a way that is irreproducible for whoever is on call, and it is triaged as a flake rather than as a missing capability. Meanwhile every dashboard your team built is a mean over runs, and a mean cannot distinguish "works for everyone, degraded" from "works perfectly for half of them".

The compounding is the part that turns this from annoying into disqualifying. Business workflows are chains. A five-step process where each step is drawn from that 54% band completes end to end 4.5% of the time — and a workflow assembled from steps that each demoed fine is exactly how teams arrive at a pilot that works in the room and dies in the quarter. This is the mechanism underneath the pattern our earlier post on the agent pullback described from the outside: the pilots did not fail because the models were incapable. They failed because capability was measured once.

There is also a procurement consequence. Two models can report the same pass@1 with completely different deployment value — one deterministic on 60% of tasks and hopeless on the rest, the other a 65% coin on everything. The first is a product. The second is a demo. No leaderboard column you are looking at separates them.

Grade the state, not the sentence

What each of the three measurements can and cannot answer Three columns. pass@1 answers whether the agent is capable of the task at all and cannot tell you whether it will do it twice. pass at k answers whether the agent is dependable on that task and cannot tell you why a failure happened. A terminal-state and collateral-effect check answers whether the world ended up correct and cannot be satisfied by a plausible-sounding response. Each column notes the cost of relying on it alone. ONE SUITE, THREE QUESTIONS — RUN ALL THREE pass@1 Is it capable at all? Cheapest signal, and the only one every leaderboard prints. Blind to: whether the same task succeeds a second time. pass^k Is it dependable? k = 5 already separates the deterministic tasks from the rest. Blind to: why it failed, and what it broke on the way. State + collateral check Did the world end up right? Grades the database the agent left behind, not its summary. Blind to: nothing you asserted — and everything you did not. Drop the middle column and a task that works half the time ships as a task that works.
Three questions, three measurements. Most teams are running one.

Thinkingbox's second contribution is quieter than the reliability gap and easier to act on this week. The suite grades the backend state the agent left behind, and it grades collateral effects — the records it touched that no correct execution would have touched.

Compare that with the default. Most agent evals grade a transcript, usually with a judge model reading the final message. The transcript is the one artefact the agent under test fully authors. When a model has been trained to produce well-formed, confident summaries of its own work, grading the summary measures the thing the model is best at, and the failure the paper keeps surfacing — a plausible response over an incorrect state change — is precisely the failure that survives that grader intact.

The database is not persuadable. Neither is the ledger, the ticket queue, the calendar, or the row count. If your agent writes anywhere, you can assert on what it wrote, and those assertions do not drift when the model changes its prose style. The general argument for this sits in outcome vs trajectory evaluation; Thinkingbox is the strongest empirical case for it we have seen, because it isolates a failure class that only a state check catches.

Collateral effects deserve their own line. An agent that resolves the ticket correctly and also cancels an unrelated subscription has passed every outcome assertion you thought to write. Snapshot the world before and after, diff it, and treat any change outside the expected set as a failure — the eval equivalent of the side-effect ledger that idempotency and retries argues for at runtime.

What to change in your own suite

Run every eval task k times and report pass^k next to pass@1. You do not need twenty. At k=5 a deterministic task and a 54% task separate cleanly — the coin survives five in a row 4.5% of the time — and five runs of a forty-task suite is an affordable nightly job. Report both numbers; a single number that hides a bimodal distribution is not a summary, it is a loss of information.

Bucket the suite into always / sometimes / never, and make the middle bucket the roadmap. This is the artefact the exercise exists to produce. The never bucket is a scope conversation. The always bucket is what you are allowed to promise. The sometimes bucket is engineering work with a known address — and it is usually addressable, because per-task flakiness generally traces to something concrete: an ambiguous tool description, a policy the model has to hold across too many turns, a retrieval step that returns different context on different runs, a schema the model fills in two different ways.

Do not let a fix be judged by the same single-sample method that missed the bug. Re-run the fixed task k times. A change that moves a task from 54% to 71% looks like a fix under one sample and is still a coin. This is where eval variance and statistical power stops being a statistics lecture and starts being the difference between shipping a fix and shipping a rumour.

Assert on state, and snapshot for collateral damage. If your agent writes to anything, write assertions against the write. Keep a judge for the parts that are genuinely about language — tone, refusal quality, explanation — and stop using one where a query would do.

Use pass^k as the model-swap gate. When a new model arrives, the interesting question is not whether the headline moved. It is whether tasks migrated between buckets — and models with near-identical pass@1 routinely differ on which tasks they are deterministic about. Freeze the suite, run both at the same k, diff the buckets. Our comparison of the four open-source eval frameworks covers which harness makes repeated-trial runs cheap enough to do on every model change.

None of this requires adopting Thinkingbox. The suite is worth reading for its task design, and the MIT licence makes the scenario format a reasonable thing to borrow. But the finding transfers without the tool: you already have a benchmark, you are already reporting one number from it, and the second number costs you k times the compute and tells you which half of the first one was real.

FAQ

What is the difference between pass@k and pass^k?

pass@k means the agent succeeded on at least one of k attempts, which is the right metric when a human filters the candidates — as in code generation, where you can run the tests. pass^k means it succeeded on all k attempts, which is the right metric when the agent acts unsupervised, because a single wrong action on a live system is not filtered by anything. Agent deployments almost always want the second.

Why is the observed pass^20 so much higher than 0.6536 to the twentieth power?

Because attempts on the same task are not independent draws. Task difficulty, the model's grasp of that particular policy, and the tool surface stay fixed across the twenty runs; only sampling and ordering vary. That correlation concentrates the failures into particular tasks rather than spreading them over all of them, which is exactly why the aggregate score is so misleading about any individual task.

Does a higher temperature explain the flaky band?

Lowering temperature narrows the spread but does not move a task from the flaky band to the deterministic one, because the variance that matters in a long agent run comes from branch points — which tool to call, whether to ask the user, when to stop — and small differences at a branch point produce entirely different trajectories. Treat determinism settings as a variance reduction, not a reliability fix; the wider version of this argument is in reproducibility and determinism.

Is k=5 really enough?

For triage, yes. Five trials cleanly separate a deterministic task from one near 50%, which is the split that changes what you build. What five trials cannot do is give you a precise per-task rate or detect a small regression — for that you need a power calculation and considerably more runs, on a suite small enough to afford them.

Should I trust the specific numbers?

Trust the gap, not the decimals. 65.36% and 25.25% are one paper's strongest model on one 507-task suite in five business domains, and your workflows are not those workflows. The transferable claim is structural: single-attempt scoring systematically overstates what an agent will do under repetition, and the size of that overstatement is measurable on your own suite for the price of running it k times.

Further reading

On this wiki:

Sources: