SAI
← All ICML 2026 orals

τ2\tau^2-Bench: Evaluating Conversational Agents in a Dual-Control Environment

Victor Barres, Honghua Dong, Soham Ray, Xujie Si, Karthik R Narasimhan

OralFull reproduction not startedPaper PDFCode repoOpenReview

τ2\tau^2-Bench: Evaluating Conversational Agents in a Dual-Control Environment

SAI paper + code review · Referee report

Summary

τ2\tau_2-Bench extends the τ\tau-bench paradigm from single-control (agent-only tool use) to dual-control conversational evaluation, formalised as a turn-based Dec-POMDP in which both a customer-service agent and an LLM-simulated user hold distinct tool inventories that mutate a shared world. The concrete instantiation is a new Telecom troubleshooting domain (114 subsampled tasks drawn from 2,285 combinatorially generated candidates over 15 atomic subtask groups) plus refreshed retail/airline domains reused as single-control baselines. The conceptual move is to give the user simulator programmatic affordances rather than long natural-language stipulations, on the theory that constraining the simulator through tools and observable state is more reliable than prompt engineering. The paper backs this with a diagnostic ablation — Default (dual-control) vs. No-User (agent operates all tools with a summarising ticket) vs. Oracle Plan (agent gets the full solution sequence) — and reports a headline drop of 18–25 pass^1 percentage points from No-User to Default across gpt-4.1 and o4-mini, from which coordination/communication is framed as a critical bottleneck distinct from pure reasoning.

The framing is timely: conversational agent benchmarks have converged on scenarios in which the simulated human is a passive information source, and technical-support tasks are a natural counterexample where the user must physically act. The domain-creation pipeline (PRD → schemas → tools → root-cause factorisation → assertion oracles) is genuinely reusable, and the persona and issue-type breakdowns show that difficulty is being controlled deliberately. Where the paper is weakest is in disentangling what its central ablation actually measures. The No-User condition removes the user simulator but simultaneously provides the agent with a written ticket and direct access to user tools, so the ~20 pp gap conflates 'coordination overhead' with 'having a pre-digested problem statement.' The reliability claim about the user simulator is likewise cross-domain (telecom vs. retail) rather than a within-domain comparison of the tool-coupled and prompt-only designs. The empirical footprint (4 frontier proprietary models, 4 trials at T=0, no confidence intervals) is thin for the size of the claims. Repro-wise, headline pass^k, per-mode and per-intent breakdowns replicate cleanly from the shipped results; Table 3 (user-simulator errors), by contrast, cannot be reproduced end-to-end because the annotated labels are not released.

