1 / 23
τ
Stanford AIMS Seminar · July 2026

τ-bench
evaluating conversational agents, from text to voice

Soham Ray
Soham Ray
AI Research
on behalf of Sierra Research
Sierra Research

taubench.com · arXiv 2406.12045 · 2506.07982 · 2603.13686 · 2603.04370

This talk, in one slide

Overview & contents

One benchmark family for customer-service agents, built on one idea: grounded tasks whose reward is a verifiable database diff. The talk traces how realism was added one axis at a time — dual control, knowledge, then full-duplex voice — and what each axis revealed that the previous one couldn’t see.

01 · ContextSierra, and why customer service is where agents meet reality.
02 · τ-bench · 2024Tool · agent · user — grounded tasks, verifiable rewards, pass^k.
03 · τ²-bench · 2025Dual control: give the user a world — adoption, then saturation.
04 · τ-knowledge · 2026Find the policy before acting on it.
05 · τ-voice · 2026Pause time: ticks, personas, the audio pipeline — then the voice–text gap, interactivity metrics, failure attribution.
06 · What’s nextMultilingual τ-voice, and thoughts on benchmarking.
07 · AppendixUser-realism study, significance tests, error analysis, limitations.
Context

Sierra, in one slide

“Better customer experiences. Built on Sierra.”

Sierra is an AI agent platform: enterprises build, deploy, and continuously improve customer-facing agents across chat, email, SMS, WhatsApp — and, increasingly, voice.

Sierra
sierra.ai · founded 2023 · San Francisco
The arena

Customer service AI is big right now

Gartner counts 17 million human contact-center agents worldwide — and predicts agentic AI will autonomously resolve 80% of common issues by 2029.

Sierra
Decagon
Parloa
Intercom Fin
Agentforce
Zendesk
Cresta
Ada
PolyAI
Forethought

Why customer service, though? Because it’s primed for AI disruption — like coding agents, once you get all the information in one place, the rest is tractable:

Narrow & constrained
Clear goals
Data-rich

Gartner, March 2025 prediction & contact-center workforce estimate.

This talk

The τ-bench family

One grounded-task substrate, realism added one axis at a time:

2024 · τ-benchTools + policies + conversation.
Yao, Shinn, Razavi & Narasimhan Sierra
2025 · τ²-benchUser and agent both act.
Barres, Dong, Ray, Si & Narasimhan SierraPrinceton UniversityUniversity of Toronto
2026 · τ-knowledgeUnstructured KB + hidden procedures.
Shi, Zytek, Razavi, Narasimhan & Barres SierraPrinceton University
2026 · τ-voiceGrounded tasks over real-time speech.
Ray, Dhandhania, Barres & Narasimhan SierraPrinceton University

Each axis was a failure mode we kept meeting in production — and each found a capability cliff the previous one couldn’t see.

τ-bench · 2024

Tool · Agent · User

The first benchmark of tool-using agents on task completion in conversation: not “did it call the right API?” but “did it finish a person’s task — under policy, over many turns?”

User simulated by an LM persona + hidden goal Agent LLM + API tools bound by domain policy Database orders · flights · plans fully simulated, resettable domain policy.md dialogue tool calls Evaluation: compare final database state against the goal state — no judge, no rubric, deterministic r ∈ {0,1}

The agent answers for the organization, not the user. Retail ~115 tasks · airline ~50. Yao, Shinn, Razavi & Narasimhan, 2024 — arXiv 2406.12045.

τ-bench · anatomy of a task

A task is a world plus a goal

Policy · policy.md

Basic economy cannot be modified.

Within 24 h of booking, the agent may cancel and rebook.

Initial database · db.json

reservation JK9O19

basic_economy · booked < 24 h ago · confirmed

User instruction · the agent never sees this

“You were going to fly to Mexico next week, but now want the 22nd. You want the cheapest option that flies that day.”

User
I’d like to change my flight to a later one.
Agent
READget_reservation("JK9O19")
→ cabin: basic_economy · booked < 24 h ago
Agent
Basic economy can’t be changed — but you booked under 24 h ago, so I can cancel and rebook. Want me to?
User
Yes, please go ahead.
Agent
WRITEcancel_reservation("JK9O19")
Eval · final database state vs gold
JK9O19 no longer in reservations
refund transaction present
new rebooking missing → r = 0

The conversation can take any route — the reward only reads the world it leaves behind. Deterministic r ∈ {0,1}, no judge, environment resets per trial.

