Which model holds up as a telecom support agent?

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.

Status
Complete
Replays
October 22, 2026
Tasks
40 (tau2-bench Telecom test split)
Arms
10: 8 models, a rerun, a prompt rule
Grading
tau2's own grader, no LLM judge
Data
tau2-bench, MIT

The result

  1. Tasks solved out of 40 · higher is better
    GLM-5.3
    39 / 40
    Qwen3.8 27B
    36 / 40
    DeepSeek V4.1 Flash
    35 / 40
    GPT-5.2 (baseline)
    27 / 40
  2. 01

    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.

  3. 02

    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.

  4. 03

    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).

Results

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.

vs. GPT-5.2 baseline (points, 95% CI) · higher is better
  • GLM-5.3+30.0 · 39 / 40
  • Qwen3.8 27B+22.5 · 36 / 40
  • DeepSeek V4.1 Flash+20.0 · 35 / 40
  • GPT-5.6 Sol+15.0 · 33 / 40
  • Kimi K3+12.5 · 32 / 40
  • GPT-5.2 + escalation rule+5.0 · 29 / 40
  • GPT-5.6 Luna−12.5 · 22 / 40
  • GPT-5.4 mini−20.0 · 19 / 40

Tasks solved, full replays

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.

ArmWeightsSolvedSuccess rate95% CIvs. GPT-5.2 baseline (points, 95% CI)Tasks gained / lost
GPT-5.2 (baseline recording)closed27 / 4067.5%[52.0, 79.9]reference
GPT-5.2 (rerun, no override)closed27 / 4067.5%[52.0, 79.9]0.0 [−17.5, 17.5]6 / 6
GPT-5.2 + escalation ruleclosed29 / 4072.5%[57.2, 83.9]+5.0 [−12.5, 22.5]8 / 6
GLM-5.3open39 / 4097.5%[87.1, 99.6]+30.0 [17.5, 45.0]12 / 0
Qwen3.8 27Bopen36 / 4090.0%[77.0, 96.0]+22.5 [7.5, 37.5]10 / 1
DeepSeek V4.1 Flashopen35 / 4087.5%[73.9, 94.5]+20.0 [7.5, 32.5]8 / 0
GPT-5.6 Solclosed33 / 4082.5%[68.0, 91.3]+15.0 [0.0, 32.5]9 / 3
Kimi K3open32 / 4080.0%[65.2, 89.5]+12.5 [−2.5, 27.5]7 / 2
GPT-5.6 Lunaclosed22 / 4055.0%[39.8, 69.3]−12.5 [−30.0, 5.0]5 / 10
GPT-5.4 miniclosed19 / 4047.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.

What else we found

  1. 04

    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.

  2. 05

    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%.

  3. 06

    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.

Full results

Every table behind the findings, grouped by question. Each opens in place.

More resultsBy issue type, full replays1 table

By issue type, full replays

Solved tasks per issue type, from the tau2 task id.

ArmMMSMobile dataNo service
GPT-5.2 (baseline recording)6 / 167 / 914 / 15
GPT-5.2 (rerun, no override)6 / 166 / 915 / 15
GPT-5.2 + escalation rule9 / 166 / 914 / 15
GLM-5.315 / 169 / 915 / 15
Qwen3.8 27B12 / 169 / 915 / 15
DeepSeek V4.1 Flash12 / 168 / 915 / 15
GPT-5.6 Sol10 / 168 / 915 / 15
Kimi K39 / 168 / 915 / 15
GPT-5.6 Luna4 / 165 / 913 / 15
GPT-5.4 mini5 / 161 / 913 / 15

Darker cells missed more tasks of that type.

FailuresHow unsolved tasks ended, full replays1 table

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.

How unsolved tasks ended, full replays

From each episode's tool calls: whether the agent transferred the customer to a human, or ended with the phone or account still wrong.

ArmUnsolvedHanded to a humanEnded without a transfer
GPT-5.2 (baseline recording)13103
GPT-5.2 (rerun, no override)13103
GPT-5.2 + escalation rule11101
GLM-5.3101
Qwen3.8 27B431
DeepSeek V4.1 Flash523
GPT-5.6 Sol752
Kimi K3835
GPT-5.6 Luna18180
GPT-5.4 mini21147

No episode failed before grading in any arm.

Did the step check predict it?Step check vs. full replay1 table

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.

Step check vs. full replay

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.

