MIT
tau2-bench (Sierra Research)
The benchmark our replays ran on: we used the Telecom domain's 40-task test split, commit 05736c2 (2026-10-21).
We recorded a GPT-5.2 support agent on tau2-bench's 40 Telecom test tasks, then replayed every task in Kitaru with 7 other models and one prompt rule. A second section looks at five frontier models in Exgentic's 499 public recorded runs.
GLM-5.3 (39 / 40), Qwen3.8 27B (36 / 40), DeepSeek V4.1 Flash (35 / 40) solved clearly more tasks than the GPT-5.2 baseline (27 / 40): their paired intervals stay above zero, led by GLM-5.3 at +30.0 [17.5, 45.0] points. GPT-5.4 mini (19 / 40) solved clearly fewer.
Rerunning GPT-5.2 with nothing changed solved the same 27 tasks in number but not the same tasks: it gained 6 and lost 6. Its paired interval, [−17.5, 17.5] points, is the noise every swap is read against.
One prompt rule from the prompt audit (keep troubleshooting before transferring) moved GPT-5.2 to 29 / 40, +5.0 [−12.5, 22.5] points, which can't be told apart from noise. Unsolved tasks still ended in a transfer 10 times, as in the baseline (10).
Every arm is a full replay of the same 40 tasks in Kitaru: a fresh episode per task, with the model or the prompt changed and everything else held fixed.
Each arm ran all 40 test tasks once, end to end, with tau2's own grader. The difference is paired by task against the GPT-5.2 baseline. Highlighted rows are clearly ahead of it: their interval stays above zero.
| Arm | Weights | Solved | Success rate | 95% CI | vs. GPT-5.2 baseline (points, 95% CI) | Tasks gained / lost |
|---|---|---|---|---|---|---|
| GPT-5.2 (baseline recording) | closed | 27 / 40 | 67.5% | [52.0, 79.9] | reference | |
| GPT-5.2 (rerun, no override) | closed | 27 / 40 | 67.5% | [52.0, 79.9] | 0.0 [−17.5, 17.5] | 6 / 6 |
| GPT-5.2 + escalation rule | closed | 29 / 40 | 72.5% | [57.2, 83.9] | +5.0 [−12.5, 22.5] | 8 / 6 |
| GLM-5.3 | open | 39 / 40 | 97.5% | [87.1, 99.6] | +30.0 [17.5, 45.0] | 12 / 0 |
| Qwen3.8 27B | open | 36 / 40 | 90.0% | [77.0, 96.0] | +22.5 [7.5, 37.5] | 10 / 1 |
| DeepSeek V4.1 Flash | open | 35 / 40 | 87.5% | [73.9, 94.5] | +20.0 [7.5, 32.5] | 8 / 0 |
| GPT-5.6 Sol | closed | 33 / 40 | 82.5% | [68.0, 91.3] | +15.0 [0.0, 32.5] | 9 / 3 |
| Kimi K3 | open | 32 / 40 | 80.0% | [65.2, 89.5] | +12.5 [−2.5, 27.5] | 7 / 2 |
| GPT-5.6 Luna | closed | 22 / 40 | 55.0% | [39.8, 69.3] | −12.5 [−30.0, 5.0] | 5 / 10 |
| GPT-5.4 mini | closed | 19 / 40 | 47.5% | [32.9, 62.5] | −20.0 [−37.5, −2.5] | 3 / 11 |
The GPT-5.2 rerun changed nothing, so its gap from the baseline is pure run-to-run noise. Costs are not shown: Kitaru could not price the open-weight models, and their prices are unverified.
The two weakest models lost most of their tasks by handing the customer to a human: all 18 of GPT-5.6 Luna's unsolved tasks ended in a transfer, and 14 of GPT-5.4 mini's 21.
The cheap step check did not predict the replay order (rank correlation −0.07 over 7 models). GPT-5.6 Luna matched GPT-5.2's tool most often (88.0%) but solved 55.0% of tasks; DeepSeek V4.1 Flash matched least (58.1%) and solved 87.5%.
The two parts of this page use different agent harnesses, user simulators and task sets, so their numbers don't line up: GPT-5.2 solved 67.5% of the 40 test tasks in our replays and 53.5% of its 101 runs in Exgentic's recordings.
Every table behind the findings, grouped by question. Each opens in place.
Solved tasks per issue type, from the tau2 task id.
| Arm | MMS | Mobile data | No service |
|---|---|---|---|
| GPT-5.2 (baseline recording) | 6 / 16 | 7 / 9 | 14 / 15 |
| GPT-5.2 (rerun, no override) | 6 / 16 | 6 / 9 | 15 / 15 |
| GPT-5.2 + escalation rule | 9 / 16 | 6 / 9 | 14 / 15 |
| GLM-5.3 | 15 / 16 | 9 / 9 | 15 / 15 |
| Qwen3.8 27B | 12 / 16 | 9 / 9 | 15 / 15 |
| DeepSeek V4.1 Flash | 12 / 16 | 8 / 9 | 15 / 15 |
| GPT-5.6 Sol | 10 / 16 | 8 / 9 | 15 / 15 |
| Kimi K3 | 9 / 16 | 8 / 9 | 15 / 15 |
| GPT-5.6 Luna | 4 / 16 | 5 / 9 | 13 / 15 |
| GPT-5.4 mini | 5 / 16 | 1 / 9 | 13 / 15 |
Darker cells missed more tasks of that type.
The agent can transfer a customer to a human when a request is outside its own actions. In these tasks it never needed to, yet that is how most unsolved tasks ended.
From each episode's tool calls: whether the agent transferred the customer to a human, or ended with the phone or account still wrong.
| Arm | Unsolved | Handed to a human | Ended without a transfer |
|---|---|---|---|
| GPT-5.2 (baseline recording) | 13 | 10 | 3 |
| GPT-5.2 (rerun, no override) | 13 | 10 | 3 |
| GPT-5.2 + escalation rule | 11 | 10 | 1 |
| GLM-5.3 | 1 | 0 | 1 |
| Qwen3.8 27B | 4 | 3 | 1 |
| DeepSeek V4.1 Flash | 5 | 2 | 3 |
| GPT-5.6 Sol | 7 | 5 | 2 |
| Kimi K3 | 8 | 3 | 5 |
| GPT-5.6 Luna | 18 | 18 | 0 |
| GPT-5.4 mini | 21 | 14 | 7 |
No episode failed before grading in any arm.
A cheap way to judge a swap is to resend recorded calls and compare the replies. We ran Kitaru's model-swap step check, which is still in development, on GPT-5.2's public recorded calls, then compared its order with the full replays.
For the 7 models in both, how often each picked GPT-5.2's recorded tool in the step check, against how many tasks it solved in full replays. The step check used Exgentic's recordings, a different harness, so compare the order, not the numbers.
| Model | Same tool as GPT-5.2 (step check) | Solved (full replay) | vs. GPT-5.2 baseline (points, 95% CI) |
|---|---|---|---|
| GPT-5.6 Luna | 88.0% (n = 75) | 55.0% | −12.5 [−30.0, 5.0] |
| Qwen3.8 27B | 83.7% (n = 86) | 90.0% | +22.5 [7.5, 37.5] |
| GPT-5.6 Sol | 82.7% (n = 75) | 82.5% | +15.0 [0.0, 32.5] |
| Kimi K3 | 77.9% (n = 86) | 80.0% | +12.5 [−2.5, 27.5] |
| GLM-5.3 | 76.7% (n = 86) | 97.5% | +30.0 [17.5, 45.0] |
| GPT-5.4 mini | 76.0% (n = 75) | 47.5% | −20.0 [−37.5, −2.5] |
| DeepSeek V4.1 Flash | 58.1% (n = 86) | 87.5% | +20.0 [7.5, 32.5] |
Rank correlation between the two columns: −0.07 over 7 models, so the step check's order told us nothing about the replay order.
Exgentic published 499 recorded tau2-bench Telecom runs of five frontier models in one tool-calling harness. We did not run these agents, and the dataset declares no license, so this part shows aggregate numbers only. Its harness, simulator and tasks differ from our replays.
Exgentic's tool-calling agent on tau2-bench Telecom, one run per task per model, 499 runs in all. Success is the benchmark's own verdict as recorded; nothing was re-run.
| Model | Weights | Solved | Success rate | 95% CI | Cost per solved task | Model calls per run |
|---|---|---|---|---|---|---|
| Kimi K2.5 | open | 83 / 100 | 83.0% | [74.5, 89.1] | $0.1118 | 16.14 |
| Claude Opus 4.5 | closed | 75 / 99 | 75.8% | [66.5, 83.1] | $1.2097 | 17.24 |
| Gemini 3 Pro (preview) | closed | 73 / 99 | 73.7% | [64.3, 81.4] | $0.4035 | 14.80 |
| DeepSeek V3.2 | open | 71 / 100 | 71.0% | [61.5, 79.0] | $0.0696 | 18.11 |
| GPT-5.2 | closed | 54 / 101 | 53.5% | [43.8, 62.9] | $0.2819 | 10.47 |
Cost per solved task is Exgentic's recorded agent cost over all of a model's runs, divided by the runs it solved. How that cost priced cached tokens is not documented, and the simulated user's cost is not included. The public data has no task identifier, so runs cannot be paired across models; compare the intervals, not the ranks.
Of 143 unsolved runs, 117 ended with the agent transferring the customer to a human, on tasks the agent could have solved within its own tools. Both columns come from the recorded tool calls.
| Model | Unsolved | Handed to a human | Ended without a transfer | Transfers in solved runs |
|---|---|---|---|---|
| Kimi K2.5 | 17 | 11 | 6 | 10 |
| Claude Opus 4.5 | 24 | 23 | 1 | 18 |
| Gemini 3 Pro (preview) | 26 | 25 | 1 | 18 |
| DeepSeek V3.2 | 29 | 26 | 3 | 17 |
| GPT-5.2 | 47 | 32 | 15 | 10 |
A transfer in a solved run did not cost the task: the run still reached the right end state.
160 of GPT-5.2's 1,048 replayable recorded calls, from 19 of its runs, resent unchanged to GPT-5.2 itself and to seven newer models. "Same tool" counts the calls where GPT-5.2 had called a tool. The paired difference is against GPT-5.2's own repeat, resampled over recorded runs.
| Model | Same tool | 95% CI | vs. GPT-5.2's repeat (points, 95% CI) | Same reply exactly |
|---|---|---|---|---|
| GPT-5.2 (its own repeat) | 63 / 75 (84.0%) | [74.1, 90.6] | reference | 62 / 141 (44.0%) |
| GPT-5.6 Luna | 66 / 75 (88.0%) | [78.7, 93.6] | +3.6 [−2.4, 10.5] | 60 / 141 (42.5%) |
| Qwen3.8 27B | 72 / 86 (83.7%) | [74.5, 90.0] | −0.3 [−7.2, 5.4] | 69 / 160 (43.1%) |
| GPT-5.6 Sol | 62 / 75 (82.7%) | [72.6, 89.6] | −0.1 [−3.6, 3.9] | 59 / 141 (41.8%) |
| Kimi K3 | 67 / 86 (77.9%) | [68.0, 85.4] | −4.1 [−9.6, 1.3] | 67 / 160 (41.9%) |
| GLM-5.3 | 66 / 86 (76.7%) | [66.8, 84.4] | −6.6 [−14.5, 0.0] | 57 / 160 (35.6%) |
| GPT-5.4 mini | 57 / 75 (76.0%) | [65.2, 84.3] | −0.5 [−11.1, 13.5] | 55 / 141 (39.0%) |
| DeepSeek V4.1 Flash | 50 / 86 (58.1%) | [47.6, 68.0] | −25.3 [−38.1, −13.3] | 43 / 160 (26.9%) |
The 4 OpenAI models, GPT-5.2's repeat included, answered 141 of the 160 calls; the other 4 answered all 160, so their rates use slightly more calls. The step check measures how close a reply is to GPT-5.2's recorded one, not whether it is right.
Solved runs per issue type. The type is not a dataset field: it comes from matching the simulated customer's first messages against simple text rules, and the counts are small.
| Model | MMS | Mobile data | No service |
|---|---|---|---|
| Kimi K2.5 | 31 / 43 | 36 / 41 | 16 / 16 |
| Claude Opus 4.5 | 19 / 43 | 40 / 40 | 16 / 16 |
| Gemini 3 Pro (preview) | 21 / 43 | 37 / 40 | 15 / 16 |
| DeepSeek V3.2 | 26 / 43 | 34 / 45 | 11 / 12 |
| GPT-5.2 | 13 / 44 | 31 / 37 | 10 / 20 |
Darker cells missed more runs of that type.
Mean recorded agent cost and model calls per run, solved against unsolved.
| Model | Cost, solved | Cost, unsolved | Calls, solved | Calls, unsolved |
|---|---|---|---|---|
| Kimi K2.5 | $0.0886 (n = 83) | $0.1129 (n = 17) | 15.6 | 18.8 |
| Claude Opus 4.5 | $0.7869 (n = 75) | $1.3212 (n = 24) | 15.0 | 24.4 |
| Gemini 3 Pro (preview) | $0.2798 (n = 73) | $0.3472 (n = 26) | 14.0 | 17.0 |
| DeepSeek V3.2 | $0.0392 (n = 71) | $0.0743 (n = 29) | 15.1 | 25.6 |
| GPT-5.2 | $0.1453 (n = 54) | $0.1570 (n = 47) | 9.8 | 11.1 |
MIT
The benchmark our replays ran on: we used the Telecom domain's 40-task test split, commit 05736c2 (2026-10-21).
Public recorded agent runs across several benchmarks and harnesses, published by Exgentic. We used its 499 tau2-bench Telecom runs from the tool-calling harness. The dataset declares no license, so we show aggregate numbers only.
Kitaru turns your agent's traces into test cases and replays them against any model, prompt or setting, so you can see what a change does before it ships.