τ-bench · what it couldn’t see

But the user can only talk

User
My phone says No Service — can you fix it?
Agent
READget_line_details(...)
→ line active · no outage · roaming: off
Agent
Everything looks fine on my end. Could you check your phone’s settings?
User
…sure, it’s, um — done? I think I checked them.
Dead end
the fix is on the user’s phone — and this user has no phone
“I checked them” is a claim — nothing behind it to verify
1 · No hands
2 · Prompt-only simulator
3 · Hand-written difficulty

τ² answers all three at once: give the user a world.

τ²-bench · June 2025

Give the user a world

τ-bench (2024) · the user only talks τ²-bench (2025) · the user acts too
Agent policyverify, then act
AGENTguides the user
Agent toolsenable_roaming13 tools · act on the CRM
messages
User scenario“just landed · No Service”
USERtalks — that’s allacts on the phone
✗ no toolswords only
User toolstoggle_data_roaming30 tools · act on the phone
Shared World
one state · two views
Agent DB · line L1001
Intl. roaming offon ✓
( ) coupled
✗ no device
nothing to act on
No ServiceNo Signal5G ✓
📍 Seoul, Korea
Airplane Mode
Data Roaming
τ-bench can’t simulate the call you’re about to watch. Its user can only talk: no device, no state, nothing to toggle. toggle_airplane_mode()

So τ² gives the user a world: its own tools and device, coupled to the agent’s — dual control over shared state (formally, a Dec-POMDP).

More realistic — and, in the paper, more reliable at once. Retail & airline stay as single-control baselines, backward-compatible with τ-bench.

Barres, Dong, Ray, Si & Narasimhan — arXiv 2506.07982 · ICML 2026 Oral

τ²-bench · dual control, live

An example call: “No Service”, abroad

“Hi, this is Sara Kim on 555 0164 — I just landed in Seoul and my phone says No Service.”
“Sorry about that, Sara — you’re verified. get_customer_by_phone() What does the status bar on the phone show?”
“Umm… get_network_status() there’s a little airplane icon up top?”
“That’s Airplane Mode, from your flight. Toggle it off, please.”
“Done. toggle_airplane_mode() …still No Signal though.”
“Let me check your line. get_line_details() You’re abroad and roaming isn’t active — I’ve enabled it; standard charges apply, per policy. enable_roaming() Now: Settings → turn Data Roaming on.”
“OK, found it… toggle_data_roaming() it’s back! Full bars, 5G!”
user’s world · the phone
No ServiceNo Signal5G ✓
📍 Seoul, Korea
Airplane Mode
Data Roaming
⟨ coupled ⟩
agent’s world · CRM · line L1001
Intl. roaming offon ✓
Scored on the final world state
user.phone.signal == true
crm.line.roaming == true
pass^1 = 1 · deterministic, no judge

The fix took both hands — the agent writes in the CRM, the user toggles the phone. Neither side can finish alone.

τ²-bench · task construction

The compositional task generator

Tasks aren’t written — they’re initialized. Start from a healthy world and break it, composing independent root causes on either side:

The recipe

1  world = healthy_telecom()

2  world.apply(RC₁, RC₂)  ← same tools the user has

3  symptom emerges: “No Service”

4  gold_fix = the undo plan — recorded at build time

RC₂ is cross-world: “abroad” lives on the phone, “roaming off” in the CRM — only together do they break service. We injected the causes, so the fix provably exists.

Every added cause adds steps: difficulty is a dial.

15
atomic subtask groups
2,285
provably-correct tasks
114
balanced & released
Root cause 1 · user’s world
airplane mode left ONinit: turn_airplane_mode_on()
Root cause 2 · cross-world
abroad (user’s world)init: set_location("Seoul")
roaming off (agent’s world)init: set_roaming(off)
The fix · needs both hands
1 · usertoggle_airplane_mode()
2 · agentenable_roaming(line)
3 · usertoggle_data_roaming()
No ServiceNo Signal5G ✓
📍 Palo Alto, CA📍 Seoul, Korea
Airplane Mode
⟨ coupled ⟩
CRM · line L1001
Intl. roaming offon ✓
τ²-bench · results

The bottleneck is coordination, not reasoning