Strengths

  • Conceptual contribution. The dual-control formulation captures a real gap in existing τ\tau-bench-style benchmarks, and grounding user behaviour in a tool schema (rather than a free-form prompt) is a clean, transferable idea that other benchmarks can borrow.
  • Composable, verifiable task generation. The root-cause factorisation (Appendix B.3) that ties atomic subtasks to independent parameter groups is a principled way to scale complexity while retaining an assertion oracle, and it produces a tunable difficulty axis in the number of active root causes.
  • Well-designed diagnostic ablation shape. Introducing No-User and Oracle-Plan modes alongside Default is exactly the right decomposition in principle; it lets the reader separate reasoning-load effects (Oracle-Plan vs. Default) from control-locus effects (No-User vs. Default), even where the current instantiation muddies the second axis.
  • Reproducible pass^k results. Every headline scalar the paper claims from Figures 3, 4, 6, 7 reproduces from the shipped 4-trial JSONs to within 0.005 — for example gpt-4.1 telecom pass^1 recomputes to 0.342 (paper 0.34), o4-mini oracle-plan to 0.963 (paper 0.96), and averaged issue-type pass^k rows reproduce exactly. The plotting code (src/experiments/hyperparam/analyze_results.py) is present alongside the pre-rendered PDFs.
  • Well-controlled telecom domain artefacts. Table 4 (task counts by intent × #subtasks) and Table 5 (action-count statistics per intent) recompute exactly from the shipped tasks.json and split_tasks.json['base'] — a strong signal that the underlying task set is stable and inspectable.
  • Honest self-flagging. The persona result ('None' underperforming Easy) is explicitly labelled as surprising rather than smoothed over, and the paper openly acknowledges the expert–novice modelling gap as future work.

Weaknesses

  • The No-User ablation entangles multiple variables. No-User differs from Default in at least three ways — no user simulator, a written ticket summarising the problem, and direct access to user tools — so the 18–25 pp drop upper-bounds but does not identify the cost of communication/coordination. The paper's stated conclusion that 'communication and decentralised control' is 'a critical bottleneck' is not distinguishable from 'not being handed a summary of the problem.'
  • Cross-domain simulator comparison is not a controlled test of the mechanism. The 16% telecom vs. 40% retail vs. 47% airline simulator error rates are compared across three different task types with three different user-instruction schemas, not the same domain with and without tool-equipping the simulator. The mechanism argued for (tool-based constraint) is confounded with domain complexity and instruction format.
  • Statistical footprint is thin. Four trials per task at T=0, no confidence intervals on pass^k, and Figure 5 tail bins (10+ actions) with single-digit task counts make it hard to judge which qualitative comparisons (e.g., 'claude-3.7-sonnet on mobile_data_issue exceeds o4-mini', or the o4-mini vs gpt-4.1 tail-end reversal) are signal versus noise.
  • Same LLM used for agent and user simulator. Using gpt-4.1 to simulate the user while gpt-4.1 is also an evaluated agent creates capability entanglement in the gpt-4.1 row and makes cross-model comparisons harder to interpret. A simulator-identity sensitivity analysis is absent.
  • Empirical scope. Only four frontier proprietary models across two vendors are evaluated. There is no open-weight baseline, no smaller-model baseline, and no comparison across capability tiers that would situate the observed dual-control drop on a scaling curve.
  • Formal Dec-POMDP definition is inconsistent with the implementation. The transition function is defined over joint actions and joint observations, but the surrounding prose and Appendix A explicitly enforce a turn-based single-actor dynamics. A reader who reuses the formalism verbatim will build a simultaneous-move system that does not match the released code.
  • Overclaimed language. 'Complete domain coverage' and 'correctness by design' are stronger than the pipeline actually shows: coverage is complete relative only to the authored primitive set, and Table 3's residual 16% simulator error rate demonstrates that generated tasks still surface specification-driven failures.
  • Persona result asserted without mechanism. 'None' persona underperforming 'Easy' is flagged as 'interestingly' but not explained; because persona is only one of two axes in the Figure 6 story, a hypothesis or a check (variance, premature-termination rate) is needed.
  • Small human-annotation base for a first-class claim. Telecom user-simulator conclusions rest on 8 annotated errors from 50 conversations, with no inter-annotator agreement statistic reported. '100% premature termination' cannot support qualitative comparisons against retail/airline error mixes at that sample size.
  • Ambiguous magnitude phrasing. 'Around 20% pass^1' is ambiguous between 20 percentage points and a 20% relative reduction; the two readings imply very different effect sizes given the 34–49% base rates.
  • Internal policy inconsistencies. The telecom policy enumerates only three SIM-status values while the tools return 'invalid'; a five-vs-six count mismatch on bill statuses; retail order statuses ('return requested', 'exchange requested', 'pending (items modifed)') absent from the primary enumeration; conflicting 'slow' vs. VPN-trigger thresholds; and Table 3's caption contradicting its own critical-error column.
  • Text-vs-list disagreements in the error analysis. Both the retail (F.1) and airline (F.2) summaries say 'three' failure modes and then list four (with counts summing to the stated total, confirming the four are the intended categories).

Reproducibility & code

  • Headline aggregates. The shipped data/tau2/results/final/*_4trials.json files reproduce every claimed pass^k and per-mode scalar for gpt-4.1, o4-mini, gpt-4.1-mini, and claude-3.7-sonnet to within 0.005 on telecom (default / no-user / oracle-plan under both the original and workflow policies) and for retail/airline default runs. The corresponding analysis (src/experiments/hyperparam/analyze_results.py) and pre-rendered PDFs are present.
  • Task-level artefacts. tasks.json and split_tasks.json['base'] reproduce Tables 4 and 5 exactly (per-intent counts 29/36/49, per-intent action-count means 2.31/4.31/6.00), which is a strong signal that the task set the paper analyses is the one the community will actually run.
  • Subsampling protocol is undocumented. The paper subsamples 114 tasks from 2,285 candidates but does not specify the sampling algorithm or seed. In practice the shipped split_tasks.json fixes the choice, but a re-runner cannot regenerate an equivalent balanced sample without inspecting that file.
  • Table 1 has drifted from the released repo. Retail shows 7 READ tools in the current tools.py (paper: 6), telecom shows 6 READ tools (paper: 7), and the retail split_tasks.json['base'] contains 114 tasks (paper: 115). Small discrepancies, but visible to any reader who counts from the code.
  • Table 3 (user-simulator error rates) is not reproducible end-to-end. The specific 100 airline / 50 retail / 50 telecom conversation subsample is not identified in the repo, and — more importantly — the two-annotator human labels underlying 47%/40%/16% and the critical/benign split are not released. An LLM-judge scaffold (review_llm_judge_user_only.py) is shipped, but that is a stand-in for human annotation, not the annotation itself.
  • Cost figures are ballpark-reproducible only. Per-simulation agent_cost and user_cost are shipped; averaging them lands near but not on the paper's $0.086 / $0.059 / $40 figures, because the averaging protocol and API pricing snapshot are not documented.

Recommended Changes

Essential

  • Add a fourth ablation that isolates coordination from ticketing. Run either (i) a Default-mode agent that additionally receives the summarising ticket, or (ii) a No-User agent that must discover the problem via diagnostic reads without a ticket, so the 18–25 pp gap can be split into 'need to talk to a user' vs. 'need to reason from raw state.' Without this, the paper's central conclusion — 'communication and coordination are a critical bottleneck over pure reasoning' — is not identified. (Ties to Weaknesses #1.)
  • Run a within-domain, controlled user-simulator comparison. Re-run retail (or airline) with a tool-equipped user simulator and compare against the shipped prompt-only version on the same tasks, to substitute a mechanism-isolating comparison for the current cross-domain 16% vs. 40% comparison. (Ties to Weaknesses #2.)
  • Release the Table 3 annotations. Ship the specific 100/50/50 conversation subsample and the two-annotator per-conversation labels (or the per-error-category counts per conversation), and report inter-annotator agreement (Cohen's κ\kappa or raw agreement). This is the only route by which the user-simulator-reliability claim becomes independently verifiable. (Ties to Reproducibility & code, Weaknesses #9.)
  • Report uncertainty on pass^k. Add confidence intervals (bootstrap or Wilson) on the bar charts in Figures 3–8, especially for the tail bins of Figure 5 (10+ actions) and any 'X on par with Y' or 'X better than Y' qualitative comparisons in the results text. (Ties to Weaknesses #3.)
  • Clarify "20% pass^1" as "20 percentage points". In the abstract, introduction, ablation section, and conclusion, replace every occurrence of 'around 20% pass^1 drop' with an explicit 'percentage-point' phrasing. (Ties to Weaknesses #10.)
  • Document the task-subsampling procedure and seed. In Section 3.2 or Appendix B, state the sampling algorithm used to reduce 2,285 → 114 tasks and, if seeded, give the seed; reference split_tasks.json as the frozen artefact. (Ties to Reproducibility & code #3.)

Suggested

  • Fix the Dec-POMDP definition to match the implementation. Rewrite the transition function T as taking a single actor-action pair (or explicitly introduce a no-op so the joint formalism is honest), and align the observation output with the turn-based dynamics stated in prose. (Ties to Weaknesses #6.)
  • Add at least one open-weight model to the evaluation. Include, e.g., a Llama-3.1-70B-Instruct or Qwen-2.5-72B-Instruct row so the dual-control result is not restricted to two proprietary vendors. (Ties to Weaknesses #5.)
  • Add a user-simulator sensitivity check. Report at least one row with a non-gpt-4.1 user simulator (e.g., claude-3.7-sonnet or a smaller open model) to gauge how much the headline pass^k values move when the simulator identity changes. (Ties to Weaknesses #4.)
  • Soften "complete domain coverage" and "correctness by design". Replace with 'complete over the authored primitive set' and 'programmatic verification of task well-formedness' respectively. (Ties to Weaknesses #7.)
  • Offer a hypothesis and a check for the None-underperforms-Easy result. Either propose a mechanism (e.g., variance in unconditioned simulator behaviour) and check it against the trajectories, or explicitly leave it as an open question. (Ties to Weaknesses #8.)
  • Reconcile Table 1 tool/task counts with the released repo state. Update Table 1 to match the shipped tools.py and split_tasks.json, or pin the paper to a specific commit and note that later refactors have drifted from the reported counts. (Ties to Reproducibility & code #4.)
  • Fix the internal policy inconsistencies noted in the review. Add 'invalid' to the SIM-status enumeration (or map it explicitly to Missing); correct the five-vs-six bill-status count; expand the retail order-status enumeration to include 'return requested', 'exchange requested', 'pending (items modifed)'; reconcile the 'below Excellent = slow' rule with the VPN-only-if-Poor trigger; and either fix Table 3's caption or its critical-error column. (Ties to Weaknesses #11.)
  • Correct the F.1 and F.2 category counts. Both should say 'four' failure modes rather than 'three'. (Ties to Weaknesses #12.)
  • Align Figure 5's caption with its body text. Change 'number of different issues that need to be addressed' to 'number of sub-tasks that need to be addressed' to remove the collision with the 'issue = intent' vocabulary used in Figures 6–7.
  • Document the exact cost-averaging protocol. In Section 4.1, state which experiments contribute to the $0.086 / $0.059 / $40 figures and the API pricing snapshot used. (Ties to Reproducibility & code #6.)