Before comparing Talkdesk, we checked that our setup reproduces a published τ-bench result.
Milestone 1 complete: setup validated. pass¹ matches the published result. pass⁴ is lower, but consistent across our Azure runs, and the adapter scores in the same range as native τ-bench. We are ready to run GPT-4.1-mini and Talkdesk.
Sources: Saved run configuration · Published run configuration
Sources: Adapter implementation · Offline tests
passk = share of tasks that pass on all k tries, estimated from each task's 4 tries. Every run loses points as k grows; ours follows the same slope as native Azure run 2.
| Run | pass¹ | pass² | pass³ | pass⁴ |
|---|---|---|---|---|
| Published (OpenAI) | 83% | 78.33% | 75% | 72% |
| Native Azure, run 1 | 83% | 75.67% | 69.5% | 64% |
| Native Azure, run 2 | 80% | 70.67% | 63.5% | 58% |
| Adapter based | 78% | 67.67% | 61% | 56% |
Sources: Calculated score differences
The adapter scored 78% pass¹ and 56% pass⁴, within 3.5 and 5 percentage points, respectively, of the two native Azure runs’ average.
| Run | Tasks by tries passed (50 tasks) | 4/4 | 3/4 | 2/4 | 1/4 | 0/4 | Passed conversations |
|---|---|---|---|---|---|---|---|
| Published (OpenAI) | 36 | 6 | 1 | 2 | 5 | 166 / 200 | |
| Native Azure, run 1 | 32 | 11 | 2 | 1 | 4 | 166 / 200 | |
| Native Azure, run 2 | 29 | 11 | 5 | 1 | 4 | 160 / 200 | |
| Adapter based | 28 | 10 | 5 | 4 | 3 | 156 / 200 |
For each task we ask: if we picked k of its 4 tries at random, how likely is it that all k passed? The run's score is the average of that across the 50 tasks.
| A task that passed… | pass¹ | pass² | pass³ | pass⁴ |
|---|---|---|---|---|
| 4 of 4 tries | 100% | 100% | 100% | 100% |
| 3 of 4 tries | 75% | 50% (3 of 6 pairs) | 25% (1 of 4 triples) | 0% |
| 2 of 4 tries | 50% | 17% (1 of 6 pairs) | 0% | 0% |
| 1 of 4 tries | 25% | 0% | 0% | 0% |
| 0 of 4 tries | 0% | 0% | 0% | 0% |
Worked example, adapter based pass²: (28 tasks × 100% + 10 × 50% + 5 × 17% + 4 × 0% + 3 × 0%) ÷ 50 = 67.67%
| pass¹ | pass⁴ | |
|---|---|---|
| Native Azure average (runs 1 and 2) | 81.5% | 61% |
| Adapter based | 78% | 56% |
| Gap | −3.5 points | −5 points |
Compare the adapter's gap with the gap between two native runs where nothing was changed.
The adapter's gap is about the same size as the difference between two identical native runs, so it can't be blamed on the adapter. pass⁴ shows the same thing: native runs 64% and 58% (6 points apart), adapter based 56% (2 points below run 2).
pass⁴ is all or nothing. A task counts only if all 4 tries pass.
One slip costs 2 points on pass⁴ but only 0.5 on pass¹. About 20 of the 50 tasks pass on some tries and fail on others.
One common slip comes from τ-bench's simulated customer:
Chat ends. Nothing is cancelled, so the task fails.
This happened 4 times in native run 1, 7 times in native run 2 and 7 times on the adapter, so it affects both sides.
Re-run test: we replayed only those conversations and gave the agent one more turn after the customer's "YES".
17 of 18 finished the task correctly. This was a diagnostic only; the official scores above are unchanged.
Sources: Per-task results across runs · Published task results
These tasks are hard for GPT-5.2 itself, in the published run, native Azure and adapter based alike. They lower every run's score by the same amount, so they don't affect the comparison.
| Run | Agent | Customer | Total | Time |
|---|---|---|---|---|
| Published (OpenAI) | $22.76 | $3.20 | $25.95 | n/a |
| Native Azure, run 1 | $20.05 | $2.97 | $23.02 | 4.7 h |
| Native Azure, run 2 | $19.45 | $2.85 | $22.30 | 2.1 h |
| Adapter based | $18.13 | $3.00 | $21.13 | 1.9 h |
Costs are token-based estimates, not invoices.
Every number on this page comes from these saved files in the project repository (tau2-bench/). Click a source name to open the file. The fingerprint is the start of each file's SHA-256 hash; if the file changes, the fingerprint changes.
| Result | Source | Fingerprint |
|---|---|---|
| Published GPT-5.2 scores (83% / 72%)Saved published trajectories and leaderboard entry | Published conversations Published leaderboard entry | 308a133d880def13 |
| Native Azure, run 1 (83% / 64%)Full results, 200 conversations | Native run 1 results | 436e45285cccd736 |
| Native Azure, run 2 (80% / 58%)Full results, 200 conversations | Native run 2 results | bb45befbc34d2466 |
| Adapter (78% / 56%)Full results, 200 conversations | Adapter results | e2786602319924c5 |
| 1,984 tool calls matched, 0 re-scoring differences, 200 sessionsValidation summary written after the adapter run | Adapter validation summary | 87b2853820e7fbf1 |
| Task breakdown, pass² and pass³, gaps, 32/200 flipsCalculation methodology and results | Statistical analysis Task scores per run Calculation methodology | ae88582039867a1c |
| Customer says YES and ends the chat (4 / 7 / 7 cases)Manual review of all 118 failed conversations | Customer-stop review Failed conversation endings | — |
| Re-run test, 17 of 18 completedContinued conversations, each re-scored | Adapter continuation: first case Adapter continuation: remaining cases Native run 1 continuation Native run 2 continuation | — |
| Adapter code and testsInitial suite: 72 tests; expanded suite: 80 tests | Adapter implementation Offline tests Implementation commit: 9395f8c | — |
How to check: run sha256sum <file> in the repository and compare the first 16 characters. Every run's scores were also re-calculated offline from these files with τ-bench's own scorer, with no differences.
The v0.1.3 adapter scored 46% on pass¹ and 26% on pass⁴, versus native’s 45% and 20%. The earlier local native and MCP runs are retained below for comparison.
Four local GPT-4.1-mini runs complete. The v0.1.3 native and MCP adapter results are included alongside the earlier runs and the v0.1.3 repository reference.
The v0.1.3 repository reference records GPT-4.1-mini-2025-04-14 and customer GPT-4.1-2025-04-14. Our saved Azure deployment names do not independently verify deployed model versions. Matching run settings does not establish identical provider or repository behavior.
| Run | Successes | pass¹ | pass² | pass³ | pass⁴ | 4/4 tasks | 3/4 tasks | 2/4 tasks | 1/4 tasks |
|---|---|---|---|---|---|---|---|---|---|
| Repository reference · OpenAI · v0.1.3 | 101/200 | 50.5% | 39.33% | 32% | 26% | 13/50 | 12/50 | 4/50 | 5/50 |
| Native Azure · run 1 | 89/200 | 44.5% | 32% | 27% | 24% | 12/50 | 6/50 | 6/50 | 11/50 |
| Native baseline · v0.1.3 | 90/200 | 45% | 30% | 23.5% | 20% | 10/50 | 7/50 | 9/50 | 11/50 |
| MCP adapter · Chat Completions | 87/200 | 43.5% | 29% | 22.5% | 20% | 10/50 | 5/50 | 12/50 | 8/50 |
| MCP adapter · Chat Completions · v0.1.3 | 92/200 | 46% | 35% | 29.5% | 26% | 13/50 | 7/50 | 6/50 | 7/50 |
Each task is run four times. 1/4 means exactly one success, 2/4 two, 3/4 three, and 4/4 all four. A count such as 12/50 means 12 of the 50 tasks belong to that group. pass¹ measures average single-trial success; pass⁴ is the percentage of tasks passing all four trials. passᵏ averages C(successful trials, k) / C(4, k) across 50 tasks.
All 200 conversations ended with customer STOP; all task/trial pairs are present once. The 42 tool errors were ordinary domain errors, including insufficient payment balance and invalid booking inputs. Earlier connection-refused attempts are absent from the final scored trajectories. Checks cover saved results and their corresponding 200 session logs; independent strict re-scoring has not been performed for this run.
| Run | Successes | 4/4 tasks | Duration | Agent | Customer | Total |
|---|---|---|---|---|---|---|
| Native Azure | 89/200 | 12/50 | 39m 17s | $1.83 | $2.58 | $4.41 |
| MCP adapter Azure | 87/200 | 10/50 | 43m 15s | $1.90 | $2.56 | $4.46 |
Costs are saved model estimates, not invoices. Duration spans the earliest conversation start through the latest end.
The v0.1.3 results follow the confirmed complete-run comparison table.
Download the original results used to calculate these tables. Fingerprints are the first 16 characters of each source’s SHA-256 hash.
| Source | Fingerprint |
|---|---|
| Repository reference (OpenAI · v0.1.3) results (JSON) | 41788956547a100f |
| Native Azure results (JSON) | 50b2da4cfde27447 |
| MCP adapter Azure results (JSON) | a7af45017aa3390a |