Telecom is hardest for every model
Claude 3.7
79
49
GPT-4.1
74
34
o4-mini
71
42
pass^1: retail vs telecom — drops of 22–40 pts, every model.
Guiding a person costs ~20 pts
GPT-4.1 solo
52
dual-control
34
o4-mini solo
67
dual-control
42
Same model, tasks & tools — the only change is who executes. Solo: user hands the phone over. Dual: the agent must guide.
Difficulty is a dial
≈2 actions
77
≈4 actions
50
≈6 actions
16
pass^1 by user actions required (service → mobile data → MMS). Issues form a hierarchy — difficulty compounds; success collapses past ~7 user actions.

Long-horizon coordination was the wall — keep that in mind for what happens next.

Adoption

Then the labs started reporting on it

GPT-5 launch
OpenAI · GPT-5 — τ² featured in launch; 96.7% telecom
Claude Sonnet 4.5
Anthropic · Sonnet 4.5 — τ² in evaluations
Gemini 3
Google · Gemini 3 — 85.4% on τ² at launch
Kimi K2
Moonshot · Kimi K2 — 66.1 on τ²
Grok 4.1
xAI · Grok 4.1 Fast — tops τ²-telecom chart, 11M+ views
Claude Opus 4.5
Anthropic · Opus 4.5 — τ² in agentic evals
Gemini 3 Flash
Google · Gemini 3 Flash — τ² at launch
Artificial Analysis
Artificial Analysis — independent τ² leaderboard

OpenAI · Anthropic · Google · xAI · Moonshot · DeepSeek · Qwen · NVIDIA — 1.5k★ on GitHub. Artificial Analysis runs τ² independently across its model index — third-party numbers, not self-reported.

One year later

…and then they saturated it

The outcome: agents that are genuinely good at long-horizon tasks.

τ²-telecom pass@1 by model release date, from the taubench.com leaderboard. Dashed line tracks the running frontier: 49% → 99.3% in ~16 months.

τ² · what it still couldn’t see

Saturated is not solved

At 99.3%, telecom can no longer tell models apart — yet nobody running production agents thinks the problem is done. τ² still hands the agent two things for free:

The policy is handed over

One curated policy.md in the prompt — real orgs bury procedures across hundreds of documents.

τ-knowledge

The conversation is clean text

Turns arrive whole, one at a time — production support is a phone call.

τ-voice

Same substrate, same deterministic reward — two new axes of realism.

March 2026
τ³

Two new axes of realism: knowledge & voice

Same grounded-task substrate — verifiable DB footprints, pass^k — extended to where production agents actually struggle: finding the policy before acting on it, and doing all of this over a phone line.

τ-knowledge · the τ-banking domain

Find the policy, then act on it

Policy

Not provided up front. The procedure is buried in the knowledge base — finding it is the task.

Knowledge base

698 documents · 21 product categories · ~195K tokens

51 tools are defined inside the documents

Initial database

accounts · cards · transactions

User instruction

“My wallet was stolen — can you freeze my cards?”

User
My wallet was stolen — can you freeze my credit cards?
Agent
SEARCHkb_search("lost or stolen card")
→ protocol: review recent transactions before acting
Agent
READget_card_transactions(card_id)
→ $1,890 at CryptoMiner · flagged suspicious
Agent
WRITEclose_account(…) · open_fraud_case(…)
Eval · final database state vs gold
compromised card closed
fraud case opened on the account
replacement card not issued → r = 0

Same deterministic reward — but a typical task needs 18.6 documents and 9.5 tool calls. Shi, Zytek, Razavi, Narasimhan & Barres — arXiv 2603.04370.

τ-knowledge · results

The frontier has shifted

Best score by domain
τ-telecom
97.8
τ-airline
84.0
τ-retail
82.9
τ-banking
37.4

The classic domains are saturating — banking is wide open. Even with the gold documents handed over, the best model reaches 39.7: retrieval helps, but grounded reasoning is the bottleneck.

Performance on τ-banking
GPT-5.5
37.4
GPT-5.4
30.7
Claude Opus 4.7
25.3
GPT-5.2
24.7
Claude Opus 4.6
24.5
Gemini 3.1 Pro
22.5
Claude Opus 4.5
21.4
Grok 4.2
17.6

pass^1, taubench.com + internal runs, June 2026 · retrieval strategy is pluggable — 12 configs from BM25 → embeddings → agentic terminal.

τ-knowledge · what the trajectories show

What separates the strongest agents