ModelSame tool as GPT-5.2 (step check)Solved (full replay)vs. GPT-5.2 baseline (points, 95% CI)
GPT-5.6 Luna88.0% (n = 75)55.0%−12.5 [−30.0, 5.0]
Qwen3.8 27B83.7% (n = 86)90.0%+22.5 [7.5, 37.5]
GPT-5.6 Sol82.7% (n = 75)82.5%+15.0 [0.0, 32.5]
Kimi K377.9% (n = 86)80.0%+12.5 [−2.5, 27.5]
GLM-5.376.7% (n = 86)97.5%+30.0 [17.5, 45.0]
GPT-5.4 mini76.0% (n = 75)47.5%−20.0 [−37.5, −2.5]
DeepSeek V4.1 Flash58.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's public recordingsExgentic's recorded runs per model · How unsolved recorded runs ended · Step check against GPT-5.2's recorded calls · By issue type, recorded runs · Unsolved recorded runs cost more5 tables

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 recorded runs per model

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.

ModelWeightsSolvedSuccess rate95% CICost per solved taskModel calls per run
Kimi K2.5open83 / 10083.0%[74.5, 89.1]$0.111816.14
Claude Opus 4.5closed75 / 9975.8%[66.5, 83.1]$1.209717.24
Gemini 3 Pro (preview)closed73 / 9973.7%[64.3, 81.4]$0.403514.80
DeepSeek V3.2open71 / 10071.0%[61.5, 79.0]$0.069618.11
GPT-5.2closed54 / 10153.5%[43.8, 62.9]$0.281910.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.

How unsolved recorded runs ended

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.

ModelUnsolvedHanded to a humanEnded without a transferTransfers in solved runs
Kimi K2.51711610
Claude Opus 4.52423118
Gemini 3 Pro (preview)2625118
DeepSeek V3.22926317
GPT-5.247321510

A transfer in a solved run did not cost the task: the run still reached the right end state.

Step check against GPT-5.2's recorded calls

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.

ModelSame tool95% CIvs. 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]reference62 / 141 (44.0%)
GPT-5.6 Luna66 / 75 (88.0%)[78.7, 93.6]+3.6 [−2.4, 10.5]60 / 141 (42.5%)
Qwen3.8 27B72 / 86 (83.7%)[74.5, 90.0]−0.3 [−7.2, 5.4]69 / 160 (43.1%)
GPT-5.6 Sol62 / 75 (82.7%)[72.6, 89.6]−0.1 [−3.6, 3.9]59 / 141 (41.8%)
Kimi K367 / 86 (77.9%)[68.0, 85.4]−4.1 [−9.6, 1.3]67 / 160 (41.9%)
GLM-5.366 / 86 (76.7%)[66.8, 84.4]−6.6 [−14.5, 0.0]57 / 160 (35.6%)
GPT-5.4 mini57 / 75 (76.0%)[65.2, 84.3]−0.5 [−11.1, 13.5]55 / 141 (39.0%)
DeepSeek V4.1 Flash50 / 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.

By issue type, recorded runs

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.

ModelMMSMobile dataNo service
Kimi K2.531 / 4336 / 4116 / 16
Claude Opus 4.519 / 4340 / 4016 / 16
Gemini 3 Pro (preview)21 / 4337 / 4015 / 16
DeepSeek V3.226 / 4334 / 4511 / 12
GPT-5.213 / 4431 / 3710 / 20

Darker cells missed more runs of that type.

Unsolved recorded runs cost more

Mean recorded agent cost and model calls per run, solved against unsolved.

ModelCost, solvedCost, unsolvedCalls, solvedCalls, unsolved
Kimi K2.5$0.0886 (n = 83)$0.1129 (n = 17)15.618.8
Claude Opus 4.5$0.7869 (n = 75)$1.3212 (n = 24)15.024.4
Gemini 3 Pro (preview)$0.2798 (n = 73)$0.3472 (n = 26)14.017.0
DeepSeek V3.2$0.0392 (n = 71)$0.0743 (n = 29)15.125.6
GPT-5.2$0.1453 (n = 54)$0.1570 (n = 47)9.811.1

How we ran it