1 · Know when to search — and when to search again
✗ SEARCH ONCE AND STOP
U: Actually, this is a medical emergency.
A: continues without searching again
✓ KNOW WHEN TO SEARCH AGAIN
U: Actually, this is a medical emergency.
A: kb_search("medical emergency transfer escalation")
2 · Search smarter, not harder
✗ SPRAY-AND-PRAY
kb_search("transfer")
kb_search("human agent")
kb_search("escalation policy")
✓ SURGICAL QUERY
kb_search("transfer reason codes customer frustrated demands human medical emergency")
3 · Know when to act — and when not to
✗ HELPFUL OVERREACH
U: Please order a replacement card.
A: orders a replacement card
A: files a fraud dispute without being asked
✓ CALIBRATED RESTRAINT
U: Please order a replacement card.
A: orders a replacement card. That’s it.

From qualitative analysis across thousands of trajectories — the gap is judgment about when, not capability at how.

Checkpoint

So far

τ-bench · 2024The first tool-use task-completion benchmark — sets up the user · agent · database substrate.
τ²-bench · 2025Extends it to a world where both user and agent can interact — dual control.
τ-knowledge · 2026Adds a banking domain that needs retrieval and has a harder policy.
Going forwardWe’re deprecating the other domains — they’re saturated and overfit. τ-banking is the focus for the text version of τ-bench.
The rest of this talk
τ-voice

Grounded tasks, full-duplex, over a realistic phone line

Voice is becoming a primary interface for agentic systems.

Ray, Dhandhania, Barres & Narasimhan — arXiv 2603.13686 · ICML 2026

What we see in production

The call you design for vs. the call you get

The call you design for half duplex · clean audio · neutral accent · perfect turn-taking user “I got the wrong puzzle — need an exchange” “exchange, please” agent get_order() “I can help — exchange or refund?” “Done — on its way.” 0 s1.53.0
The call you get overlap · interruptions · backchannels · asides · noise · frame drops 0 s0.61.21.82.43.0 user “I got the wrong puzzle — need an exchange” mm-hmm cough “wait, no — I moved, fix the address first” (to kid) “hold on, I’m on the phone” agent get_order() “I can help — I see the jigsaw order, shipping to 12 Elm Street, and—” keeps floor ✓ ignores ✓ (SVT) no response ✓ (SND) L_R = 300 ms barge-in L_Y = 200 ms · buffers cleared, response truncated env background noise · 15 dB SNR, drifting horn frame drop frame drop user speech agent speech backchannel vocal tic non-directed noise burst frame drop tool call L_R response latency · L_Y yield latency — the interactivity metrics we score later are measured on exactly this timeline.
How we model it

How do you build a representative user simulator?

You’d want the user to:

…act like a real callerThe turn-taking policy — barge-ins, backchannels, yields, hang-ups.
…sound like a real callerThe audio pipeline — persona TTS, accents, noise, telephony.

But no voice model today is strong enough to play this caller at human-level latency — you have to choose: a high-quality, controllable user sim, or a low-latency one.

How we model it

Wait — what if you could pause time?

How we model it · 1 of 3

Introducing ‘ticks’

user-sim LLM one call / utterance “Wait — no, I moved last month. Fix the address first.” persona TTS voice · accent · pace sliced into 200 ms ticks — 3,200 samples each — the transcript rides along, split character-proportionally tick₃ = { audio: 3,200 samples · transcript: "st mont" · tools: [] } — nothing exists off the tick grid the exchange — each side hears the other’s previous tick agent user aᵢ₋₁aᵢaᵢ₊₁ uᵢ₋₁uᵢuᵢ₊₁ tool calls — run in-tick, results land next tick get_order() result → tick i+1 noise fills the wait — no dead air
The full-duplex orchestratorRuns the whole call on this tick grid — generating, slicing, exchanging, and timing tool calls.
Ticks are how you pause timeA tick is simulated time, not wall-clock time — so the user simulator has virtually no latency budget. That headroom can go anywhere: stronger models, richer behavior, more control.

The tick log — audio, transcript slice, tool calls, per tick — is the single source of truth every downstream metric is computed from.

Zoom in · turn-taking

Interrupts & backchannels, tick by tick

0 s123456 s tick = 200 ms · reaction checks every 2 s agent user sim “I can help — I see the jigsaw order here, shipping to twelve Elm Street — I’ll confirm the replacement goes to the s—” interrupt? → NO backchannel? → YES 2 LLM calls · in parallel · small decision model “mm-hmm” agent keeps the floor ✓ — backchannel ≠ interruption interrupt? → YES backchannel? → NO main LLM writes the reply → TTS → queued as 200 ms chunks barge-in “Wait — no, I moved last month —” buffer flushed — the unsaid words never happen L_Y = 600 ms measured, not scripted holds the floor 5 s when interrupting (configurable)

User-simulator defaults: respond after 1 s of agent silence · yield after 1 s when interrupted · hold 5 s when interrupting. All knobs — and deterministic given a seed.

How we model it · 2 of 3

Every caller has an accent

Two control personas set the clean American-accented baseline; five regular personas carry the accents we actually hear on real support lines:

Matt Delaneycalm Midwest — the “ideal” caller
Lisa Brennerstandard American, brisk
Arjun RoyBengali (Dhaka)
Wei LinSichuan Mandarin
Mamadou DialloSenegalese French
Priya PatilMarathi-influenced Indian English
👵 Mildred Kaplanelderly, needs tech help

Personas are generated reproducibly (fixed seed) via voice design — accents are TTS-induced, a stated scope limitation.

How we model it · 2 of 3

…loosely inspired by friends on the Sierra research team!

Ben Shias Matt Delaney
Ola Zytekas Lisa Brenner
Keshav Dhandhaniaas Arjun Roy
Siyu Yaoas Wei Lin
Victor Barresas Mamadou Diallo
Soham Rayas Priya Patil
How we model it · 3 of 3

The audio pipeline

simulated user message “I got the wrong puzzle…” audio library street · café · TV scheduler Poisson voice personas 7 voices · accents GENERATORS background noise continuous · 15 dB SNR bursts car horn · dog · siren out-of-turn speech “hold on, kids” speech persona TTS · accent · pace constant intermittent (scheduler) dynamic muffling 20% of utterances CHANNEL DEGRADATION telephony conversion G.711 µ-law @ 8 kHz frame drops Gilbert–Elliott · ~2% · 100 ms what the agent hears

Figure 3, τ-voice (arXiv 2603.13686) — redrawn live. A factorial ablation grid (audio × accents × behavior) isolates each factor’s cost.

Let’s listen to one

Every run is auditable — audio included

Live embed of the taubench.com visualizer — pick any task, scrub the timeline, and play the stereo call audio with effects and tool calls overlaid. (Needs internet; opens in a new tab if the embed is blocked.)

Results · taubench.com leaderboard, July 2026

Going voice once cost half your text performance — the frontier is catching up

67.3%
best voice overall today — 30.4% at launch
−13 pts
clean → realistic audio (paper ablation)
278
tasks inherited from τ — same evaluator as text

Overall pass@1 (retail/airline/telecom average), realistic audio — taubench.com voice leaderboard, July 2026.

Beyond task success

Interactivity metrics

Task reward says nothing about how it felt to talk to the agent. From the tick logs we score four dimensions of conversational competence:

DimensionWhat it captures
Responsiveness Does the agent answer each user turn — and stop within 2 s when barged-in?
Latency Time from end-of-user-speech to agent speech; time to go quiet after an interruption.
Interruption How often the agent speaks before the user finishes — can exceed 100% per turn.
Selectivity Correctly ignoring “mm-hmm”, coughs, and speech aimed at someone else in the room.
Beyond task success · results

No model wins every dimension

pass@1Latency ↓Responsiveness ↑Interrupt ↓Selectivity ↑
grok-voice-think-fast-1.067.31.29 s96.919.751.5
gpt-realtime-251.21.28 s98.421.010.9
gemini-3.1-flash-live (think-high)43.82.01 s67.318.966.3
grok-voice-fast-1.038.31.15 s83.384.357.5
cascaded pipeline (baseline)31.22.56 s89.064.457.8
gemini-live-2.5-flash25.81.15 s68.520.654.5
GPT: answers everythingMost responsive of the field (98%) — but selectivity 11%: every “mm-hmm” stops it cold. Politeness as a failure mode.
Gemini: holds the floorMost selective (66%) and least interrupting — but least responsive: it sits out a third of turns that deserved an answer.
The trade-off is realNo current system achieves both reliable responsiveness and appropriate restraint — and best-per-dimension is scattered across four different models.

taubench.com leaderboard, averaged over retail / airline / telecom (realistic audio). Aggregated as in the paper: responsiveness = mean(RR, RY) · latency = mean(LR, LY) · selectivity = mean(SBC, SVT, SND). green = best in column · red = worst

Analysis

Where the failures come from