Task
tau2-bench Telecom (commit 05736c2 (2026-10-21)), its 40-task test split: a support agent helps a simulated customer fix a phone problem (MMS, mobile data or no service). The agent can look up accounts and bills, change the line and roaming, and message the customer; the simulated customer performs the device actions. Nothing was tuned on these tasks.
Agent and replays
Our agent runs inside tau2's own orchestrator, with tau2's telecom tools, and Kitaru records each episode as a session. The GPT-5.2 baseline was recorded live; every other arm is a Kitaru replay of those 40 sessions with the model or the prompt changed. A replay starts a fresh episode from the task, so it is a new full run, not a step check. tau2's own user simulator with gpt-4.1, unchanged across arms; at most 100 steps and 20 minutes per episode.
Prompt rule
One general rule appended to GPT-5.2's instructions: work through every applicable manual section, have the user re-check after each change, check the account side, and transfer only when every step has failed or the manual says to escalate. Written from the failure pattern in the public Exgentic recordings (premature transfers) and the tau2 manual's structure; it contains no task ids, scenarios, device states or answers. When it was written relative to the baseline run was not recorded.
Grading
tau2's own grader checks the end state of the phone and the account; no LLM judge is involved. An episode with no graded outcome counts as unsolved; none occurred.
Noise
GPT-5.2 replayed with nothing changed. Wilson score 95% intervals for single rates; paired differences against the baseline use a per-task bootstrap, 10,000 resamples. A difference whose interval includes zero is reported as not distinguishable.
Public recordings
The runs are Exgentic's, published on Hugging Face as agent-llm-traces-v2. We did not run these agents. The published shards hold 10,056 rows (the dataset card says 10,057), 1,844 of them tau2-bench Telecom across four agent harnesses. We kept the tool-calling harness only, 499 runs, so every model ran the same agent design with native tool calls. Nothing was dropped within it.
Public recordings: task
tau2-bench Telecom: a support agent helps a simulated customer fix a phone problem (MMS, mobile data or no service). The agent can look up accounts and bills, change the line and roaming, and message the customer; the simulated customer performs the device actions. The simulated customer's model and cost are not in the data.
Public recordings: scoring
A run counts as solved when the dataset's success field is true, which is the benchmark's own evaluation as recorded. 288 runs have an "unknown" status while success is set; they are scored by the success field. Two GPT-5.2 runs carry another model's run label and are counted under the model their calls name.
Public recordings: cost
Cost per solved task uses each run's agent cost as Exgentic recorded it, summed over solved and unsolved runs and divided by the solved ones. The prices behind it and its treatment of cached tokens are not documented, and the simulated customer is excluded.
Step check
160 of GPT-5.2's 1,048 replayable recorded calls, sampled deterministically, were resent exactly as recorded (the conversation up to that step and the recorded tool list) to GPT-5.2 and to seven newer models, and each reply was compared with the recorded one, exactly, with no LLM judge. The recorded tool definitions carry no argument schemas, so every model saw tool names and descriptions only.
Step check intervals
Wilson score 95% intervals for single rates. Paired differences against GPT-5.2's repeat use a cluster bootstrap over the 19 recorded runs the sampled calls came from, 10,000 resamples. A difference whose interval includes zero is reported as not distinguishable.

What it can't show

  • 40 tasks per arm and one episode per task, so accuracy intervals are wide (about +/-15 points); per-task paired intervals are reported for every comparison.
  • The user simulator is an LLM (gpt-4.1); the noise arm measures how much outcomes move on a rerun with nothing changed.
  • Replays start fresh episodes from each task (Kitaru replays the case, not the recorded conversation), so a replay is a new full run, not a step check.
  • The agent harness is ours (PydanticAI with a send_message_to_user tool), not tau2's built-in LLM agent; numbers are not comparable to the tau2 leaderboard.
  • Open-weight models ran on one commercial inference provider.
  • Model settings are provider defaults (no reasoning-effort tuning per model).
  • The step-screen comparison uses different recordings (public Exgentic traces) from the replays.
  • The arms differ in more than the model: the GPT-5.2 baseline ran an earlier agent version straight against OpenAI, the other arms a later version through a local model router, and GPT-5.6 and GPT-5.4 mini used OpenAI's Responses API while GPT-5.2 used chat completions. The unchanged GPT-5.2 rerun ran on the later setup, so it also measures that difference.
  • In Exgentic's recordings, one run per task per model, with no repeats, so outcome noise was not measured there.
  • The public data has no task identifier, so runs cannot be paired by task across models; only each model's own interval is shown.
  • The step check measures similarity to GPT-5.2's recorded replies, not correctness: it cannot say which newer model would solve more tasks.
  • Only GPT-5.2 could be reached for the step check, so step agreement could not be compared with recorded outcomes for the other four models.
  • The recorded tool definitions have empty argument schemas, which affects every model in the step check, GPT-5.2's repeat included.
  • The OpenAI models answered 141 of the 160 sampled calls and the others all 160, so their rates rest on slightly different call sets.
  • GPT-5.2's recorded settings (reasoning effort, temperature) are not in the data; the step check used provider defaults.
  • Issue types come from text rules on the customer's first messages, not human labels.
  • Recorded cost is Exgentic's figure, with undocumented prices and cached-token treatment, and without the simulated customer.
  • The dataset declares no license, so this report shows aggregate numbers only.

The data

  • 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).

  • Exgentic: agent-llm-traces-v2

    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.

Run it on
your own agent

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.