Logical errors
13 · 16
Transcription errors
10 · 16
Hallucination
6 · 6
Timeout
4 · 1
VAD / unresponsive
1 · 4
User-simulator errors
9 · 5
voice-fragile cohort noise-fragile cohort 91 failed simulations, manually annotated
79–90%
of failures attributed to the agent, not the simulator

Authentication is the dominant bottleneck. Agents fail to transcribe names and emails even when the caller spells them letter-by-letter — and that blocks every downstream action.

Analysis · paper ablations

Which ingredient of “realistic” hurts?

On retail, we add each factor to an otherwise clean condition, one at a time:

Retail pass@1GoogleOpenAIxAIAverage
Clean45714855
+ Noise40 −467 −446 −251 −4
+ Accents44 −160 −1130 −1844 −10
+ Turn-taking33 −1157 −1452 +447 −7
Realistic (all)30 −1545 −2639 −1038 −17
Accents hit hardest−10 pp on average, with wild provider variance: xAI loses 18 pp to accents alone, Google is untouched (−1). Accent robustness is a real accessibility gap.
Turn-taking splits the field−11 for Google, −14 for OpenAI — but +4 for xAI. Barge-ins push weaker stacks into goes-silent mode; a fast stack actually benefits from a chattier caller.
Factors compoundAll together: −17 pp on average, −26 for OpenAI. The realism gap isn’t one bug — it’s several independent taxes stacking.

τ-voice paper, Table 4 (Feb 2026) — retail pass@1, each factor added alone over clean. Accents are TTS-induced, so treat absolute numbers as indicative; the per-provider variance is the signal.

Adoption, again

The voice labs are optimizing against it

xAI Grok Voice
xAI — Grok Voice Think Fast 1.0 announced with the τ-voice top spot (418M views)
Google on tau-voice
Google — Gemini 3.1 Flash Live tops τ-voice, announced by DeepMind leadership
OpenAI Build Hour
OpenAI — τ-voice findings presented in the GPT-Realtime-2 Build Hour
Artificial Analysis speech
Artificial Analysis — τ-voice on the Speech-to-Speech leaderboard

Hopefully voice experiences are gonna get better soon!

Also cited in OpenAI’s “Introducing GPT-Live” (July 2026) — the first full-duplex model generation trained with benchmarks like this in the loop.

Next · work in progress

Multilingual: τ-voice for the other 80%

Q1Can we build a representative multilingual user simulator?
Q2Can we measure how agents fail — reliably, and beyond accuracy?

In multilingual, user experience matters: other languages carry nuances — grammatical gender, honorifics, register — that aren’t accounted for today.

What we’re seeing

Language is not translation

Pragmatics, not words Meet Adriana (Cluj, Romania): formal register, dumneavoastră throughout, refuses indirectly — and when the agent drifts into English she gently pushes back: “putem continua în română?” An agent that translates but doesn’t operate in the language fails her call.
Code-switching is a spectrum Hinglish callers mix 0–30% English mid-sentence. We built a density ladder to find where each model breaks — comprehension degrades long before generation does.
Honorifics are load-bearing Korean speech levels, Japanese keigo, T–V distinctions: get them wrong and the call feels broken even when the task succeeds. Task reward alone can’t see this — nativeness scoring can.
Cross-lingual knowledge The knowledge base stays English; the caller doesn’t. Reading English policy and answering natively is its own capability — we ablate it directly (KB-on/KB-off).
Within-family probes Egyptian ↔ Levantine Arabic, Hindi ↔ Bengali, Mandarin ↔ Cantonese: is a provider’s gap family-wide or language-specific? Early answer: it varies by provider — coverage maps are uneven.
Diglossia is the default Arabic callers don’t speak the written language: the KB is Modern Standard Arabic, the caller is Egyptian or Levantine. Reading fuṣḥā and speaking dialect — bridged mid-call — is the job.
Stepping back

Thoughts on benchmarking

What to benchmark

Distill production problems. LLMs will draft the tasks, worlds, even judges — the scarce input is taste: what’s worth measuring. Every τ axis is a production failure mode, distilled. And a benchmark is a steering wheel: we aim the labs at problems we know are tractable.

“In this new era, evaluation becomes more important than training.”
Shunyu Yao — τ-bench’s first author — The Second Half, 2025: the second half of AI shifts from solving problems to defining them.
“Effort shifts from building systems to evaluating systems.”
Arvind Narayanan — What will be left for us to work on?, ICML 2026 keynote — days ago.
How to benchmark

Reliability is half of quality. τ²’s accidental lesson: don’t prompt for a reliable simulator, provide a world. Grounding the user in real state cut critical simulator errors ~13% → 6% — realism made the measurement cleaner.

Verifiability is the other half. The core reward is a database diff — no judge can argue with it. Rubric rewards (delivery, intonation, nativeness) now see what state diffs can’t — but every rubric point is a point you can’t verify. How do you walk this tradeoff?

Yao, “The Second Half” (ysymyth.github.io, Apr 2025) · Narayanan, ICML 2026 keynote (Jul 13, 2026 — AI Snake Oil / normaltech.ai).

Takeaways

If you remember four things

Ground the rewardThe reward should be as grounded as possible — deterministic is best; it carried τ across four benchmarks. But LLM judges are maturing, and that opens the door to many new possibilities.
Choosing the problem is as important as choosing the solutionWe’ve found production issues to be a good source to draw from.
Quality & verifiability are paramountThat’s what drove τ²’s adoption. You only trust the metrics as much as you trust the system.
Voice is not text + TTSFull-duplex timing, accents, and noise cost frontier agents a large share of their text performance.
Takeaways
τ → τ² → τ³ → …

One grounded, deterministic task substrate — with realism added one axis at a time: dual control, then knowledge, then full-duplex voice, next language. Each axis found a capability cliff the previous one couldn’t see.

taubench.com
leaderboards, trajectories, audio
github.com/sierra-research/tau2-bench
open source
we’re hiring!
sohamray19 @ gmail
thank you — questions?
Backup

Appendix

Appendix · the τ-bench metric

pass@k asks “can it?” — pass^k asks “will it always?”

pass@k · capability

At least one of k trials succeeds. The number everyone reports — it only goes up with k.

A customer gets one call — and the org gets a million of them. Production runs on pass^k.

0 25 50 75 100 k=1 3 5 7 8 pass@k · 85% 62% at k=1 pass^k · 25% same agent, harsher question

GPT-4o on τ-retail, from the τ-bench paper: it “solves” 62% of tasks — but repeats only a quarter of them reliably 8 for 8. c = successful trials, n = total trials.

Appendix · related work

How the field evaluates conversational agents

Two parallel threads: task-grounded evaluation and conversational-dynamics evaluation. The Full-Duplex-Bench line traces the second:

Full-Duplex-Bench · v1–1.5Turn-taking probes. Pause handling, backchanneling, smooth handoffs, user interruptions — pre-recorded audio, one round, offline scoring. v1.5 adds overlapping speech.
Full-Duplex-Bench · v2Goes real-time. A WebRTC orchestrator and an automated AI examiner drive live multi-turn exchanges — dynamics measured in the wild, but still no task to complete.
Full-Duplex-Bench · v3Adds tool use. Full-duplex agents calling tools under real-world disfluency — converging on our thesis from the dynamics side.
Talking Turns & co.Judged dynamics. Turn-taking judged against human conversational norms; VoiceBench / VocalBench probe speech understanding — no state, no tools.

The two threads don’t meet: dynamics benchmarks have no verifiable task, task benchmarks have no live audio. τ-voice is built to sit at that intersection.

Appendix · the evaluation landscape

No benchmark measures all three

task
completion
full-
duplex
realistic
audio env.
task-oriented dialogue · text
τ-bench
τ²-bench
conversational dynamics
Full-Duplex-Bench
Full-Duplex-Bench-V2
Talking Turns
speech understanding
VoiceBench
VocalBench
Audio MultiChallenge
VoiceAgentBench
τ-voice

Task completion — correct API calls with verifiable database state changes.

Full-duplex — simultaneous bidirectional speech, turn-taking, interruptions.

Realistic audio environment — accents, background noise, channel degradation, disfluencies.

Prior work advances individual dimensions; τ-voice requires all three at once — with native tool calling inside the speech pipeline as the gating capability.

Table 1, τ-voice (arXiv 2603.13686) · ∼ = partial coverage.

Appendix · the user simulator

Turn-taking is a controlled policy

A separate LLM policy runs on the user side during agent speech, deciding what a real caller would do with their voice right now:

Barge-inThe caller cuts in mid-sentence when the agent rambles or gets it wrong — the agent’s audio is truncated at the interruption point.
YieldingWhen both sides speak at once, configurable overlap thresholds decide who backs off — on either side of the line.
Backchannels“mm-hmm” · “okay” · “right” — overlap without taking the turn. Density is a per-persona knob.
Follow-upsIf the agent pauses too long, the caller speaks up: “hello? you still there?” — dead air gets probed, not tolerated.
Hang-upsKept on hold past the persona’s patience, the caller drops the call — and the task scores as a failure.

The turn-taking policy is evaluated every 2 s during agent speech; interrupt tendency, patience, and backchannel density are per-persona parameters.

Appendix · progress

The frontier is moving — fast

Realistic-audio pass@1 (avg. of retail/airline/telecom), taubench.com leaderboard. Frontier: 30% (gpt-realtime-1.0, Aug ’25) → 67% (grok-voice-think-fast, Apr ’26) — a +29 pt jump in ~2 months; voice now retains ~79% of text capability, up from ~45%.

Appendix · simulator realism

Human raters find the simulated caller realistic

Two annotators independently rated 60 simulations — stratified across domains and speech-complexity conditions — on a 1–4 scale, where 4 = indistinguishable from a real caller.

Overall: 3.1 / 483% of all individual ratings at 3 or above, across six dimensions.
Raters agree: 94%Within-1 inter-rater agreement across (simulation, dimension) pairs.
Known weak spotVoice prosody scores lowest (2.6/4) — consistent with our choice not to evaluate speech generation quality.
DimensionMean rating
Backchannel naturalness3.5 / 4
Audio environment realism3.3 / 4
Turn-taking naturalness3.1 / 4
Behavioral plausibility (holistic)3.1 / 4
Interruption behavior3.0 / 4
Voice prosody2.6 / 4

Not a substitute for a study with real human callers (future work) — it checks that the dimensions that most affect task completion (turn-taking, interruptions, backchannels, plausibility) are acceptably realistic.

Appendix · statistical reliability

The voice–text gap survives significance testing

2 independent runs per condition (airline n=50, retail & telecom n=114 each); paired permutation tests on per-task success — paired by task ID, 100k permutations, Holm-Bonferroni corrected.

Comparison · pooled across domainsΔ pass@1 range*p (adj)
GPT-5 text → Clean voice−33 to −55 ppall < 0.001
GPT-5 text → Realistic voice−49 to −61 ppall < 0.001
GPT-4.1 text → Realistic voice−20 to −32 ppall < 0.001
Clean → Realistic−6 to −16 ppall ≤ 0.002
The honest caveatPer-domain, Clean → Realistic holds for all models in retail but reaches significance only for grok-voice in airline & telecom — and grok-voice’s telecom Clean rate (57.5%) actually beats the GPT-4.1 text baseline (+20.6 pp, p < 0.001).

*Range across the three voice models (gemini-live-2.5, gpt-realtime-1.5, grok-voice); rates pooled over both runs.

Appendix · error analysis

Failures are agent errors, not simulator artifacts

The studyTwo raters independently annotated all 91 failed simulations in the Voice-Fragile and Noise-Fragile cohorts — 84% initial agreement, disagreements resolved to 100%.
Agent, not simulator79% of Voice-Fragile and 90% of Noise-Fragile failures are attributed to the agent — the benchmark measures agent limits, not artifacts.
Commonsense, not policy94.8% (73/77) of agent failures need only domain-agnostic skills — spelling (35%) and grounding (31%) dominate; just 5% require domain policy knowledge.
What that impliesThe voice–text gap is a general capability shortfall — closing it takes better conversational primitives, not bigger policy prompts.

First critical error per simulation, typed as: logical, transcription, hallucination, VAD/unresponsive, timeout, or early termination.

Appendix · limitations

Limitations & future work

Limitations
Transcript injectionThe user sim reads the agent’s native transcript, bypassing ASR. Agent speech was intelligible in 100% of 91 annotated failures, and an ASR-enabled mode (Deepgram Nova-3) shows both gaps persist — but default scores are an upper bound.
Generation isn’t evaluatedWe score task completion & conversational dynamics — not the agent’s speech quality (tone, naturalness), user satisfaction, or partial success.
Needs pausable timeTicks require the model to step with simulated time — a voice model that only runs in wall-clock real time can’t be evaluated on τ-voice as-is.
English-only, TTS voicesAccent findings via TTS personas are indicative, not definitive; the simulator is more patient than real callers.
Future work
Richer baselinesCascaded ASR→LLM→TTS pipelines to isolate modality from architecture; open-source full-duplex models as they gain tool calling.
What we’d score nextAgent speech generation quality, tool-call latency, and non-English evaluation.
Humans in the loopHuman user studies to validate simulator dynamics; accessibility-focused accent evaluation.