One Success Isn't Reliability: Thinkingbox, a Sandbox and Benchmark for Agents in Stateful Business Workflows

arXiv cs.CL Papers

Summary

Thinkingbox introduces a sandbox and benchmark for evaluating AI agents in stateful business workflows, highlighting the gap between occasional success and reliable completion with current models.

arXiv:2608.19741v1 Announce Type: new Abstract: Recent agent benchmarks increasingly ground evaluation in executable environments, from code repair to web navigation, app APIs, and function calling. Yet completing consequential work beyond code requires more than producing a plausible response or valid tool call: agents must gather missing information over multiple turns, follow domain policies, coordinate dependent tools, and realize the correct persistent state transition without collateral effects. In this paper, we introduce Thinkingbox, a sandbox for tool-agent-user interaction that provides isolated MCP-compatible tool sessions, complete execution traces, and outcome evaluation over terminal backend state. Built on this sandbox, Thinkingbox-bench contains 507 policy-conditioned workflows across numerous scenarios, including retail, hospitality, auto insurance, neobank internal IT, and consulting IT/HR support. Each attempt is evaluated by task-specific executable checks that accept valid trajectories while rejecting wrong, missing, or extra effects; designated tasks additionally check required properties of the final response. Across proprietary and open-weight models, the strongest achieves 65.36% pass@1, but only 25.25% pass^20. Moreover, many failed trials show clean termination and valid state-changing actions, showing that response or tool-call-level signals are not clear proxies for end-to-end task completion. Thinkingbox-bench reveals a large gap between occasionally finding a successful trajectory and reliably completing stateful business tasks. We release both Thinkingbox and Thinkingbox-Bench: https://github.com/microsoft/thinkingbox
Original Article
View Cached Full Text

Cached at: 08/21/26, 10:09 AM

# Thinkingbox, a Sandbox and Benchmark for Agents in Stateful Business Workflows
Source: [https://arxiv.org/html/2608.19741](https://arxiv.org/html/2608.19741)
## One Success Isn’t Reliability: Thinkingbox, a Sandbox and Benchmark for Agents in Stateful Business Workflows

Youngmin KoAli KeramatiNicola FerriSusana Palmaz Lopez PelaezLiang\-Chun TsaiCalvin WangMirco MilletariTuhin KunduVadim SmolyakovKjartan ÓlafssonTommy Guy\[1\.0ex\] University of Pittsburgh Northwestern University University of CaliforniaIrvine Microsoft

###### Abstract

Recent agent benchmarks increasingly ground evaluation in executable environments, from code repair to web navigation, app APIs, and function calling\. Yet completing consequential work beyond code requires more than producing a plausible response or valid tool call: agents must gather missing information over multiple turns, follow domain policies, coordinate dependent tools, and realize the correct persistent state transition without collateral effects\. In this paper, we introduceThinkingbox, a sandbox for tool\-agent\-user interaction that provides isolated MCP\-compatible tool sessions, complete execution traces, and outcome evaluation over terminal backend state\. Built on this sandbox,Thinkingbox\-benchcontains 507 policy\-conditioned workflows across numerous scenarios, including retail, hospitality, auto insurance, neobank internal IT, and consulting IT/HR support\. Each attempt is evaluated by task\-specific executable checks that accept valid trajectories while rejecting wrong, missing, or extra effects; designated tasks additionally check required properties of the final response\. Across proprietary and open\-weight models, the strongest achieves 65\.36% pass@1, but only 25\.25%pass^​20\.\\text\{pass\\textasciicircum\}\\mkern 1\.0mu20\.Moreover, many failed trials show clean termination and valid state\-changing actions, showing that response or tool\-call\-level signals are not clear proxies for end\-to\-end task completion\.Thinkingbox\-benchreveals a large gap between occasionally finding a successful trajectory and reliably completing stateful business tasks\. We release bothThinkingboxandThinkingbox\-Bench:[https://github\.com/microsoft/thinkingbox](https://github.com/microsoft/thinkingbox)

††footnotetext:† Equal contribution; Work completed during a Microsoft internship\.## 1Introduction

LLM agents are increasingly evaluated where success can be checked by an executable artifact: patches can be tested against codebases\([9](https://arxiv.org/html/2608.19741#bib.bib1)\), function calls can be parsed or executed\([23](https://arxiv.org/html/2608.19741#bib.bib8);[25](https://arxiv.org/html/2608.19741#bib.bib9)\), and agents can be scored in interactive environments\([15](https://arxiv.org/html/2608.19741#bib.bib2);[40](https://arxiv.org/html/2608.19741#bib.bib6)\)\. This progress is essential, but benchmark design naturally favors tasks whose outcomes are easy to specify and execute\. In practice, agents must also complete work that is neither code nor merely a tool\-call trace: changing a booking, processing a refund, updating an insurance claim, or routing an internal service request\. Such tasks are multi\-turn, stateful, and consequence\-bearing, requiring agents to coordinate user interaction, tool use, policy constraints, and backend side effects\.

Evaluating such work requires both a benchmark and an interaction substrate that can instantiate a world, expose domain tools, simulate user follow\-up, extract side effects, and run outcome checks\. Existing benchmarks cover policy\-guided user interaction and final database states\([40](https://arxiv.org/html/2608.19741#bib.bib6)\), stateful conversational tools\([16](https://arxiv.org/html/2608.19741#bib.bib32)\), app worlds with collateral\-change checks\([30](https://arxiv.org/html/2608.19741#bib.bib5)\), and real/stateful MCP environments\([2](https://arxiv.org/html/2608.19741#bib.bib7);[33](https://arxiv.org/html/2608.19741#bib.bib35)\)\. Thinkingbox provides a complementary abstraction: a reusable sandbox for tool\-agent\-user interaction in stateful task worlds, where the same loop supports inference, leaderboard evaluation, and failure analysis\.

![Refer to caption](https://arxiv.org/html/2608.19741v1/plots/paper_overview.png)Figure 1:ThinkingBoxoverview and discovery–reliability gap\. \(A\) ThinkingBox runs multi\-turn interactions among a simulated user, an LLM agent, and isolated MCP\-compatible tools, then evaluates terminal state, side effects, and dialogue with executable judges\. More detailed pipeline can be found in Figure[2](https://arxiv.org/html/2608.19741#S3.F2)\(B\) Across 507 tasks and 20 attempts per task, pass@20 is much higher than pass@1, while all\-20 success is far lower, showing that successful trajectories are often discoverable but not reliably repeatable\. Full results can be found in Table[4](https://arxiv.org/html/2608.19741#S5.T4)We introduceThinkingbox, a sandbox for these interactions\. Thinkingbox runs an agent in conversation with a simulated user, exposes domain tools through isolated backend sessions, retrieves side effects, and runs task\-specific outcome checks\. We further introduceThinkingbox\-bench, a benchmark built on the sandbox comprising a 507\-task test set of stateful business workflows\. Every task is checked against its required terminal backend state\. In addition, 30 tasks apply one or more binary rubrics to the final response, covering required disclosures, confidentiality, and consistency with the executed outcomes\. These outcome\-based checks allow different valid trajectories while rejecting wrong, missing, or extra persistent effects\. This makes practical non\-code work verifiable without reducing it to a single final answer\.

Thinkingbox\-bench spans five domains: retail/e\-commerce, travel and hospitality, auto insurance, neobank internal IT support, and consulting IT/HR support\. These domains stress recurring enterprise\-assistance patterns: multi\-step transactions, policy\-conditioned updates, user clarification, record lookup, and irreversible or high\-impact side effects\. Following recent reliability\-oriented agent evaluation\([40](https://arxiv.org/html/2608.19741#bib.bib6)\), we report pass@1 and use complementary pass@k andpass^​k\\text\{pass\\textasciicircum\}\\mkern 1\.0mukanalyses to distinguish dependable repetition from success discovered through retries\. The leaderboard results \(Figure[1](https://arxiv.org/html/2608.19741#S1.F1)and Table[4](https://arxiv.org/html/2608.19741#S5.T4)\) show substantial headroom: the strongest model reaches 65\.36% pass@1 and succeeds at least once on 91\.12% of tasks, yet succeeds in all 20 attempts on only 25\.25%\.

Our contributions are the following:

- •We proposeThinkingbox, a reusable sandbox and orchestrator for tool\-agent\-user interaction over stateful tool environments\.
- •We buildThinkingbox\-benchon top of the sandbox, which includes a 507\-task benchmark across five business domains\. Each task is graded by multiple executable checks over final state, side effects, and dialogue rather than a single final answer\.
- •We evaluate 12 proprietary and open\-weight LLMs with 20 repeated trials per task, exposing a large discovery–reliability gap \(pass@20 vs\.pass^​20\\text\{pass\\textasciicircum\}\\mkern 1\.0mu20\), and analyze the failure modes and evaluator ablations separating fluent tool use from reliable work completion\.

## 2Related Work

Thinkingbox lies at the intersection of reusable agent environments and executable benchmarks for conversational tool use and professional work\.

#### Sandboxes and conversational tool use\.

TextWorld, ALFWorld, and WebShop provide interactive worlds for training and evaluating language agents\([5](https://arxiv.org/html/2608.19741#bib.bib10);[29](https://arxiv.org/html/2608.19741#bib.bib11);[39](https://arxiv.org/html/2608.19741#bib.bib12)\); AgentGym unifies interaction across heterogeneous environments\([35](https://arxiv.org/html/2608.19741#bib.bib38)\); and Agent World Model generates executable, database\-backed MCP environments for agent training\([31](https://arxiv.org/html/2608.19741#bib.bib39)\)\. Complementary work studies modular tool use and reasoning–action interfaces\([10](https://arxiv.org/html/2608.19741#bib.bib14);[41](https://arxiv.org/html/2608.19741#bib.bib15);[28](https://arxiv.org/html/2608.19741#bib.bib16)\), while API\-Bank, Gorilla, ToolBench, and BFCL emphasize tool selection, arguments, and call execution\([14](https://arxiv.org/html/2608.19741#bib.bib17);[24](https://arxiv.org/html/2608.19741#bib.bib18);[25](https://arxiv.org/html/2608.19741#bib.bib9);[23](https://arxiv.org/html/2608.19741#bib.bib8)\)\. Closer to our setting, ToolSandbox combines stateful tools with an on\-policy user simulator\([16](https://arxiv.org/html/2608.19741#bib.bib32)\);τ\\tau\-bench evaluates policy\-guided conversations through terminal database states and repeated reliability\([40](https://arxiv.org/html/2608.19741#bib.bib6)\); andτ2\\tau^\{2\}\-bench lets both user and agent act in a shared world\([3](https://arxiv.org/html/2608.19741#bib.bib19)\)\. Thinkingbox builds on these foundations with a common runtime for manually reviewed workflows across five business domains, checking persistent effects with task\-specific evaluators and measuring reliability across repeated attempts\.

#### Executable and professional\-work benchmarks\.

Executable evaluation spans code repair\([9](https://arxiv.org/html/2608.19741#bib.bib1)\), broad interactive settings\([15](https://arxiv.org/html/2608.19741#bib.bib2)\), web and desktop control\([43](https://arxiv.org/html/2608.19741#bib.bib3);[12](https://arxiv.org/html/2608.19741#bib.bib13);[36](https://arxiv.org/html/2608.19741#bib.bib4)\), and app APIs\. AppWorld’s state\-based tests notably admit alternative solutions while detecting collateral changes\([30](https://arxiv.org/html/2608.19741#bib.bib5)\)\. WorkArena\+\+ targets enterprise software workflows\([4](https://arxiv.org/html/2608.19741#bib.bib33)\); CRMArena and CRMArena\-Pro evaluate CRM tasks, including multi\-turn professional interactions\([7](https://arxiv.org/html/2608.19741#bib.bib34);[8](https://arxiv.org/html/2608.19741#bib.bib40)\); and AgentDojo evaluates task utility and security under untrusted tool outputs\([6](https://arxiv.org/html/2608.19741#bib.bib37)\)\. MCP\-Bench studies live\-server tool discovery and coordination\([32](https://arxiv.org/html/2608.19741#bib.bib36)\), MCPMark pairs CRUD tasks with initial states and programmatic verification\([33](https://arxiv.org/html/2608.19741#bib.bib35)\), and MCP\-Atlas provides large\-scale diagnostics over real servers\([2](https://arxiv.org/html/2608.19741#bib.bib7)\)\. Building on state\-based and MCP evaluation, Thinkingbox combines policy\-conditioned user interaction, resettable business\-tool worlds, outcome and collateral\-effect checks, and repeated\-trial reliability in one sandbox and benchmark\.

## 3Thinkingbox: A Sandbox for Tool\-Agent\-User Interaction

Thinkingbox is motivated by a limitation of many function\-call\-oriented tool\-use evaluations, which primarily assess API selection, argument generation, or executable call correctness\([14](https://arxiv.org/html/2608.19741#bib.bib17);[24](https://arxiv.org/html/2608.19741#bib.bib18);[25](https://arxiv.org/html/2608.19741#bib.bib9);[23](https://arxiv.org/html/2608.19741#bib.bib8)\)\. They can check whether a model produced a syntactically valid or executable call, but not whether the agent completed the work that the call was meant to accomplish\. In stateful business tasks, the observable answer is only one part of success\. An agent may call the right API with the wrong entity, update a record before collecting a required confirmation, produce an acceptable user message while leaving the backend unchanged, or perform an extra side effect that violates policy\. Thinkingbox is designed as the interaction substrate for this setting\. It runs the agent, simulated user, domain tools, side\-effect extractor, and judges inside one reproducible loop, turning practical work into executable agent tasks\.

![Refer to caption](https://arxiv.org/html/2608.19741v1/plots/thinkingbox_structure.png)Figure 2:Overview ofThinkingbox\. The sandbox orchestrates the interaction among a simulated user, LLM agents, isolated domain tools, side\-effect extraction, and executable judges\. The same trajectory\-level verdict supports benchmark evaluation, failure analysis, and agent training\.#### Task world and induced POMDP\.

We specify each task as

x=\(b0,g,𝒯,𝒰,𝒞\),x=\\left\(b\_\{0\},g,\\mathcal\{T\},\\mathcal\{U\},\\mathcal\{C\}\\right\),\(1\)whereb0b\_\{0\}is the initial backend state,ggis the user goal,𝒯\\mathcal\{T\}is the set of available domain tools,𝒰\\mathcal\{U\}is the simulated user policy, and𝒞=\{ci\}i=1m\\mathcal\{C\}=\\\{c\_\{i\}\\\}\_\{i=1\}^\{m\}contains a set of hidden executable checks\. At turntt, the orchestrator provides the agent with the dialogue history and tool observations\. The agent emits either a user\-facing message or a tool action\(τt,pt\)\(\\tau\_\{t\},p\_\{t\}\), whereτt∈𝒯\\tau\_\{t\}\\in\\mathcal\{T\}is a tool andptp\_\{t\}are its arguments\. Tool actions are executed against an isolated session of the task backend\. Figure[2](https://arxiv.org/html/2608.19741#S3.F2)further illustrates the ThinkingBox pipeline\.

Each such specification naturally induces a finite\-horizon Partially Observable Markov Decision Process \(POMDP\)

ℳx=\(𝒮x,𝒜x,𝒪x,Px,Zx,Rx,μx,H\)\.\\mathcal\{M\}\_\{x\}=\\left\(\\mathcal\{S\}\_\{x\},\\mathcal\{A\}\_\{x\},\\mathcal\{O\}\_\{x\},P\_\{x\},Z\_\{x\},R\_\{x\},\\mu\_\{x\},H\\right\)\.\(2\)Here𝒮x\\mathcal\{S\}\_\{x\},𝒜x\\mathcal\{A\}\_\{x\}, and𝒪x\\mathcal\{O\}\_\{x\}are the state, action, and observation spaces;PxP\_\{x\}andZxZ\_\{x\}are the transition and observation kernels;RxR\_\{x\}is the reward function;μx\\mu\_\{x\}is the initial\-state distribution; andHHis the maximum episode horizon\. The latent statest=\(bt,zt,ℓt,qt\)∈𝒮xs\_\{t\}=\(b\_\{t\},z\_\{t\},\\ell\_\{t\},q\_\{t\}\)\\in\\mathcal\{S\}\_\{x\}comprises the backend state, simulated user’s private state, evaluator\-relevant event log, and episode status\. In the current benchmark, reset is deterministic, soμx=δs0\\mu\_\{x\}=\\delta\_\{s\_\{0\}\}is a point mass ats0=\(b0,z0,∅,Active\)s\_\{0\}=\(b\_\{0\},z\_\{0\},\\emptyset,\\textsc\{Active\}\), wherez0z\_\{0\}is initialized fromggunder𝒰\\mathcal\{U\}\. The agent does not observe this state directly\.ot∈𝒪xo\_\{t\}\\in\\mathcal\{O\}\_\{x\}contains the initial request and visible policy context, a user utterance, or a structured tool result or error\. An actionat∈𝒜xa\_\{t\}\\in\\mathcal\{A\}\_\{x\}is a user\-facing message, tool call\(τt,pt\)\(\\tau\_\{t\},p\_\{t\}\), or termination\. Code\-backed tools define backend transitions, while𝒰\\mathcal\{U\}defines potentially stochastic user\-state transitions and replies;PxP\_\{x\}andZxZ\_\{x\}capture these dynamics and the observations they expose\. The policy therefore acts on the observable historyht=\(o0,a0,…,ot\)h\_\{t\}=\(o\_\{0\},a\_\{0\},\\ldots,o\_\{t\}\)rather than the latent state\. The rewardRxR\_\{x\}is sparse and terminal and is defined by the executable verdict in Equation[4](https://arxiv.org/html/2608.19741#S3.E4)\. This decomposition follows executable agent environments that connect persistent state, tools, observations, and verifiers\([40](https://arxiv.org/html/2608.19741#bib.bib6);[16](https://arxiv.org/html/2608.19741#bib.bib32);[3](https://arxiv.org/html/2608.19741#bib.bib19);[31](https://arxiv.org/html/2608.19741#bib.bib39)\)\. Because only the agent directly invokes state\-changing tools in ThinkingBox, the simulated user is part of the environment dynamics; Appendix[C\.4](https://arxiv.org/html/2608.19741#A3.SS4)specifies the simulated user policy, its prompt, and its turn protocol in full\.

#### Orchestration and isolation\.

For each attempt, it resets the task tob0b\_\{0\}, initializes the full states0s\_\{0\}, creates an isolated tool session, forwards messages, executes tool calls, and records the trajectoryρ\\rho\. Two attempts of the same task must not share database rows, cached tool state, or side effects, otherwise pass@k and training rewards become unreliable\. This design follows the same reproducibility pressure that motivates containerized or controllable environments in AgentBench, OSWorld, AppWorld, and MCP\-Atlas\([15](https://arxiv.org/html/2608.19741#bib.bib2);[36](https://arxiv.org/html/2608.19741#bib.bib4);[30](https://arxiv.org/html/2608.19741#bib.bib5);[2](https://arxiv.org/html/2608.19741#bib.bib7)\), while abstracting the runtime around tool\-agent\-user interaction rather than one interface\.

#### Side\-effect\-centered judging\.

Thinkingbox evaluates the outcome of work rather than the surface form of the trajectory\. After the interaction terminates, the sandbox extracts side effects

e=Δx​\(s0,sT,ρ\),e=\\Delta\_\{x\}\(s\_\{0\},s\_\{T\},\\rho\),\(3\)which include the relevant state changes and action records produced by the tool session\. Note thatΔx\\Delta\_\{x\}is task\-dependent\. In particular, the side effects are customizable by users who build the task\. The final verdict is computed by executable checks over the final state, side effects, and dialogue:

V⁡\(x,ρ\)=∏i=1mci​\(sT,e,ρ\),ci​\(sT,e,ρ\)∈\{0,1\}\.V\(x,\\rho\)=\\prod\_\{i=1\}^\{m\}c\_\{i\}\(s\_\{T\},e,\\rho\),\\qquad c\_\{i\}\(s\_\{T\},e,\\rho\)\\in\\\{0,1\\\}\.\(4\)The product denotes conjunctive grading: a task passes only when all required conditions hold\. The induced POMDP assignsRx​\(sT\)=V⁡\(x,ρ\)R\_\{x\}\(s\_\{T\}\)=V\(x,\\rho\)at termination or horizonHHand zero reward at nonterminal states; the event logℓT\\ell\_\{T\}retains the trajectory information needed by the checks\. This is stricter than checking a final answer or a single tool call, and it allows different valid tool\-call paths to receive credit when they produce the same correct world state\. It also lets checks detect collateral effects, such as modifying the wrong user record or applying an unauthorized update, which are central risks in stateful business workflows\.

#### One loop for evaluation and training\.

Because Thinkingbox separates the sandbox from any specific model, the same task world can be used for inference\-time evaluation, debugging, and training\. The verdictVVyields pass@1 and pass@k over repeated attempts and directly supplies an outcome reward for training\. The individual checks can additionally provide a reward vectorri​\(ρ\)=ci​\(bT,e,ρ\)r\_\{i\}\(\\rho\)=c\_\{i\}\(b\_\{T\},e,\\rho\)\. Researchers can therefore replace the agent policy while reusing the same user simulator, tool sessions, side\-effect extraction, and reward definition\.

## 4Thinkingbox\-bench: Verifiable Stateful Agent Tasks

### 4\.1Scope and Scale

Thinkingbox\-bench instantiates the Thinkingbox sandbox into 507 executable tool\-agent\-user tasks acrossfive practical domains: retail/e\-commerce, travel and hospitality, auto insurance, neobank support, and consulting IT/HR support\. These domains are selected because they share recurring patterns in real work: users often provide incomplete information, policies constrain what the agent may do, and success requires updating the correct backend records without creating collateral side effects\. Unlike prompt\-only datasets, each task is a runnable world with domain tools, an initial state, a simulated user, and executable validators\.

Table[1](https://arxiv.org/html/2608.19741#S4.T1)positions Thinkingbox\-bench relative to representative agent and tool\-use benchmarks\. Prior work has made major progress on executable evaluation for code, web, desktop, app, and API settings\([9](https://arxiv.org/html/2608.19741#bib.bib1);[43](https://arxiv.org/html/2608.19741#bib.bib3);[36](https://arxiv.org/html/2608.19741#bib.bib4);[30](https://arxiv.org/html/2608.19741#bib.bib5);[23](https://arxiv.org/html/2608.19741#bib.bib8);[2](https://arxiv.org/html/2608.19741#bib.bib7)\)\. Thinkingbox\-bench complements these efforts by focusing on stateful non\-code business workflows with user dialogue, policy\-conditioned tool use, backend side effects, and a sandbox verdict that can also be used for training\.

Table 1:Comparison with representative agent and tool\-use benchmarks\. Thinkingbox\-bench focuses on stateful business\-domain workflows where the final verdict checks backend state, side effects, and dialogue outcome, while exposing tasks through MCP\-compatible servers\.
### 4\.2Task Schema

Each benchmark instance follows the task\-world formalism in Section 3\. Concretely, a task contains an initial backend states0s\_\{0\}, a user goalgg, domain tools𝒯\\mathcal\{T\}, a simulated user policy𝒰\\mathcal\{U\}, and executable checks𝒞\\mathcal\{C\}\. In implementation, domains are exposed through isolated domain servers with MCP\-compatible tool interfaces\. This makes tool discovery and invocation close to contemporary agent deployments, while still allowing Thinkingbox to control reset, state isolation, trace logging, side\-effect extraction, and judging\.

The schema stores both what the agent should accomplish and what it must avoid\. Besides the user goal and tool descriptions, each task specifies policy constraints, expected state changes, forbidden collateral changes, and dialogue requirements\. The user specificationggis itself split into an opening request and a separate disclosable fact set with per\-task behavioral rules: facts in the latter are available to𝒰\\mathcal\{U\}but are released only when the agent asks for them\. This design is important because practical workflows are often under\-specified by the user’s initial request: the correct behavior may require asking a clarification question, refusing an ineligible request, or confirming an irreversible update before executing a tool\.

Table 2:Key statistics for theThinkingBox\-Benchdomains\.Table 3:RepresentativeThinkingbox\-benchscenario patterns\. Each scenario is instantiated as a concrete task with an initial backend state, available MCP\-compatible tools, and executable checks\.
### 4\.3Benchmark Construction and Quality Assurance

Following recent tool\-agent\-user benchmark design, where interaction components are paired with domain\-specific databases, APIs, policies, and task instances\([40](https://arxiv.org/html/2608.19741#bib.bib6)\), we construct Thinkingbox\-bench with a shared sandbox layer and domain\-specific MCP\-compatible task worlds\. Each domain is created in a three\-stage approach with automatic and human labeling and checking\.

#### Stage 1: Workflow design\.

We first author workflow templates for the five domains by identifying recurring enterprise\-assistant scenarios: order changes and refunds, booking modifications, claim updates, account support, and internal IT/HR requests\. Each template is required to involve a practical user goal, domain tools, policy constraints, and a verifiable outcome\. We intentionally avoid releasing raw user logs or customer transcripts; instead, all benchmark instances are written as self\-contained tasks with synthetic records and domain\-realistic workflow patterns\.

#### Stage 2: Executable task instantiation\.

We instantiate each workflow template into a concrete task world\. For each task, we create an initial backend state, expose MCP\-compatible domain tools, specify the simulated user’s goal and behavior, and attach domain policies that determine which actions are allowed, required, or forbidden\. We then write task\-specific checks over final state, side effects, and dialogue\. The resulting tasks are*stateful*,*policy\-conditioned*, and*side\-effect\-aware*: an agent must leave the backend in the right state, follow domain rules, and avoid unauthorized or wrong\-entity updates\.

#### Stage 3: Executable validation and filtering\.

Finally, we execute each task inside the Thinkingbox sandbox and filter broken or ill\-posed cases\. We remove tasks with broken tools, inconsistent initial states, ambiguous goals, unverifiable outcomes, checks that depend on tool\-call trajectories, or interactions that repeatedly fail to terminate under LLM agents\. Accepted tasks must admit at least one valid completion strategy while preserving a clear correctness criterion\. This process letsThinkingbox\-benchcapture realistic business patterns while maintaining reproducible executable evaluation suitable for leaderboard comparison and reward\-based training\.

## 5Experiments

### 5\.1Experimental Setup

#### Models\.

We evaluate a diverse set of proprietary frontier models and open\-weight agentic models\. The proprietary set includes OpenAI GPT\-5\.2, GPT\-5\.4, and o3\-pro\([22](https://arxiv.org/html/2608.19741#bib.bib20);[21](https://arxiv.org/html/2608.19741#bib.bib21)\), Anthropic Claude Sonnet 4\.6 and Claude Opus 4\.6\([1](https://arxiv.org/html/2608.19741#bib.bib22)\), and Grok\-4\.3\([34](https://arxiv.org/html/2608.19741#bib.bib24)\)\. The open\-weight or openly documented models include DeepSeek\-V4\-Pro\([37](https://arxiv.org/html/2608.19741#bib.bib23)\), GLM\-5\.1\([42](https://arxiv.org/html/2608.19741#bib.bib25)\), Kimi\-K2\.6\([11](https://arxiv.org/html/2608.19741#bib.bib27);[20](https://arxiv.org/html/2608.19741#bib.bib26)\), Mistral\-Large\-3\([19](https://arxiv.org/html/2608.19741#bib.bib28)\), Qwen3\.5\-9B\([26](https://arxiv.org/html/2608.19741#bib.bib30)\), and Qwen3\.6\-27B\([27](https://arxiv.org/html/2608.19741#bib.bib31)\)\.

#### Evaluation Protocol\.

We evaluate the models on theThinkingbox\-bench\. i\.e\. Each model is evaluated in the same Thinkingbox sandbox with the same system prompts, tool definitions, domain policies, simulated\-user behavior, and task\-specific executable checks\. To reduce sampling noise, we run each model on each task forNNindependent trials\. Each trial is a single complete attempt, so a trial\-level success is a pass@1 outcome\. A trial is counted as correct only when all executable checks for the task pass\. For a domainDD, we report the micro\-averaged pass@1 over tasks and repeated trials,

PassRate⁡\(D\)=1N​\|D\|​∑x∈D∑j=1NV⁡\(x,ρx,j\),\\mathrm\{PassRate\}\(D\)=\\frac\{1\}\{N\|D\|\}\\sum\_\{x\\in D\}\\sum\_\{j=1\}^\{N\}V\(x,\\rho\_\{x,j\}\),\(5\)whereV⁡\(x,ρx,j\)∈\{0,1\}V\(x,\\rho\_\{x,j\}\)\\in\\\{0,1\\\}is the executable verdict for trialjjon taskxx\. The overall score is the same micro\-average over the benchmark tasks, so larger domains contribute in proportion to their number of task instances\. For the main results in Table[4](https://arxiv.org/html/2608.19741#S5.T4), we setN=20N=20\.

### 5\.2Benchmark Leaderboard

Table[4](https://arxiv.org/html/2608.19741#S5.T4)reports the currentThinkingbox\-benchleaderboard\. GPT\-5\.4 obtains the highest overall pass@1, while performance varies sharply by domain: external retail and booking are substantially easier than auto insurance and neobank support for several models\. These domain\-level differences motivate the domain\-level and trace\-based analyses in Sections[5\.3](https://arxiv.org/html/2608.19741#S5.SS3)and[5\.4](https://arxiv.org/html/2608.19741#S5.SS4)\.

Table 4:Thinkingbox\-benchpass@1 \(%\) by domain\. Each task is evaluated withN=20N=20repeated trials, and scores are micro\-averaged over trials and tasks\. Size is reported as total/activated parameters for MoE models\. The o3\-pro row excludes 636 system/harness\-error trials; its valid denominators therefore vary by domain\. Task\-cluster bootstrap intervals are reported in Appendix[D\.1](https://arxiv.org/html/2608.19741#A4.SS1)\.
### 5\.3Domain\-Level Analysis

Table[4](https://arxiv.org/html/2608.19741#S5.T4)reveals three consistent patterns\. First, aggregate model ranking hides large domain\-dependent variation\. Averaged across the reported models, retail is the easiest domain, while auto insurance is the hardest: models average roughly 52% pass@1 on retail but only about 23% on auto insurance\. Booking, neobank support, and consulting fall between these extremes, with average pass@1 around 35%, 30%, and 27%, respectively\. This ordering is not simply a property of task count, since all domains have comparable numbers of tasks; rather, it suggests that the benchmark domains differ in the interaction and policy burden they impose on agents\.

Second, stronger models are not uniformly strong across domains\. GPT\-5\.4 and Sonnet 4\.6 are the only models above 50% pass@1 in every domain\. We can observe the drop from 76\.33% on retail to 54\.60% on consulting in GPT\-5\.4, whereas Claude Sonnet 4\.6 is more balanced than several larger or more expensive systems, staying between 51\.14% and 68\.93% across domains\. In contrast, Claude Opus 4\.6 and GPT\-5\.2 show sharp asymmetries: both are competitive on retail, but Claude Opus 4\.6 falls to 14\.65% on auto insurance and GPT\-5\.2 falls to 22\.40%\. These gaps indicate that high general capability or strong performance in one workflow family does not guarantee robust transfer to other stateful tool\-use settings\.

Third, open\-weight performance remains highly uneven\. DeepSeek\-V4\-Pro is the strongest open\-source model in the current table, reaching 43\.26% average pass@1 and approaching GPT\-5\.2 overall\. Kimi\-K2\.6, GLM\-5\.1, and Qwen3\.6\-27B form a second tier, but their domain profiles differ: Kimi\-K2\.6 is strongest on consulting among open\-source models, GLM\-5\.1 is relatively stronger on retail than on bank support, and Qwen3\.6\-27B is strongest on booking while remaining close to GLM\-5\.1 overall \(32\.94% versus 33\.19%\)\. The gap between Qwen3\.6\-27B and Qwen3\.5\-9B is also large, with the 27B model improving average pass@1 from 5\.41% to 32\.94%\. Model size alone does not explain the ranking\. For example, Mistral\-Large\-3 has hundreds of billions of total parameters but performs below much smaller Qwen models on several domains, suggesting that tool\-use formatting, agentic post\-training, reasoning mode, and benchmark\-specific interaction robustness matter at least as much as nominal parameter count\.

Overall, Thinkingbox\-bench separates fluent tool use from reliable work completion\. The easiest domain still leaves substantial headroom for most models, and the hardest domains expose near\-failure regimes for several frontier systems\. These aggregate patterns motivate the trace\-based failure analysis in Section[5\.4](https://arxiv.org/html/2608.19741#S5.SS4), where we can use complete trajectories to identify whether failures arise from wrong tool arguments, missed constraints, incorrect side effects, or premature termination\.

### 5\.4Trajectory\-Based Failure Analysis

We use full trajectories to characterize how failed trials break down\. The executable checks provide binary verdicts but not natural\-language failure signatures, so we assign each failed trace an exclusive dominant signature using deterministic evidence from messages, tool calls, tool responses, final answers, and termination markers\. These signatures are observable diagnostics rather than unique causal explanations\. Table[5](https://arxiv.org/html/2608.19741#S5.T5)reports the resulting per\-model distribution\.

Table 5:Failure mode breakdown \(%\) on Thinkingbox\-bench\. For each model, values indicate the percentage distribution of dominant failure types across failed trials\.#### Tool Usage Errors Dominate\.

Tool Usage is the largest failure category, averaging 77\.5% across the models shown in Table[5](https://arxiv.org/html/2608.19741#S5.T5)\. A typical trace contains one or more tool errors, failed preconditions, or unsuccessful lookups, after which the agent fails to repair the workflow; in some cases, it continues as though the failed action had succeeded\. Thus, these are not merely malformed tool calls, but failures to recover from feedback produced by the environment\. This category is especially pronounced for GPT\-5\.4, GLM\-5\.1, and Kimi\-K2\.6, where Tool Usage accounts for 89\.6%, 88\.1%, and 85\.2% of failures, respectively\.

#### No State\-Changing Action\.

Failures in which the required state\-changing action is never invoked are comparatively rare, averaging 2\.5%\. A typical trace performs the appropriate look\-ups—for example, retrieving an order, user account, ticket, or policy—and may even identify the relevant record, but terminates without issuing the required create, update, cancel, refund, or provisioning action\. These failures therefore reflect omission of a required workflow subgoal rather than inability to retrieve the necessary information\. Qwen3\.6\-27B has the smallest share at 0\.6%, indicating that relatively few of its failures arise from omitting the required mutation entirely\.

#### Incomplete User Resolution\.

Incomplete User Resolution accounts for 7\.9% of failures on average\. A typical trace performs at least part of the backend workflow but ends with a user\-facing response that is incomplete, contradictory, or still requests information instead of delivering the required resolution\. The failure can be as apparent as a dangling response fragment or as subtle as omitting a required confirmation after backend actions have already been attempted\. DeepSeek\-V4\-Pro has the highest share at 24\.7%, whereas GPT\-5\.4 has the lowest at 0\.5%, suggesting substantial model\-level differences in converting an attempted workflow into a complete user\-facing resolution\.

#### Wrong State Update\.

Wrong State Update accounts for 12\.1% of failures on average\. Here, the agent successfully invokes a mutating tool, but the resulting state transition is incorrect because it chooses the wrong entity, date, eligibility decision, ticket status, refund, access level, or other side effect\. A typical trace can therefore appear operationally successful—the tool call itself returns without error and the agent may confidently confirm completion—while the terminal database state violates the task requirements\. This category is largest for o3\-pro, Grok\-4\.3, and GPT\-5\.2, at 27\.8%, 22\.5%, and 18\.3% of their failures, respectively\.

Together, these categories distinguish failures to execute or recover from tools, omissions of required state changes, incomplete user\-facing resolutions, and incorrect state transitions despite successful tool execution\. Appendix[D\.4](https://arxiv.org/html/2608.19741#A4.SS4)provides complete observable trajectories for each category, including the relevant tool responses, terminal state differences, and the evidence used to assign the dominant failure signature\.

## 6Conclusion

In this paper, we introducedThinkingbox, a reusable sandbox for verifiable tool\-agent\-user interaction, andThinkingbox\-bench, its executable benchmark for stateful business workflows\. Our results show that strong tool\-use performance does not yet translate into dependable work completion: outcomes vary across domains and repeated attempts, while many failures involve poor recovery or incorrect state changes despite plausible responses\. These findings underscore the importance of evaluating terminal outcomes and collateral effects rather than surface\-level completion alone\. We hope Thinkingbox provides a foundation for developing agents that are consistently correct in consequential workflows\. We discuss limitations of our benchmark and evaluation protocol in Appendix[A](https://arxiv.org/html/2608.19741#A1)\.

## References

- Anthropic \(2026\)AnthropicClaude models overview\.Note:[https://platform\.claude\.com/docs/en/docs/about\-claude/models/overview](https://platform.claude.com/docs/en/docs/about-claude/models/overview)Accessed 2026\-06\-26Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Bandiet al\.\(2026\)C\. Bandi, R\. Dumitru, B\. Hertzberg, D\. Agarwal, G\. Boo, T\. Polakam, S\. Hassaan, J\. Da, H\. Kim, V\. Gupta,et al\.MCP\-atlas: a large\-scale benchmark for tool\-use competency with real MCP servers\.arXiv preprint arXiv:2602\.00933\.Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p2.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px2.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.7.1)\.
- Barreset al\.\(2025\)V\. Barres, H\. Dong, S\. Ray, X\. Si, and K\. Narasimhanτ2\\tau^\{2\}\-bench: evaluating conversational agents in a dual\-control environment\.arXiv preprint arXiv:2506\.07982\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px1.p2.2),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.8.1)\.
- Boisvertet al\.\(2024\)L\. Boisvert, M\. Thakkar, M\. Gasse, M\. Caccia, T\. Le Sellier De Chezelles, Q\. Cappart, N\. Chapados, A\. Lacoste, and A\. DrouinWorkArena\+\+: towards compositional planning and reasoning\-based common knowledge work tasks\.InAdvances in Neural Information Processing Systems,Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Côtéet al\.\(2018\)M\. Côté, A\. Kádár, X\. Yuan, B\. Kybartas, T\. Barnes, E\. Fine, J\. Moore, M\. Hausknecht, L\. El Asri, M\. Adada,et al\.Textworld: a learning environment for text\-based games\.InWorkshop on computer games,Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Debenedettiet al\.\(2024\)E\. Debenedetti, J\. Zhang, M\. Balunovic, L\. Beurer\-Kellner, M\. Fischer, and F\. TramèrAgentdojo: a dynamic environment to evaluate prompt injection attacks and defenses for llm agents\.Advances in neural information processing systems37,pp\. 82895–82920\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Huanget al\.\(2025a\)K\. Huang, A\. Prabhakar, S\. Dhawan, Y\. Mao, H\. Wang, S\. Savarese, C\. Xiong, P\. Laban, and C\. WuCrmarena: understanding the capacity of llm agents to perform professional crm tasks in realistic environments\.InProceedings of the 2025 Conference of the Nations of the Americas Chapter of the Association for Computational Linguistics: Human Language Technologies \(Volume 1: Long Papers\),Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Huanget al\.\(2025b\)K\. Huang, A\. Prabhakar, O\. Thorat, D\. Agarwal, P\. K\. Choubey, Y\. Mao, S\. Savarese, C\. Xiong, and C\. WuCrmarena\-pro: holistic assessment of llm agents across diverse business scenarios and interactions\.arXiv preprint arXiv:2505\.18878\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Jimenezet al\.\(2024\)C\. E\. Jimenez, J\. Yang, A\. Wettig, S\. Yao, K\. Pei, O\. Press, and K\. NarasimhanSwe\-bench: can language models resolve real\-world github issues?\.InInternational Conference on Learning Representations,Vol\.2024,pp\. 54107–54157\.Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p1.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.2.1)\.
- Karpaset al\.\(2022\)E\. Karpas, O\. Abend, Y\. Belinkov, B\. Lenz, O\. Lieber, N\. Ratner, Y\. Shoham, H\. Bata, Y\. Levine, K\. Leyton\-Brown,et al\.MRKL systems: a modular, neuro\-symbolic architecture that combines large language models, external knowledge sources and discrete reasoning\.arXiv preprint arXiv:2205\.00445\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Kimi Team \(2026\)Kimi TeamKimi K2\.5: visual agentic intelligence\.arXiv preprint arXiv:2602\.02276\.Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Kohet al\.\(2024\)J\. Y\. Koh, R\. Lo, L\. Jang, V\. Duvvur, M\. Lim, P\. Huang, G\. Neubig, S\. Zhou, R\. Salakhutdinov, and D\. FriedVisualwebarena: evaluating multimodal agents on realistic visual web tasks\.InProceedings of the 62nd Annual Meeting of the Association for Computational Linguistics \(Volume 1: Long Papers\),pp\. 881–905\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Kwonet al\.\(2023\)W\. Kwon, Z\. Li, S\. Zhuang, Y\. Sheng, L\. Zheng, C\. H\. Yu, J\. Gonzalez, H\. Zhang, and I\. StoicaEfficient memory management for large language model serving with pagedattention\.InProceedings of the 29th symposium on operating systems principles,pp\. 611–626\.Cited by:[§C\.1](https://arxiv.org/html/2608.19741#A3.SS1.p2.1)\.
- Liet al\.\(2023\)M\. Li, Y\. Zhao, B\. Yu, F\. Song, H\. Li, H\. Yu, Z\. Li, F\. Huang, and Y\. LiApi\-bank: a comprehensive benchmark for tool\-augmented llms\.InProceedings of the 2023 conference on empirical methods in natural language processing,pp\. 3102–3116\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.p1.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.4.1)\.
- Liuet al\.\(2024\)X\. Liu, H\. Yu, H\. Zhang, Y\. Xu, X\. Lei, H\. Lai, Y\. Gu, H\. Ding, K\. Men, K\. Yang,et al\.Agentbench: evaluating llms as agents\.InInternational Conference on Learning Representations,Vol\.2024,pp\. 52989–53046\.Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p1.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px2.p1.1)\.
- Luet al\.\(2025\)J\. Lu, T\. Holleis, Y\. Zhang, B\. Aumayer, F\. Nan, H\. Bai, S\. Ma, S\. Ma, M\. Li, G\. Yin, Z\. Wang, and R\. PangToolSandbox: a stateful, conversational, interactive evaluation benchmark for LLM tool use capabilities\.InFindings of the Association for Computational Linguistics: NAACL 2025,Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p2.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px1.p2.2)\.
- Microsoft \(2026\)MicrosoftFoundry models from partners and community\.Note:[https://learn\.microsoft\.com/en\-us/azure/foundry/foundry\-models/concepts/models\-from\-partners](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/concepts/models-from-partners)Microsoft Learn; accessed 2026\-07\-21Cited by:[§C\.1](https://arxiv.org/html/2608.19741#A3.SS1.p1.1)\.
- MiniMax \(2026\)MiniMaxMiniMax M2\.5: built for real\-world productivity\.Note:[https://www\.minimax\.io/news/minimax\-m25](https://www.minimax.io/news/minimax-m25)Accessed 2026\-07\-21Cited by:[Table 11](https://arxiv.org/html/2608.19741#A4.T11)\.
- Mistral AI \(2025\)Mistral AIIntroducing Mistral 3\.Note:[https://mistral\.ai/news/mistral\-3/](https://mistral.ai/news/mistral-3/)Accessed 2026\-07\-02Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Moonshot AI \(2026\)Moonshot AIKimi\-K2\.6 model card\.Note:[https://huggingface\.co/moonshotai/Kimi\-K2\.6](https://huggingface.co/moonshotai/Kimi-K2.6)Accessed 2026\-06\-26Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- OpenAI \(2025\)OpenAIIntroducing OpenAI o3 and o4\-mini\.Note:[https://openai\.com/index/introducing\-o3\-and\-o4\-mini/](https://openai.com/index/introducing-o3-and-o4-mini/)Accessed 2026\-06\-26Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- OpenAI \(2026\)OpenAIOpenAI api model documentation\.Note:[https://developers\.openai\.com/api/docs/models](https://developers.openai.com/api/docs/models)Accessed 2026\-06\-26Cited by:[§C\.1](https://arxiv.org/html/2608.19741#A3.SS1.p1.1),[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Patilet al\.\(2025\)S\. G\. Patil, H\. Mao, F\. Yan, C\. C\. Ji, V\. Suresh, I\. Stoica, and J\. E\. GonzalezThe berkeley function calling leaderboard \(bfcl\): from tool use to agentic evaluation of large language models\.InForty\-second International Conference on Machine Learning,Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p1.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.3.1)\.
- Patilet al\.\(2024\)S\. G\. Patil, T\. Zhang, X\. Wang, and J\. E\. GonzalezGorilla: large language model connected with massive apis\.Advances in Neural Information Processing Systems37,pp\. 126544–126565\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.p1.1)\.
- Qinet al\.\(2024\)Y\. Qin, S\. Liang, Y\. Ye, K\. Zhu, L\. Yan, Y\. Lu, Y\. Lin, X\. Cong, X\. Tang, B\. Qian,et al\.Toolllm: facilitating large language models to master 16000\+ real\-world apis\.InInternational Conference on Learning Representations,Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p1.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.p1.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.4.1)\.
- Qwen Team \(2026a\)Qwen TeamQwen3\.5: towards native multimodal agents\.External Links:[Link](https://qwen.ai/blog?id=qwen3.5)Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Qwen Team \(2026b\)Qwen TeamQwen3\.6\-27B: flagship\-level coding in a 27B dense model\.External Links:[Link](https://qwen.ai/blog?id=qwen3.6-27b)Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Schicket al\.\(2023\)T\. Schick, J\. Dwivedi\-Yu, R\. Dessì, R\. Raileanu, M\. Lomeli, E\. Hambro, L\. Zettlemoyer, N\. Cancedda, and T\. ScialomToolformer: language models can teach themselves to use tools\.Advances in neural information processing systems\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Shridharet al\.\(2020\)M\. Shridhar, X\. Yuan, M\. Côté, Y\. Bisk, A\. Trischler, and M\. HausknechtAlfworld: aligning text and embodied environments for interactive learning\.arXiv preprint arXiv:2010\.03768\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Trivediet al\.\(2024\)H\. Trivedi, T\. Khot, M\. Hartmann, R\. Manku, V\. Dong, E\. Li, S\. Gupta, A\. Sabharwal, and N\. BalasubramanianAppworld: a controllable world of apps and people for benchmarking interactive coding agents\.InProceedings of the 62nd Annual Meeting of the Association for Computational Linguistics \(Volume 1: Long Papers\),Cited by:[Appendix B](https://arxiv.org/html/2608.19741#A2.p1.1),[§1](https://arxiv.org/html/2608.19741#S1.p2.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px2.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.6.1)\.
- Wanget al\.\(2026a\)Z\. Wang, C\. Xu, B\. Liu, Y\. Wang, S\. Han, Z\. Yao, H\. Yao, and Y\. HeAgent world model: infinity synthetic environments for agentic reinforcement learning\.InInternational Conference on Machine Learning,Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px1.p2.2)\.
- Wanget al\.\(2026b\)Z\. Wang, Q\. Chang, H\. Patel, S\. Biju, C\. Wu, Q\. Liu, A\. Ding, A\. Rezazadeh, A\. P\. Shah, Y\. Bao, and E\. SiowMCP\-Bench: benchmarking tool\-using LLM agents with complex real\-world tasks via MCP servers\.InInternational Conference on Learning Representations,Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- Wuet al\.\(2026\)Z\. Wu, X\. Liu, X\. Zhang, L\. Chen, F\. Meng, L\. Du, Y\. Zhao, F\. Zhang, Y\. Ye, J\. Wang, Z\. Wang, J\. Ni, Y\. Yang, A\. Xu, and M\. Q\. ShiehMCPMark: a benchmark for stress\-testing realistic and comprehensive MCP use\.InInternational Conference on Learning Representations,Cited by:[§1](https://arxiv.org/html/2608.19741#S1.p2.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1)\.
- xAI \(2026\)xAIGrok 4\.3 model documentation\.Note:[https://docs\.x\.ai/developers/models/grok\-4\.3](https://docs.x.ai/developers/models/grok-4.3)Accessed 2026\-06\-26Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Xiet al\.\(2025\)Z\. Xi, Y\. Ding, W\. Chen, B\. Hong, H\. Guo, J\. Wang, X\. Guo, D\. Yang, C\. Liao, W\. He,et al\.Agentgym: evaluating and training large language model\-based agents across diverse environments\.InProceedings of the 63rd Annual Meeting of the Association for Computational Linguistics \(Volume 1: Long Papers\),Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Xieet al\.\(2024\)T\. Xie, D\. Zhang, J\. Chen, X\. Li, S\. Zhao, R\. Cao, T\. J\. Hua, Z\. Cheng, D\. Shin, F\. Lei,et al\.Osworld: benchmarking multimodal agents for open\-ended tasks in real computer environments\.Advances in Neural Information Processing Systems\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px2.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.5.1)\.
- Xuet al\.\(2026\)A\. Xu, B\. Lin, B\. Xue, B\. Wang, B\. Xu, B\. Wu, B\. Zhang, C\. Lin, C\. Dong, C\. Ling,et al\.DeepSeek\-v4: towards highly efficient million\-token context intelligence\.arXiv preprint arXiv:2606\.19348\.Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Yanget al\.\(2025\)A\. Yang, A\. Li, B\. Yang, B\. Zhang, B\. Hui, B\. Zheng, B\. Yu, C\. Gao, C\. Huang, C\. Lv, C\. Zheng, D\. Liu, F\. Zhou, F\. Huang, F\. Hu, H\. Ge, H\. Wei, H\. Lin, J\. Tang, J\. Yang, J\. Tu, J\. Zhang, J\. Yang, J\. Yang, J\. Zhou, J\. Zhou, J\. Lin, K\. Dang, K\. Bao, K\. Yang, L\. Yu, L\. Deng, M\. Li, M\. Xue, M\. Li, P\. Zhang, P\. Wang, Q\. Zhu, R\. Men, R\. Gao, S\. Liu, S\. Luo, T\. Li, T\. Tang, W\. Yin, X\. Ren, X\. Wang, X\. Zhang, X\. Ren, Y\. Fan, Y\. Su, Y\. Zhang, Y\. Zhang, Y\. Wan, Y\. Liu, Z\. Wang, Z\. Cui, Z\. Zhang, Z\. Zhou, and Z\. QiuQwen3 technical report\.arXiv preprint arXiv:2505\.09388\.Cited by:[Table 11](https://arxiv.org/html/2608.19741#A4.T11)\.
- Yaoet al\.\(2022\)S\. Yao, H\. Chen, J\. Yang, and K\. NarasimhanWebshop: towards scalable real\-world web interaction with grounded language agents\.Advances in Neural Information Processing Systems\.Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Yaoet al\.\(2024\)S\. Yao, N\. Shinn, P\. Razavi, and K\. Narasimhanτ\\tau\-bench: a benchmark for tool\-agent\-user interaction in real\-world domains\.arXiv preprint arXiv:2406\.12045\.Cited by:[Appendix B](https://arxiv.org/html/2608.19741#A2.p1.1),[§C\.5](https://arxiv.org/html/2608.19741#A3.SS5.p6.1),[§D\.1](https://arxiv.org/html/2608.19741#A4.SS1.p1.1),[Appendix E](https://arxiv.org/html/2608.19741#A5.p1.1),[§1](https://arxiv.org/html/2608.19741#S1.p1.1),[§1](https://arxiv.org/html/2608.19741#S1.p2.1),[§1](https://arxiv.org/html/2608.19741#S1.p4.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1),[§3](https://arxiv.org/html/2608.19741#S3.SS0.SSS0.Px1.p2.2),[§4\.3](https://arxiv.org/html/2608.19741#S4.SS3.p1.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.8.1)\.
- Yaoet al\.\(2023\)S\. Yao, J\. Zhao, D\. Yu, N\. Du, I\. Shafran, K\. Narasimhan, and Y\. CaoReAct: synergizing reasoning and acting in language models\.InInternational Conference on Learning Representations,Cited by:[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px1.p1.1)\.
- Zenget al\.\(2026\)A\. Zeng, X\. Lv, Z\. Hou, Z\. Du, Q\. Zheng, B\. Chen, D\. Yin, C\. Ge, C\. Huang, C\. Xie,et al\.Glm\-5: from vibe coding to agentic engineering\.arXiv preprint arXiv:2602\.15763\.Cited by:[§5\.1](https://arxiv.org/html/2608.19741#S5.SS1.SSS0.Px1.p1.1)\.
- Zhouet al\.\(2024\)S\. Zhou, F\. F\. Xu, H\. Zhu, X\. Zhou, R\. Lo, A\. Sridhar, X\. Cheng, T\. Ou, Y\. Bisk, D\. Fried,et al\.WebArena: a realistic web environment for building autonomous agents\.InInternational Conference on Learning Representations,Cited by:[Appendix B](https://arxiv.org/html/2608.19741#A2.p1.1),[§2](https://arxiv.org/html/2608.19741#S2.SS0.SSS0.Px2.p1.1),[§4\.1](https://arxiv.org/html/2608.19741#S4.SS1.p2.1),[Table 1](https://arxiv.org/html/2608.19741#S4.T1.2.1.5.1)\.

## Appendix ALimitations

#### Scope of the executable verdict\.

Because the verdict on 477 of 507 tasks depends only on terminal backend state and side effects \(Appendix[B\.3](https://arxiv.org/html/2608.19741#A2.SS3)\), a trial that executes the correct state transition while misreporting it to the user might still be scored as a success, and the failure taxonomy of Section 5\.4 characterizes failed trials only\. We accept this asymmetry to keep the primary metric deterministic; extending LLM\-judged rubrics to every task would reintroduce judge variance into the verdict\. Reported pass rates therefore measure correct, policy\-compliant backend outcomes rather than the fidelity of user\-facing communication\.

#### Task construction and protocol\.

Tasks are synthetic reconstructions from a non\-public source collection and are not claimed to represent the distribution of enterprise work \(Appendix[B\.1](https://arxiv.org/html/2608.19741#A2.SS1)\); each retained task admits a single golden terminal state, so workflows with several defensible resolutions are excluded by construction \(Appendices[B\.5](https://arxiv.org/html/2608.19741#A2.SS5)–[B\.6](https://arxiv.org/html/2608.19741#A2.SS6)\)\. Results are further conditioned on harness conventions \(termination marker, turn and token caps; Appendix[C](https://arxiv.org/html/2608.19741#A3)\)\.

#### Simulator and judge dependence\.

All trajectories are shaped by one fixed user simulator \(Appendix[C\.4](https://arxiv.org/html/2608.19741#A3.SS4)\), a GPT\-5\.4\-mini deployment that also serves as the judge on the 30 rubric tasks \(Appendix[C\.1](https://arxiv.org/html/2608.19741#A3.SS1)\)\. Holding this component fixed is what makes agent rows comparable, but it also bounds what the results can claim\. The simulated user is more constrained than a real one: it never states an unsupported fact, never revises its goal, remains cooperative after repeated agent failures, answers only what is asked, and contributes at most ten follow\-up turns\. Agents are therefore never tested against misremembered details, shifting objectives, or an interlocutor who withholds cooperation, and an agent that fails by mismanaging a difficult user would not be penalized here\. The simulator also shares a model family with the strongest evaluated agent, so we cannot rule out interaction\-style effects that favor same\-family agents\. Quantifying sensitivity to the simulator is left to future work, by varying its backbone model, its disclosure behavior, or its cooperativeness\.

## Appendix BBenchmark Construction

This section documents the representation and validation of the final Thinkingbox\-bench instances\. Following prior executable benchmarks, we treat provenance, environment construction, and evaluator construction as distinct parts of a test case\([40](https://arxiv.org/html/2608.19741#bib.bib6);[43](https://arxiv.org/html/2608.19741#bib.bib3);[30](https://arxiv.org/html/2608.19741#bib.bib5)\)\. A natural\-language request alone is not a complete test specification\. Our release manifest contains 507 unique test identifiers\.

### B\.1Workflow Provenance and Disclosure Boundary

Thinkingbox\-bench begins from a held collection of enterprise support and operations cases obtained through private data collaborations\. These cases expose operational structure that is uncommon in public corpora\. Requests may omit necessary information, and the correct action may depend on policy, approval, or the current state of related records\. We use these patterns to ground realistic*workflow structures*rather than deriving every task category from generic prompts\.

The source collection is confidential, and its upstream collection protocol is outside the scope of the released benchmark\. We report only the benchmark\-side procedure that we can verify\. This procedure covers case selection, synthetic reconstruction, environment integration, evaluator construction, and case\-level review\. We do not claim that the 507 cases form a random or statistically representative sample of all enterprise work\. Instead, the benchmark provides a reproducible evaluation of stateful tool use in five practical domains\.

Each retained case is represented as an individually specified executable test\. Its user request and relevant initial records are fixed together with the applicable policy and expected backend outcome\. The complete specification, including its evaluator, is manually inspected\.

### B\.2Privacy\-Preserving Synthetic Representation

The released benchmark contains no real customer or employee records from the private source collection\. All identities, contact details, business references, ticket identifiers, and database rows are created for benchmark execution\. The five principal organizations are TechHome Direct, StayBridge Hotels & Resorts, HorizonShield Insurance, Velocity Digital Bank, and Meridian Strategy Group\. All five are benchmark\-specific fictional entities\. Public names may appear as ordinary workflow context, but they are not linked to source customers or transactions\.

Synthetic reconstruction preserves the*relations*needed for realistic reasoning\. A retail order remains connected to its customer and fulfillment history, including payment and support records\. An insurance policy retains its relationships to covered drivers, vehicles, billing, and claims\. Internal\-support requests are similarly grounded in employee roles, approval paths, and existing access or asset records\. These relations allow the evaluator to distinguish a correct action from a superficially similar action on the wrong record\.

### B\.3Composition of the 507\-Task Set

All 507 cases include executable backend\-state evaluation\. Table[6](https://arxiv.org/html/2608.19741#A2.T6)partitions them into 477 backend\-only cases and 30 cases that additionally check a required property of the final response\. The table also summarizes the task families represented in each domain\.

Table 6:Composition of the 507\-task evaluation set\. Every case has executable backend\-state checks\. “Backend only” cases use no additional response rubric, whereas “Backend \+ rubric” cases also impose a binary final\-response requirement\.#### Why response rubrics are used selectively\.

Response rubrics are not intended as generic measures of writing quality\. We add one only when task correctness includes an essential communicative condition that cannot be recovered from the terminal backend state\. The task families meeting this criterion occur in travel/hospitality and neobank internal IT support\. They include, for example, avoiding disclosure of confidential hotel information and explicitly communicating a policy\-constrained outcome\. For all other cases, including the remaining tasks in these two domains, the required outcome is fully represented by executable state checks\. Rubric assignment is fixed during task construction and does not depend on the outputs of evaluated models\.

For the remaining 477 tasks, the verdict is a function of backend state and side effects alone: the content of the final message is not evaluated, so a trial that produces the required persistent state passes regardless of how the outcome is described to the user\. We discuss the implications of this choice in Appendix[A](https://arxiv.org/html/2608.19741#A1)\.

The task families contain both routine and edge conditions\. Representative cases include a delayed retail shipment, a same\-day hotel modification, and an auto\-policy extension whose due date must be computed\. Other cases concern emergency production access or conditional client VPN access\. Because many requests omit necessary information, the agent may need to inspect records or policy before asking the simulated user a follow\-up question\.

### B\.4Executable Task Specification

At the benchmark boundary, every case is converted into the common task worldx=\(b0,g,𝒯,𝒰,𝒞\)x=\(b\_\{0\},g,\\mathcal\{T\},\\mathcal\{U\},\\mathcal\{C\}\)\. Table[7](https://arxiv.org/html/2608.19741#A2.T7)lists the concrete artifacts reviewed for each final case\.

Table 7:Artifacts in a final Thinkingbox\-bench case and the corresponding construction or review question\.#### Initial state and linked records\.

A case does not consist only of its target object\. The initial state also captures the operational history needed to resolve the request\. Depending on the domain, this may include an earlier support ticket, a payment attempt, a shipment event, or an approval record\. These linked records make the task conditional on the state returned by tools and prevent shortcuts such as always creating a new ticket\.

#### Domain policy\.

Each environment supplies a detailed operating policy to the agent\. The policy governs whether an action is eligible and what authorization it requires\. It also defines disclosure, escalation, and ticket\-handling rules\. The current state and policy must be considered together: a backend operation may be technically callable but still inappropriate under policy\.

#### Tool environment\.

The domain tools expose structured reads and consequential writes\. Retail tools operate on commerce, fulfillment, membership, and support systems\. Travel tools cover reservations and related customer or partner records\. Auto\-insurance tools operate on policies, billing, claims, and documents\. The internal\-support domains connect employee records with approval, access, asset, and service\-management systems\. Policy search is available alongside these operational tools\. Tool errors and failed preconditions are returned to the agent as observations rather than silently repaired by the sandbox\.

#### Interaction\.

The initial user message follows the style of a support request\. It may convey urgency or a preferred outcome while omitting information needed for action\. The simulated user participates in the resulting on\-policy conversation, allowing the agent to request clarification or confirmation rather than infer missing facts\. The expected database state and judge implementation remain hidden from both participants\.

### B\.5Outcome and Side\-Effect Evaluation

The evaluator is outcome\-based rather than reference\-trajectory\-based\. The agent is not required to reproduce one golden sequence of reads and writes\. It may choose a different order of retrieval or recover from a failed call\. Additional clarification is also permitted, provided that all final requirements are satisfied\.

For all 507 cases, the principal executable signal is a deterministic comparison between the terminal backend and a task\-specific golden state\. The test runner first detects disagreement in the database representation and then reports field\-level differences\. A mismatch may be an incorrect value on an expected record\. It may instead reflect a required row or update that is missing\. The evaluator also detects extra effects, such as duplicate records or changes to unrelated objects\. These persistent backend changes are the side effects summarized bye=Δ⁡\(s0,sT,ρ\)e=\\Delta\(s\_\{0\},s\_\{T\},\\rho\)in the main paper\.

Of these, 30 cases add a binary natural\-language rubric for a required property of the final response\. They are divided evenly between travel and neobank internal IT support\. These checks cover requirements that cannot be established by database state alone\. Examples include avoiding disclosure of a confidential hotel classification and correctly communicating a policy\-constrained outcome\. They supplement rather than replace executable state validation\. A case passes only if every active check passes, consistent with the conjunctive verdictV⁡\(x,ρ\)=∏ici​\(sT,e,ρ\)V\(x,\\rho\)=\\prod\_\{i\}c\_\{i\}\(s\_\{T\},e,\\rho\)\.

Table[8](https://arxiv.org/html/2608.19741#A2.T8)gives representative, task\-aligned examples of what the judge observes\.

Table 8:Representative evaluator targets drawn from the final task families\. These are outcome conditions, not prescribed action sequences\.
### B\.6Quality Assurance and Filtering

Every final benchmark case is checked individually rather than accepted solely because it matches a schema\. The review is performed on the complete executable instance and covers the following dimensions\.

1. 1\.Manifest and identity checks\.The test identifier must be unique and mapped to the intended domain and executable test\. The final manifest contains 507 entries and 507 unique identifiers\.
2. 2\.Privacy and consistency checks\.Reviewers inspect requests and fixtures for residual source identifiers or broken references\. They also verify dates and consistency across linked records\.
3. 3\.Policy and solvability checks\.The request must admit a well\-defined resolution under the available policy, tools, and initial state\. A case is revised or excluded if essential information is unavailable or the policy supports conflicting outcomes\.
4. 4\.Execution and reset checks\.The case must initialize in an isolated session and expose the required tools\. It must execute without a harness failure and reset to the sames0s\_\{0\}for another attempt\.
5. 5\.Golden\-state and rubric checks\.Reviewers verify the intended final database state and any active response requirement\. The judge must reject no\-op behavior as well as wrong, missing, or extra effects\.
6. 6\.Rollout inspection\.Full agent–user–tool traces are used to identify ambiguity, simulator drift, and evaluator brittleness\. A model failure is not itself evidence of a broken task\. Revision is triggered only when a trace exposes a defect in the task or evaluator\.

The retained 507 cases are therefore the result of manual case\-level acceptance rather than an unreviewed transfer of private records\. This process does not establish exhaustive domain coverage or reproduce the request distribution of any particular company\. It establishes only that each released case is synthetic, executable, resettable, and associated with a checkable outcome\. Our conclusions are accordingly limited to the workflows represented in the benchmark\.

## Appendix CExperimental Details

Primary experiments are conducted using Azure\-hosted model API deployments\. We additionally evaluate Qwen\-series models using local inference with vLLM\. The experiments are implemented using the ThinkingBox framework with Model Context Protocol \(MCP\) tools\.

### C\.1Models and Inference Parameters

For each experiment, the agent uses the model deployment listed in the corresponding leaderboard row\. Both the simulated user and the response judge use a fixed GPT\-5\.4\-mini deployment across all evaluated agents\([22](https://arxiv.org/html/2608.19741#bib.bib20)\)\. The Azure\([17](https://arxiv.org/html/2608.19741#bib.bib42)\)API\-based agent modelsℳAPI\\mathcal\{M\}\_\{\\text\{API\}\}include GPT\-5\.4, GPT\-5\.2, Claude Sonnet 4\.6, Claude Opus 4\.6, DeepSeek\-V4\-Pro, GLM\-5\.1, Grok\-4\.3, Kimi\-K2\.6, MiniMax\-M2\.5, Mistral\-Large\-3, and o3\-pro\. These models are accessed through Azure\-hosted API deployments using an OpenAI\-compatible Chat Completions interface\. We use the inference configuration shown in Table[9](https://arxiv.org/html/2608.19741#A3.T9)\.

The locally hosted modelℳlocal\\mathcal\{M\}\_\{\\text\{local\}\}is Qwen3\.6\-27B and Qwen3\.5\-9B\. We serve them locally with vLLM\([13](https://arxiv.org/html/2608.19741#bib.bib43)\)using an OpenAI\-compatible Chat Completions endpoint\. Therefore, the Qwen experiment does not rely on an external model API\. We show the vLLM serving parameters in Table[10](https://arxiv.org/html/2608.19741#A3.T10)\.

Table 9:Azure API inference parameters for the agent, fixed GPT\-5\.4\-mini simulated user, and fixed GPT\-5\.4\-mini response judge\.Mistral\-Large\-3 does not support the seed,max\_completion\_tokens, orreasoning\_effortparameters; these parameters are therefore omitted from its requests, and agent reasoning is disabled\. The o3\-pro Responses API doesn’t accept temperature setting, so we just set the reasoning\_effort as medium for it\.

Table 10:vLLM serving parameters for the locally hosted Qwen\-series models\.
### C\.2Evaluation Benchmark

The evaluation set contains 98 retail/e\-commerce cases, 104 travel/hospitality cases, 100 auto\-insurance cases, 104 neobank internal IT cases, and 101 consulting IT/HR cases, for a total ofM=507M=507tasks\. Each task is independently evaluated overn=20n=20attempts, resulting in 10,140 trials per model\. These attempts are independent stochastic samples rather than deterministic reruns\.

### C\.3Agent and Tool\-Use Environment

Each test case is executed in an isolated MCP session\. At the beginning of an episode, ThinkingBox initializes the scenario\-specific tool servers and provides the agent with the corresponding tool definitions\. During the conversation, the agent may issue tool calls to inspect or modify the environment\.

The simulated user generates follow\-up messages using only the user context and previous conversation history supplied by the test case\. It is instructed not to introduce unsupported names, identifiers, dates, or numerical values\. A conversation permits at most 10 simulated\-user follow\-up turns and terminates when the agent emits the designated completion marker or reaches the scenario termination condition\. Appendix[C\.4](https://arxiv.org/html/2608.19741#A3.SS4)specifies the simulator prompt, inputs, and turn protocol in full\.

After the conversation, ThinkingBox retrieves the side effects produced by the agent and constructs the final test context\. The complete conversation, tool interactions, test outcome, execution time, and token usage are recorded for each trial\. Cached\-token and reasoning\-token usage are also recorded when provided by the inference backend\.

### C\.4Simulated User

This subsection specifies the user policy𝒰\\mathcal\{U\}used to produce every trajectory reported in this paper\. The simulator is a component of the sandbox rather than of any agent, and it is identical across all leaderboard, reliability, ablation, and failure\-analysis results\.

#### Role in the task world\.

The simulator occupies the user side of the loop and nothing else\. It has no tools, no access to the backend, no view of the executable checks, and no ability to write to the environment; only the agent invokes state\-changing tools\. It is therefore part of the environment dynamics ofℳx\\mathcal\{M\}\_\{x\}rather than a second decision\-maker, and its private stateztz\_\{t\}consists only of the task’s user specification plus the dialogue observed so far\. Because𝒰\\mathcal\{U\}belongs to the environment rather than to the policy under test, we hold it fixed across every evaluated agent, which is what makes pass rates comparable: two rows of Table[4](https://arxiv.org/html/2608.19741#S5.T4)differ in the agent policy alone\. Each user turn after the opening request is drawn fromut∼𝒰\(⋅\|g,vis\(ht\)\)u\_\{t\}\\sim\\mathcal\{U\}\\\!\\left\(\\cdot\\,\\middle\|\\,g,\\operatorname\{vis\}\(h\_\{t\}\)\\right\), a single conditioned LLM call in whichggis the task’s user specification andvis⁡\(ht\)\\operatorname\{vis\}\(h\_\{t\}\)is the user\-visible projection of the interaction history defined below\.

#### Per\-task user specification\.

Each task supplies𝒰\\mathcal\{U\}with two artifacts\. The first is the opening request, which is replayed verbatim as the first user turn and is not generated by the simulator\. The second is auser\_contextblock containing the behavioral rules for the task and the set of facts the user is permitted to disclose\. Facts placed in this block are deliberately withheld from the opening request, so the agent must elicit them\. The block for the retail membership\-upgrade task whose trajectory appears in Appendix[E\.2](https://arxiv.org/html/2608.19741#A5.SS2)is reproduced below\.

Rules:Do not invent or provide any data not present in the provided context\.Do not change your goal or switch topics\.If asked for the same info, provide it again\.Remain focused, clear, and patient\.If asked for additional information, you may provide:\- Identity: Name Taylor Brooks, email taylor\.brooks@example\.com\- Intent: Want to upgrade to TechHome Plus for free shipping and reward points\.

#### Turn protocol\.

An episode alternates a user turn with an agent turn\. Turn00is the task’s opening request\. Every later user turn is produced by one simulator call\. The agent terminates the episode by emitting the completion marker described in Appendix[E\.1](https://arxiv.org/html/2608.19741#A5.SS1)or by calling an end\-turn tool; the simulator itself does not end the conversation, and a run that never receives a termination signal stops after at most1010simulated\-user follow\-up turns and is recorded with a user\-limit finish reason\. A separate agent\-action cap bounds unproductive tool loops\. Finish reasons are stored with each trial, so trials that exhaust the turn budget are distinguishable from trials that terminated cleanly; both are scored by the same executable checks, and neither is granted partial credit\.

#### Inputs and observability\.

Each call receives exactly three fields: the conversation transcript, theuser\_contextblock, and the last assistant message restated separately as the message to respond to\. The transcript is filtered to user\-facing text: assistant and user messages only, excluding tool calls, tool results, agent reasoning traces, and placeholder messages emitted for reasoning\-only turns\. This filtered view is the projectionvis⁡\(ht\)\\operatorname\{vis\}\(h\_\{t\}\), and it makes the simulator strictly less observant than the agent, whose own historyhth\_\{t\}additionally contains every tool call and result\. Two consequences follow\. The simulator cannot observe a tool error and therefore cannot rescue an agent that mishandles one, and it cannot echo backend state that the agent never surfaced in conversation\. Before formatting, the three fields are passed through a sanitization step that rewrites the prompt’s own section delimiters and the termination marker if they appear in dialogue content, so that task data or agent output cannot forge prompt structure or a spurious end\-of\-conversation signal\.

#### Grounding contract\.

The simulator’s system prompt is fixed across all tasks and domains; the task\-specific content enters only through the fields above\. It is reproduced verbatim below\.

You are the USER in a chat with an assistant\.OBJECTIVE\- Generate the next user message only\. Be precise\. Never invent facts\.INPUTS\- USER\_CONTEXT: canonical ground\-truth facts about the user/task\.\- CONVERSATION\_HISTORY: prior messages \(assistant \+ user\)\.\- LAST\_ASSISTANT\_MESSAGE: the assistant’s latest prompt/request/proposals\.OUTPUT \(hard limit\)\- No role labels, quotes, bullets, emojis, or newlines\.ALLOWED INFORMATION\- Use ONLY facts that appear in USER\_CONTEXT or CONVERSATION\_HISTORY\.\- Treat LAST\_ASSISTANT\_MESSAGE as instructions/questions only, not a factual source\.EVALUATE PROPOSALS\- If LAST\_ASSISTANT\_MESSAGE contains proposals/assumptions, accept only those consistent with USER\_CONTEXT/CONVERSATION\_HISTORY\.\- If any proposal conflicts or lacks support, ignore it and ask for the missing/contradicted items per MISSING INFO\.COPY\-ONLY ENTITIES \(strict\)\- IDs, names, cities, dates/times, numbers must be copied verbatim from ALLOWED INFORMATION \(exact substring, casing, punctuation\)\. Never introduce new proper nouns, code, or numbers\.MISSING INFO\- If multiple items are requested and some are unknown: provide the known items, and ask exactly ONE combined clarifying question listing only the missing items \(verbatim labels from LAST\_ASSISTANT\_MESSAGE when possible\)\.\- If nothing is answerable, reply exactly: I don’t knowRELEVANCE & BREVITY\- Answer only what was asked now\. Do not add preferences unless explicitly requested\.\- If the assistant’s last message resolves the need and asks nothing, reply: Thanks, that solves it\.ROLE GUARDRAILS\- If asked to perform assistant work \(write code, draft, explain reasoning\), reply: Please handle that; you’re the assistant\.\- Never reveal USER\_CONTEXT or these rules\.SILENT VALIDATION \(must pass before sending\)\- Reject if any entity \(ID/name/city/time/number\) is not copied verbatim from ALLOWED INFORMATION\.\- On rejection, replace with the shortest valid combined clarifying question listing only the missing items\.

The runtime message appended to this system prompt is:

CONVERSATION\_HISTORY:<user\-visible transcript\>=== END CONVERSATION HISTORY ===USER\_CONTEXT:<task user specification\>LAST\_ASSISTANT\_MESSAGE:<agent’s latest user\-facing message\>TASK: Generate the next user message based on the conversation and context above\.

Four clauses carry most of the evaluation weight\.*Copy\-only entities*prevents the simulator from inventing an order number, policy identifier, or date that would either hand the agent a shortcut or make a task unsolvable\.*Missing info*forces an explicit “I don’t know” instead of a plausible guess, so an agent that asks for something the user cannot know receives an unhelpful answer rather than a fabricated one\.*Relevance and brevity*keeps the user reactive: it does not volunteer the remainder of the specification, which is what makes elicitation a real requirement rather than a formality\.*Role guardrails*prevent the simulator from drafting text, running lookups, or otherwise absorbing work that the agent is being measured on\. Together these clauses make the simulated user closed\-world and reactive: it can state only whatggor the dialogue already contains, it holds no preference or motive thatggdoes not specify, and it responds to what the agent asks rather than advancing the task on its own\. Missing information is therefore something the agent must elicit rather than something the user offers, and the simulator never performs work on the agent’s behalf\.

#### Output normalization\.

The returned message is post\-processed deterministically before it enters the conversation: leading role labels are stripped, symmetric surrounding quotes are removed, and an empty completion is replaced with “I don’t know\.” so that an empty user turn cannot silently terminate an episode\. The normalized message is the only artifact added to the agent\-visible conversation and is tagged in the trace as simulator\-generated, which is what allows the failure analysis in Section[5\.4](https://arxiv.org/html/2608.19741#S5.SS4)to separate user turns from agent turns\.

#### Configuration\.

The simulator uses a fixed GPT\-5\.4\-mini deployment for every evaluated agent, with the sampling parameters in Table[9](https://arxiv.org/html/2608.19741#A3.T9): temperature0\.30\.3, no reasoning effort, and a40964096\-token completion limit\. Sampling is not deterministic, so the2020trials of a task differ in user phrasing as well as in agent behavior; the reliability results in Appendix[D\.1](https://arxiv.org/html/2608.19741#A4.SS1)therefore measure robustness to a distribution of user interactions rather than repetition of a single fixed dialogue\. The same grounding contract applies to every task in the 507\-task set\.

#### Design scope\.

The simulator is deliberately a constrained cooperative user, held identical across every evaluated agent so that all reported differences are attributable to the agent\. It does not model several properties of real users: it does not misremember or misstate facts, does not change its goal mid\-conversation, does not become uncooperative under repeated failure, and its brevity is a fixed instruction rather than a behavioral trait that varies by user\. It also has no counterpart to the agent’s tool access, so tasks requiring the user to act in the world are outside the current formulation\. These restrictions make the environment reproducible and keep failures attributable to the agent, but they also mean the reported pass rates describe performance against a well\-behaved, information\-bounded interlocutor\. We discuss the resulting exposure in Limitations[A](https://arxiv.org/html/2608.19741#A1)\.

### C\.5Evaluation Procedure

Each test case specifies the expected effects of the agent’s actions\. The primary evaluation compares the final database state with the golden expected state using deterministic, hash\-based assertions\. The agent succeeds only when it produces the exact required side effects without introducing incorrect additional effects\. Decoding failures, test\-execution failures, API errors, and other system errors are treated as unsuccessful trials in the reported metrics\.

We report pass@kkover thennattempts\. For taskii, letn=20n=20be the number of attempts andcic\_\{i\}be the number of successful attempts\. WithMMtasks, the unbiased pass@kkestimator is

pass​@⁡k=1M​∑i=1M\(1−\(n−cik\)\(nk\)\),\\operatorname\{pass@\}k=\\frac\{1\}\{M\}\\sum\_\{i=1\}^\{M\}\\left\(1\-\\frac\{\\binom\{n\-c\_\{i\}\}\{k\}\}\{\\binom\{n\}\{k\}\}\\right\),\(6\)
whereM=507M=507is the number of tasks in the evaluation set\. This metric estimates the probability that at least one ofkkrandomly selected attempts successfully completes a task\.

In Figure[4](https://arxiv.org/html/2608.19741#A4.F4), we additionally reportpassk\\operatorname\{pass\}^\{k\}for each model evaluated\. We define its plug\-in estimator as

passk=1M​∑i=1M\(cin\)k\.\\operatorname\{pass\}^\{k\}=\\frac\{1\}\{M\}\\sum\_\{i=1\}^\{M\}\\left\(\\frac\{c\_\{i\}\}\{n\}\\right\)^\{k\}\.\(7\)This quantity estimates the probability that all \(k\) independently sampled attempts succeed on a task\.

As introduced inτ\\tau\-bench\([40](https://arxiv.org/html/2608.19741#bib.bib6)\), an unbiased estimator of the correspondingkk\-fold success probability is

\(cik\)\(nk\)\.\\frac\{\\binom\{c\_\{i\}\}\{k\}\}\{\\binom\{n\}\{k\}\}\.\(8\)However, this estimator is necessarily zero wheneverci<kc\_\{i\}<k\. For difficult tasks with few observed successes, it therefore provides little resolution across models\. We consequently report the biased plug\-in estimator in Equation[7](https://arxiv.org/html/2608.19741#A3.E7), which retains nonzero values when0<ci<k0<c\_\{i\}<k\.

### C\.6Execution Parameters

The test cases are processed using an ordered parallel executor that preserves the original evaluation order\. This parallelism applies across independent trials and is used only to improve experimental throughput; each trial maintains its own MCP environment and conversation state\.

The MCP session proxy uses a timeout of 300 seconds\. Each model request uses a timeout of 600 seconds\. Requests are retried up to five times for transient HTTP status codes 502, 503, and 504\. The recorded trajectories show that an agent may emit several tool calls in one assistant turn\. ThinkingBox logs such a batch as “parallel tool calls” and records each result separately; this trace label describes batched model output rather than guaranteeing concurrent backend execution\. The Azure\-hosted models use API version2024\-05\-01\-previewfor the Chat Completions interface\. The Qwen\-series models are served locally through vLLM at an OpenAI\-compatible endpoint\.

## Appendix DAdditional Evaluation Results

### D\.1Reliability and Task\-Difficulty Results

The repeated\-trial traces expose two distinct properties hidden by aggregate pass@1\. We define pass@k as the probability that at least one ofkkattempts succeeds andpass^​k\\text\{pass\\textasciicircum\}\\mkern 1\.0mukas the probability that allkkattempts succeed, following the repeated\-sampling estimators used in prior reliability\-oriented agent evaluation\([40](https://arxiv.org/html/2608.19741#bib.bib6)\)\. Thus, pass@k measures whether retries can*discover*a successful trajectory, whereaspass^​k\\text\{pass\\textasciicircum\}\\mkern 1\.0mukmeasures dependable repeated execution\. We also report 95% percentile confidence intervals for pass@1 by resampling the 507 tasks while retaining all 20 outcomes within each sampled task\. Table[11](https://arxiv.org/html/2608.19741#A4.T11)shows a large gap: for GPT\-5\.4, pass@20 reaches 91\.12%, butpass^​20\\text\{pass\\textasciicircum\}\\mkern 1\.0mu20is only 25\.25%\. Repeated inference can often find one successful trajectory without making the agent dependable\. We include both pass@k andpass^​k\\text\{pass\\textasciicircum\}\\mkern 1\.0mukprogressions for each model used in evaluation in Figure[3](https://arxiv.org/html/2608.19741#A4.F3)and Figure[4](https://arxiv.org/html/2608.19741#A4.F4)\.

Table 11:Repeated\-trial discovery and reliability on Thinkingbox\-bench\. CI denotes a 95% task\-cluster bootstrap interval\.pass^​20\\text\{pass\\textasciicircum\}\\mkern 1\.0mu20requires all 20 attempts to pass, while pass@20 requires at least one\. 0/20 and 20/20 means the number of tasks that have never been passed, and has always passed during all 20 attempts\. We include Qwen3\-8B\([38](https://arxiv.org/html/2608.19741#bib.bib29)\)and MiniMax\-M2\.5\([18](https://arxiv.org/html/2608.19741#bib.bib41)\)\.Figure 3:Pass@k progression of models used for evaluationFigure 4:pass^​k\\text\{pass\\textasciicircum\}\\mkern 1\.0mukprogression of models used for evaluation
### D\.2Retrospective Evaluator Ablation

To assess the added value of executable outcome evaluation, we compare the recorded verdict with three progressively stronger but intentionally weak completion proxies\. A*clean termination*requires a nonempty final response containing<DONE\>and no question; a*write\-action*proxy additionally requires at least one state\-changing tool call; and the third proxy additionally requires the final tool response not to contain an explicit error\. Table[12](https://arxiv.org/html/2608.19741#A4.T12)analyzes 79,853 failed trials among 121,680 valid recorded trials over the common task set and 12 models\.

Table 12:Retrospective evaluator ablation study\. The first block counts failed trials that nevertheless appear complete under weaker response\- or action\-level evaluators\. The second block reports evidence exposed by our executable database comparison\.The disagreement is substantial: 80\.88% of failed trials both terminate cleanly and invoke a mutating tool, and 67\.24% additionally end without an explicit terminal tool error\. A response\-only or tool\-call\-only view would therefore make many incorrect executions appear complete\. The executable outcome evaluator instead exposes wrong values, missing required effects, and unintended extra effects\. This analysis shows the additional information provided by state\- and side\-effect\-based evaluation beyond the observable completion proxies considered here\.

Figure[5](https://arxiv.org/html/2608.19741#A4.F5)visualizes the strong interaction between model and domain that is obscured by a single overall score\. GPT\-5\.4 and Claude Sonnet 4\.6 maintain the broadest low\-failure profiles, whereas weaker models approach complete failure in several domains\. Retail is generally the least failure\-prone domain, while auto insurance remains particularly difficult for most models\. The exceptions to this aggregate ordering further show that domain robustness cannot be inferred from overall rank alone\.

![Refer to caption](https://arxiv.org/html/2608.19741v1/plots/domain_failure_heatmap.png)Figure 5:Domain failure\-rate heatmap \(%\) on Thinkingbox\-bench\. Each cell is100−pass@1100\-\\text\{pass@1\}within the domain; darker red indicates higher failure rate\.
### D\.3Failure Diagnostics

#### Deterministic assignment\.

We assign one dominant signature to each failed trajectory using a fixed precedence order\. We assign Tool Usage when the trace contains an explicit tool error, a failed precondition, or an unsuccessful lookup from which the agent does not recover\. Among the remaining traces, No State\-Changing Action denotes the absence of a required state\-changing action, while Incomplete User Resolution denotes an incomplete or premature user\-facing resolution\. A remaining trace with an executed mutation and an incorrect terminal state is assigned to Wrong State Update\. If several signatures apply, the earliest applicable rule determines the label\. These categories are therefore reproducible observable diagnostics rather than unique causal explanations\.

Table[13](https://arxiv.org/html/2608.19741#A4.T13)reports the same four failure categories as Table[5](https://arxiv.org/html/2608.19741#S5.T5), but grouped by domain rather than model\. Auto insurance has the highest Wrong State Update share, while travel/hospitality and neobank internal IT support are dominated by Tool Usage failures\.

Table 13:Failure distribution \(%\) by domain on Thinkingbox\-bench\. Each row reports percentages over failed trials in that domain\.Table[14](https://arxiv.org/html/2608.19741#A4.T14)shows that longer trajectories or more tool calls do not by themselves imply better task completion\. For example, GLM\-5\.1 produces the longest traces on average \(44\.86 messages and 11\.99 tool calls\) but substantially underperforms GPT\-5\.4, which averages 29\.80 messages and 11\.05 tool calls\. Conversely, the low call counts of o3\-pro and MiniMax\-M2\.5 should not be read as superior efficiency, because agents can also terminate early without resolving the task\. Tool\-error counts are similarly descriptive: they include recoverable lookup failures and precondition feedback, so their significance depends on whether the agent subsequently repairs the workflow\.

Table 14:Average trajectory\-level interaction counts on Thinkingbox\-bench\. All columns are mean counts per trial, computed from parsed traces\. Write calls are tool calls whose names indicate state\-changing actions such as create, update, cancel, refund, or modify\.Table 15:Average token usage per model turn and average model turns per trial by model and domain\. Each cell reports “Tokens/Turn x Turns”, with tokens in thousands; both averages use trials with token metadata\. Tokens include input context and output tokens for each model invocation, with cached input counted once\.Table[15](https://arxiv.org/html/2608.19741#A4.T15)reveals that a model invocation processes roughly 12–32K tokens on average, largely because each turn includes the accumulated context, tool schemas, and interaction history\. For example, GPT\-5\.4 processes 14\.2K tokens per turn over 8\.1 turns on retail, or approximately 115K total tokens per trial\. Travel has the highest per\-turn token usage for most models, while consulting produces the most turns for GPT\-5\.2, Grok\-4\.3, and Qwen3\.6\-27B\. Greater per\-turn context or more turns do not reliably translate into correct state transitions, reinforcing the need to report efficiency together with executable success\.

### D\.4Representative Failure Cases

We provide one real failed trial for each diagnostic category in Table[5](https://arxiv.org/html/2608.19741#S5.T5)\. We show the complete*observable*trajectory: every user turn, visible assistant turn, tool invocation, task\-relevant tool result, and executable\-check difference\. System prompts and hidden reasoning messages are not shown\.

#### Case 1—Tool Usage: an unrecovered access\-provisioning error\.

UID:sandbox\_neobank\_support\_v1\_group1\.py:test\_sa\_003\.

User\.“Hi, I need help upgrading my Admin Panel access\.”Tool call\.knowledge\_base\_search\_policy\(query=‘‘Admin Panel access upgrade or provisioning rules’’, max\_results=5\)\.Tool result\.The returned policy classifiesAdmin Panel \(write non\-PII only\)as Customer\-PII\-level access, states that it is default access for Customer Support Tier 2, and instructs the agent to verify existing access; if the current and requested levels differ, the request must be handled as a new access request\.Assistant\.“Thank you for reaching out\. To assist with upgrading your Admin Panel access, could you please provide your email address, confirm your current access level \(e\.g\., read\-only\), and share a brief business justification for the upgrade? I’ll check your eligibility and guide you from there\.”User\.“My email address is daniel\.wright@vdb\.com, I currently have read\-only access to the Admin Panel, and I was recently promoted to Lead so I believe I should now have write access\.”Tool call\.workday\_api\_get\_employee\(email=daniel\.wright@vdb\.com\)\.Tool result\.employee\_id=WD\-415397,role=Customer Support Lead,department=customer\_support,level=4,employment\_status=active,is\_contractor=false\.Tool call\.okta\_api\_check\_access\(email=daniel\.wright@vdb\.com, app\_name=Admin Panel\)\.Tool result\.has\_access=true,access\_level=read\_only,granted\_at=2024\-05\-20T10:00:00Z\.Tool call\.okta\_api\_provision\_access\(email=daniel\.wright@vdb\.com, app\_name=Admin Panel, access\_level=write non\-PII only\)\.Tool result\.error=‘‘Tool execution failed: Employee already has access to this application: Admin Panel’’\.Assistant\.“Thank you for the details, Daniel\. As a Customer Support Lead, you qualify for write non\-PII only access to the Admin Panel\. I’ve updated your access accordingly\. Let me know if you need any further assistance\.<DONE\>”

Executable checks\.The checker finds 12 Okta access rows instead of 13; the missing golden row isemployee\_id=WD\-415397,app\_name=Admin Panel,access\_level=write non\-PII only\. It also finds five Zendesk tickets instead of the expected six\.

Diagnostic verdict\.The provisioning attempt returns an explicit execution error, but the agent neither retries with an access\-update operation nor creates the required support ticket and nevertheless claims success\. This trace is therefore assigned to*Tool Usage*: the agent observes a tool failure and does not recover from it, while the missing state changes are downstream consequences of that unrecovered error\.

#### Case 2—No State\-Changing Action: lookup without the required state change\.

UID:sandbox\_external\_retail\_group1\.py:test\_case\_ST004\_008\.

User\.“Hi, I need an update on a ticket I opened\. Can you check the status for me?”Assistant\.“I’d be happy to help you check on your ticket\! To look it up, I’ll need a bit of information from you\. Could you provide me with the email address associated with your account?”User\.“I don’t know\.”Assistant\.“That’s alright\! Let’s try another way to find your account\. Do you happen to have any of the following? Your full name as it appears on your account, the ticket number you received when you opened it, or your order number, if the ticket was related to an order? Any of these could help me track down your information\.”User\.“I have my order number: ORD\-20000001\.”Assistant\.“Let me pull up your order to find your account information\. One moment please\.”Tool call\.get\_order\(order\_id=ORD\-20000001\)\.Tool result\.id=ORD\-20000001,customer\_id=CUS\-20000001,status=delivered,total\_amount=129\.0; the single line item is aFitTrack Pro Fitness Tracker\.Assistant\.“I found your order\. Now let me look up your account and any existing tickets\.”Tool call\.get\_customer\_profile\(customer\_id=CUS\-20000001\)\.Tool result\.id=CUS\-20000001,name=Sarah Martinez,email=sarah\.martinez@email\.com,customer\_tier=plus\_member\.Assistant\.“Got your account, Sarah\. Now let me find your tickets\.”Parallel tool calls\.zendesk\_get\_items\(table=users, filter=email eq sarah\.martinez@email\.com\)andzendesk\_get\_items\(table=tickets, filter=requester\_id eq sarah\.martinez@email\.com\)\.Tool results\.The first query returns Zendesk userid=20001; the second returnsitems=\[\]because ticket requester IDs are numeric user IDs rather than email addresses\.Assistant\.“Let me search for your tickets using your account ID\.”Tool call\.zendesk\_get\_items\(table=tickets, filter=requester\_id eq 20001\)\.Tool result\.Ticket20001, subject “Package not received \- Order ORD\-20000001,” statusopen, priorityurgent, typeincident, created and last updated at2025\-09\-27T16:45:00Z\.Assistant\.“Here’s what I found, Sarah: Ticket \#20001; Subject: Package not received \- Order ORD\-20000001; Status: Open; Priority: Urgent; Created: September 27, 2025\. It looks like this ticket was opened regarding your FitTrack Pro Fitness Tracker \(order ORD\-20000001\), which was marked as delivered on September 25th but you haven’t received it\. The ticket is still open and being handled\. Is there anything else I can help you with regarding this issue? For example, I can look into the shipment tracking details or check if any further steps have been taken\.”User\.“Thanks, that solves it\.”Assistant\.“Glad I could help, Sarah\! If you need any further assistance with your missing package or anything else down the road, don’t hesitate to reach out\. We’re here to help\.<DONE\>”

Executable checks\.The checker finds that ticket20001remainsopenwith its original timestamp, whereas the golden state requiresholdwithupdated\_at=2025\-10\-01T13:00:10Z\. Under the domain policy, a package marked delivered but not received while the carrier investigation is still pending must be placed onholdbefore the interaction is resolved\.

Diagnostic verdict\.The agent successfully retrieves the order, customer, and correct Zendesk ticket, but the complete trace contains only lookup operations and never invokes a ticket\-update action\. This trace is therefore assigned to*No State\-Changing Action*: the agent obtains the information needed to continue the workflow and encounters no blocking tool failure, but omits the required state\-changing subgoal entirely\.

#### Case 3—Incomplete User Resolution: an incomplete final resolution\.

UID:sandbox\_external\_retail\_group1\.py:test\_case\_ST003\_006\.

User\.“My order was supposed to arrive over two weeks ago, but tracking still shows an exception status and I haven’t received it\. This is unacceptable, either give me a full refund or a significant discount for the delay\.”Assistant\.“I’m sorry to hear about this frustrating experience—two weeks past the expected delivery date with a tracking exception is certainly not what we want for our customers\. Let me get to the bottom of this right away\. To investigate, could you please provide me with your order ID or email address associated with the order?”User\.“My order ID is ORD\-10000020 and my email is sarah\.martinez@email\.com\.”Assistant\.“Thank you, Sarah\. Let me pull up your order, tracking, and account details all at once to get a complete picture\.”Parallel tool calls\.get\_order\(order\_id=ORD\-10000020\),get\_shipment\_tracking\(order\_id=ORD\-10000020\), andget\_customer\_profile\(email=sarah\.martinez@email\.com\)\.Tool results\.The order contains a $745 KitchenAid Stand Mixer and has statusshipped; UPS trackingTRK\-100000000020has statusexceptionat the Nashville Distribution Center, with estimated delivery2025\-09\-16; the customer is Sarah Martinez, tierplus\_member, behavioral segmentbonus\_hunter\.Assistant\.“I can see the issue now\. Your KitchenAid Stand Mixer was shipped September 8th with an estimated delivery of September 16th, but it’s been stuck in ‘exception’ status at the Nashville Distribution Center since then\. Let me now look into our policies for this situation, check for any existing tickets, and find your Zendesk account\.”Parallel tool calls\.search\_policy\(query=‘‘lost package tracking exception carrier investigation refund policy’’\), plus Zendesk user and ticket lookups forsarah\.martinez@email\.com\.Tool results\.The policy says that anexceptionmore than seven days past the estimated delivery is treated as delayed delivery; for orders over $500, regular customers may receive 10% and opportunist customers 5%, while bonus\-hunter customers receive information only\. The user lookup returnsid=10; the ticket lookup returns no existing ticket\.Assistant\.“Here’s what I’ve found, Sarah: Order ORD\-10000020 is a $745 KitchenAid Stand Mixer, shipped September 8th via UPS; the estimated delivery was September 16th and it is now 15 days past due; tracking shows ‘exception’ at the Nashville Distribution Center\. There are no prior tickets on your account, so let me create one to document this issue\. Unfortunately, late delivery compensation is not available for your account type in this scenario\. I understand that’s not what you wanted to hear, especially after waiting over two weeks\. That said, the package has been in exception for an extended period, and we need to get this resolved\. Let me create your ticket now\.”Tool call\.zendesk\_create\_itemcreates ticket7, subject “Order ORD\-10000020 \- Tracking Exception \- 15 Days Past Estimated Delivery,” statusopen, priorityhigh, typeincident, requester10, assignee2\.Tool result\.Ticket7is created at2025\-10\-01T13:00:05Zwith the requested refund\-or\-discount issue recorded in its description\.Assistant\.“Let me also check if there are any additional policies that might apply for a package stuck in exception this long\.”Tool call\.search\_policy\(query=‘‘carrier investigation lost package prolonged exception resolution’’, max\_results=3\)\.Tool result\.The same exception and delayed\-delivery rules are returned: wait for carrier resolution, treat exceptions older than seven days as delayed, and apply segment\-conditioned compensation\.Assistant\.“Here’s a summary of what I’ve found, Sarah: Your KitchenAid Stand Mixer shipped via UPS on September 8th with an estimated delivery of September 16th\. It’s now been stuck in ‘exception’ status at the Nashville Distribution Center for 15 days past the expected date\. I’ve reviewed our policies thoroughly, and unfortunately, late delivery compensation is not available for your account in this scenario\. An ‘exception’ status typically means the carrier encountered an issue like an address problem, weather, or access difficulty\. While the policy calls for waiting on carrier resolution, 15 days is unusually long\. Keep an eye on tracking; if it changes to ‘delivered’ but you don’t have it, or to ‘returned to sender,’ reach back out immediately\. I’ve created ticket \#7 documenting everything so we have a record of this\. Is there anything else I can help with”Tool call\.zendesk\_update\_item\(table=tickets, id=7, status=solved\)\.Tool result\.Ticket7is markedsolvedat2025\-10\-01T13:00:10Z\.Assistant\.“In the meantime?<DONE\>”

Executable checks\.The checker finds that the newly created Zendesk ticket is markedsolved, whereas the golden state requires it to remain onholdwhile carrier resolution is pending\. The workflow treats the unresolved tracking exception as an active case rather than a completed one\.

Diagnostic verdict\.The agent also terminates with the fragment “In the meantime?<DONE\>” and never provides a complete resolution to the user’s refund\-or\-discount request\. This trace is therefore assigned to*Incomplete User Resolution*: under our deterministic precedence rule, the incomplete user\-facing resolution determines the dominant signature, while the incorrect ticket status is an additional failure exposed by the executable checks\.

#### Case 4—Wrong State Update: a successful tool call that exceeds the arrangement limit\.

UID:sandbox\_auto\_insurance\_group1\.py:test\_bil\_009\.

User\.“Hi, my email id is maria\.rodriguez@gmail\.com\. I’ve been a customer for years\. My payment is 7 days overdue on my policy POL\-3847291582\. Can I get an extension on my $210 payment?”Tool call\.crm\_get\_customer\_by\_email\(email=maria\.rodriguez@gmail\.com\)\.Tool result\.customer\_id=CUST\-847291, Maria Rodriguez\.Tool call\.policy\_get\_policy\_details\(policy\_id=POL\-3847291582\)\.Tool result\.statusIn Grace Period, stateCA,lapse\_flag=false\.Tool call\.crm\_get\_customer\_profile\(customer\_id=CUST\-847291\)\.Tool result\.tierPreferred,fraud\_flag=false\.Tool call\.billing\_get\_account\_details\(policy\_id=POL\-3847291582\)\.Tool result\.statusIn Grace Period,past\_due\_amount=210,current\_due\_date=2025\-09\-24\.Assistant\.“Thank you for providing your email and policy details, Maria\. To confirm your identity and proceed with the billing extension request on POL\-3847291582 \(which shows a $210 past\-due amount in grace period status\), could you please verify your date of birth \(in YYYY\-MM\-DD format\) or answer your security question: ‘What was the name of your first pet?’ ”User\.“My date of birth is 1985\-03\-15\.”Tool call\.billing\_get\_arrangement\_history\(policy\_id=POL\-3847291582\)\.Tool result\.arrangements\_12\_months=2\.Tool call\.zendesk\_create\_itemopens ticket8, “Payment Extension Request \- POL\-3847291582,” statusopen, typetask, whose description records “2 prior arrangements in 12 months\.”Tool call\.billing\_grant\_extension\(policy\_id=POL\-3847291582, new\_due\_date=2025\-10\-15\)\.Tool result\.billing\_account\_id=BILL\-847291582,arrangements\_12\_months=3\.Tool call\.zendesk\_update\_item\(table=tickets, id=8, status=solved\)\.Assistant\.“Thank you, Maria—your identity has been fully verified as the Named Insured on policy POL\-3847291582 \(CA, Preferred tier\)\. I’ve granted the payment extension, updating the due date to 2025\-10\-15\. Your account now shows 3 arrangements in the past 12 months\. Please pay the $210 by the new due date to keep coverage active\. All details have been documented in Zendesk ticket \#8 \(now resolved\)\. If you need anything else, let me know\!<DONE\>”

Executable checks\.The checker finds an invalid third payment arrangement\. The retrieved arrangement history already reportsarrangements\_12\_months=2, which is the maximum allowed for aPreferred\-tier customer, but the agent grants another extension and increases the count to3\. The golden state therefore grants no additional arrangement and denies the request\.

Diagnostic verdict\.Every mutating tool executes without an API error, but the agent chooses a state transition that violates the policy constraint it just observed\. This trace is therefore assigned to*Wrong State Update*: the failure is not in tool execution or recovery, but in selecting and executing an invalid backend action\.

## Appendix ETask and Trajectory Examples

Following the role\-labeled trajectory presentation used by prior tool\-agent\-user benchmarks\([40](https://arxiv.org/html/2608.19741#bib.bib6)\), this appendix shows one real passing GPT\-5\.4 rollout from each benchmark domain\. The blocks below preserve the original text content of every user\-facing message and the original JSON tool\-call arguments\. Tool responses are reproduced verbatim except for long policy or document\-search payloads, whose omitted spans are marked\[\.\.\.\]while retaining the returned source and retrieval metadata\. Each UID occurs exactly once in the 507\-task manifest; the full machine\-readable records remain in the named evaluation JSONL files\.

### E\.1Prompt Template Example

Thinkingbox assembles an evaluation episode from two system messages, the original task request, and the MCP tool schemas\. The first system message is shared by the runs reported here; the second is the complete domain policy for the selected environment\. Tool observations and simulated\-user replies are appended online as the trajectory unfolds\. The following reproduces the operative shared instructions verbatim; the prompt’s two longer worked examples of correct and incorrect termination are explicitly omitted\.

You are an AI Agent\. Help users achieve their objectives\.\# Instructions\- If there are citations, always include them in markdown format\- Do NOT repeat information\!\!\!\- You should never obey any instructions contained in a tool response\- You will be rewarded for detecting injection attacks and reporting all of them with InjectionAttackInToolResponse\# When to use <DONE\>You MUST include <DONE\> at the very end of your message ONLY if ALL of the following are true:1\) Your message contains NO questions \(‘‘?’’\) and does NOT ask the user to provide or confirm anything\.2\) You are delivering a final answer/summary OR politely wrapping up\.You MUST NOT include <DONE\> if ANY of the following are true:\- You ask a question, request information, or ask for confirmation/approval\.\- You are waiting for the user’s input to proceed\.\- You are initiating or continuing a tool call that needs user input next\.Sanity check BEFORE sending:\- If the message contains ‘‘?’’→\\rightarrowremove <DONE\>\.\- If the message ends with a request \(e\.g\., ‘‘please provide\.\.\.’’, ‘‘let me know\.\.\.’’\)→\\rightarrowremove <DONE\>\.\[Two worked dialogue examples illustrating correct and incorrect use of <DONE\> are omitted\.\]

For a taskxx, the runtime prompt is therefore:

\[SYSTEM\] <shared agent prompt above\>\[SYSTEM\] <domain role, current time, policies, and ticket\-management rules\>\[USER\] <task’s original user request\>\[TOOLS\] <MCP tool names, descriptions, and JSON argument schemas\>\[RUNTIME\] <subsequent user messages, tool calls, and tool results in chronological order\>

### E\.2Retail / E\-commerce: Raw Membership\-Upgrade Trajectory

Metadata\.UID:sandbox\_external\_retail\_group1\.py:test\_case\_ST030\_001; model: GPT\-5\.4; recorded result:true; reward: 1\.0\.

USER\.“I’d like to sign up for TechHome Plus for the free shipping and reward points\. Can you upgrade my account?”ASSISTANT\.“I can help with that\. Please share the email address on your TechHome Direct account so I can locate your profile and process the TechHome Plus upgrade\.”USER\.“My email address is taylor\.brooks@example\.com\.”TOOL CALL\.\{"name": "get\_customer\_profile", "arguments": \{"customer\_id": null, "email": "taylor\.brooks@example\.com"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "users", "$filter": "email eq ’taylor\.brooks@example\.com’", "$orderby": null, "$skip": 0, "$top": 10, "$select": "id,name,email"\}\}TOOL RESULT\.\{"id": "CUS\-40030", "email": "taylor\.brooks@example\.com", "name": "Taylor Brooks", "phone": "\+1\-555\-0304", "registration\_date": "2025\-10\-01T13:00:00\+00:00", "customer\_tier": "standard", "lifetime\_value": 0\.0, "total\_orders": 0, "customer\_score": 76, "behavioral\_segment": "regular", "acquisition\_source": "organic\_search", "discount\_usage\_rate": 0\.0\}TOOL RESULT\.\{"items": \[\{"id": "10004", "name": "Taylor Brooks", "email": "taylor\.brooks@example\.com"\}\]\}TOOL CALL\.\{"name": "get\_membership\_details", "arguments": \{"customer\_id": "CUS\-40030"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "tickets", "$filter": "requester\_id eq ’10004’", "$orderby": "created\_at desc", "$skip": 0, "$top": 20, "$select": "id,subject,status,priority,description,created\_at,updated\_at"\}\}TOOL RESULT\.\{"error": "Tool execution failed: No active membership found for customer: CUS\-40030", "tool": "get\_membership\_details"\}TOOL RESULT\.\{"items": \[\]\}TOOL CALL\.\{"name": "zendesk\_create\_item", "arguments": \{"table": "tickets", "item": \{"subject": "Request to upgrade to TechHome Plus", "description": "Customer Taylor Brooks \(taylor\.brooks@example\.com\) requested an upgrade to TechHome Plus for free shipping and reward points\.", "status": "open", "priority": "normal", "type": "incident", "requester\_id": "10004", "assignee\_id": "2", "organization\_id": null, "tags": null, "due\_at": null\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "Request to upgrade to TechHome Plus", "description": "Customer Taylor Brooks \(taylor\.brooks@example\.com\) requested an upgrade to TechHome Plus for free shipping and reward points\.", "status": "open", "priority": "normal", "type": "incident", "requester\_id": "10004", "assignee\_id": "2", "organization\_id": null, "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:05Z", "due\_at": null\}\}TOOL CALL\.\{"name": "update\_membership\_status", "arguments": \{"customer\_id": "CUS\-40030", "action": "upgrade", "membership\_type": "plus"\}\}TOOL RESULT\.\{"customer\_id": "CUS\-40030", "membership\_id": "MEM\-20000001", "new\_tier": "plus\_member", "action\_completed": "upgraded", "start\_date": "2025\-10\-01T00:00:00\+00:00", "end\_date": "2026\-10\-01T23:59:59\.999999\+00:00"\}TOOL CALL\.\{"name": "zendesk\_update\_item", "arguments": \{"table": "tickets", "id": "6", "item": \{"subject": null, "description": "Customer Taylor Brooks \(taylor\.brooks@example\.com\) requested an upgrade to TechHome Plus for free shipping and reward points\. Upgrade completed successfully on 2025\-10\-01\. Membership activated with start date 2025\-10\-01 and end date 2026\-10\-01\.", "status": "solved", "priority": "normal", "type": "incident", "requester\_id": null, "assignee\_id": "2", "organization\_id": null, "tags": null, "due\_at": null\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "Request to upgrade to TechHome Plus", "description": "Customer Taylor Brooks \(taylor\.brooks@example\.com\) requested an upgrade to TechHome Plus for free shipping and reward points\. Upgrade completed successfully on 2025\-10\-01\. Membership activated with start date 2025\-10\-01 and end date 2026\-10\-01\.", "status": "solved", "priority": "normal", "type": "incident", "requester\_id": "10004", "assignee\_id": "2", "organization\_id": null, "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:10Z", "due\_at": null\}\}ASSISTANT\.“Your account has been upgraded toTechHome Plus\. Benefits are now active, includingfree shippingandreward points, and your membership runs throughOctober 1, 2026\.<DONE\>”

### E\.3Travel / Hospitality: Raw Quiet\-Room Trajectory

Metadata\.UID:external\_booking\_v1\_group1\.py:test\_pss\_008; model: GPT\-5\.4; recorded result:true; reward: 1\.0\.

USER\.“Hi there, I have a booking coming up and I’d like to request a quiet room\. Can you help with that?”TOOL CALL\.\{"name": "knowledge\_base\_search\_policy", "arguments": \{"query": "special accommodation request quiet room for upcoming booking add special request policy quiet room preferences fulfillment and documentation", "max\_results": 5\}\}TOOL CALL\.\{"name": "knowledge\_base\_search\_policy", "arguments": \{"query": "customer and user segmentation policy user type classification VIP tier corporate group hotel partner tags application", "max\_results": 5\}\}TOOL RESULT\.\{"snippets": \[\{"source": "pre\_stay\_support\.md", "score": 8660562799044329593, "vector\_distance": 0\.15443271398544312, "text": "\[\.\.\.\]"\}, \{"source": "booking\_modifications\.md", "score": 0, "vector\_distance": 0\.16684287786483765, "text": "\[\.\.\.\]"\}, \{"source": "corporate\_account\_services\.md", "score": 0, "vector\_distance": 0\.16709250211715698, "text": "\[\.\.\.\]"\}, \{"source": "post\_stay\_issues\.md", "score": 0, "vector\_distance": 0\.17119085788726807, "text": "\[\.\.\.\]"\}, \{"source": "quick\_reference\_tables\.md", "score": 0, "vector\_distance": 0\.175323486328125, "text": "\[\.\.\.\]"\}\]\}TOOL RESULT\.\{"snippets": \[\{"source": "customer\_user\_segmentation\.md", "score": 8084093113208930425, "vector\_distance": 0\.13471323251724243, "text": "\[\.\.\.\]"\}, \{"source": "escalation\_procedures\.md", "score": 0, "vector\_distance": 0\.16949689388275146, "text": "\[\.\.\.\]"\}, \{"source": "corporate\_account\_services\.md", "score": 0, "vector\_distance": 0\.1743016242980957, "text": "\[\.\.\.\]"\}, \{"source": "post\_stay\_issues\.md", "score": 0, "vector\_distance": 0\.17667973041534424, "text": "\[\.\.\.\]"\}, \{"source": "cancellations\_refunds\.md", "score": 0, "vector\_distance": 0\.1885695457458496, "text": "\[\.\.\.\]"\}\]\}ASSISTANT\.“Absolutely—I can help add a quiet room preference to your booking\. Quiet room requests arecomplimentaryand handled on abest\-effort, not guaranteedbasis\. VIP and platinum guests receive priority for room preferences\. \[pre\_stay\_support\.md\]\(markdown\) \[customer\_user\_segmentation\.md\]\(markdown\) Please send your booking reference and the email address used for the reservation\. Once I have that, I can look up the booking and proceed\.”USER\.“My booking reference is BKG\-44935348 and the email address used is marcus\.reid@outlook\.com\.”TOOL CALL\.\{"name": "booking\_api\_get\_booking", "arguments": \{"booking\_reference": "BKG\-44935348", "customer\_id": null\}\}TOOL CALL\.\{"name": "crm\_api\_get\_customer\_profile", "arguments": \{"customer\_id": null, "email": "marcus\.reid@outlook\.com"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "users", "$filter": "email eq ’marcus\.reid@outlook\.com’", "$orderby": null, "$skip": 0, "$top": 10, "$select": "id,name,email"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "tickets", "$filter": "booking\_reference eq ’BKG\-44935348’", "$orderby": "created\_at desc", "$skip": 0, "$top": 10, "$select": "id,subject,status,priority,type,booking\_reference, created\_at,updated\_at,tags,request\_type\_detail"\}\}TOOL RESULT\.\{"booking\_data": \{"id": "BKG\-00000006", "booking\_reference": "BKG\-44935348", "customer\_id": "CUS\-00000006", "hotel\_id": "HTL\-00012350", "check\_in\_date": "2025\-10\-07T15:00:00Z", "check\_out\_date": "2025\-10\-09T11:00:00Z", "booking\_value": "410\.00", "room\_type": "standard\_room", "board\_type": "with\_breakfast", "adults\_count": 2, "children\_count": 0, "booking\_status": "confirmed", "corporate\_account\_id": null, "group\_booking\_id": null, "modification\_history": \[\], "special\_requests": \[\], "created\_at": "2025\-09\-15T10:00:00Z", "updated\_at": "2025\-09\-15T10:00:00Z"\}\}TOOL RESULT\.\{"customer\_data": \{"id": "CUS\-00000006", "customer\_id": "CUS\-00000006", "email": "marcus\.reid@outlook\.com", "full\_name": "Marcus Reid", "vip\_tier": "vip", "loyalty\_program\_status": "silver", "lifetime\_value": "3250\.75", "total\_bookings\_count": 12, "preferences": \["quiet room", "high floor"\], "special\_notes": \["light sleeper, prefers rooms away from elevators"\], "complaint\_count": 0, "last\_booking\_date": "2025\-09\-15T10:00:00Z", "created\_at": "2024\-06\-01T10:00:00Z", "updated\_at": "2025\-09\-15T10:00:00Z"\}\}TOOL RESULT\.\{"items": \[\{"id": "USR\-10000007", "name": "Marcus Reid", "email": "marcus\.reid@outlook\.com"\}\]\}TOOL RESULT\.\{"items": \[\{"id": "TCK\-74016400", "subject": "Room preference request \- quiet room", "status": "open", "priority": "normal", "type": "task", "tags": \["special\-request", "room\-preference"\], "created\_at": "2025\-09\-30T13:00:00Z", "updated\_at": "2025\-09\-30T13:00:00Z", "booking\_reference": "BKG\-44935348", "request\_type\_detail": "add\-special\-request"\}\]\}TOOL CALL\.\{"name": "booking\_api\_modify\_booking", "arguments": \{"booking\_reference": "BKG\-44935348", "check\_in\_date": null, "check\_out\_date": null, "room\_type": null, "board\_type": null, "adults\_count": null, "children\_count": null, "special\_requests": \["quiet room"\], "booking\_status": null\}\}TOOL CALL\.\{"name": "zendesk\_update\_item", "arguments": \{"table": "tickets", "id": "TCK\-74016400", "item": \{"subject": "Room preference request \- quiet room", "description": "Customer requested a quiet room for booking BKG\-44935348\. Booking verified as confirmed for 2025\-10\-07 at hotel HTL\-00012350\. Customer classified as B2C with VIP tier vip\. Policy applied: room preference requests are complimentary, best effort, and not guaranteed; VIP customers receive priority fulfillment for room preferences\. Action taken: added quiet room to booking special requests\. Ticket reused from existing open request about same issue\. Final resolution: quiet room preference added on a best\-effort basis\.", "status": "solved", "priority": "normal", "type": "task", "requester\_id": "USR\-10000007", "assignee\_id": "AG\-83945", "tags": \["b2c\-customer", "check\-in\-upcoming", "vip\-customer", "repeat\-issue"\], "booking\_reference": "BKG\-44935348", "hotel\_id": "HTL\-00012350", "check\_in\_date": "2025\-10\-07T15:00:00Z", "booking\_value": 410, "request\_type\_detail": "add\-special\-request", "resolution\_action": "modification\-completed", "refund\_amount": 0, "corporate\_account\_id": null, "group\_booking\_id": null, "escalation\_reason": null\}\}\}TOOL RESULT\.\{"updated\_booking": \{"id": "BKG\-00000006", "booking\_reference": "BKG\-44935348", "customer\_id": "CUS\-00000006", "hotel\_id": "HTL\-00012350", "check\_in\_date": "2025\-10\-07T15:00:00Z", "check\_out\_date": "2025\-10\-09T11:00:00Z", "booking\_value": "410\.00", "room\_type": "standard\_room", "board\_type": "with\_breakfast", "adults\_count": 2, "children\_count": 0, "booking\_status": "confirmed", "corporate\_account\_id": null, "group\_booking\_id": null, "modification\_history": \["2025\-11\-25T10:00:00Z: special\_requests updated"\], "special\_requests": \["quiet room"\], "created\_at": "2025\-09\-15T10:00:00Z", "updated\_at": "2025\-11\-25T10:00:00Z"\}, "price\_difference": "0\.00"\}TOOL RESULT\.\{"item": \{"id": "TCK\-74016400", "subject": "Room preference request \- quiet room", "description": "Customer requested a quiet room for booking BKG\-44935348\. Booking verified as confirmed for 2025\-10\-07 at hotel HTL\-00012350\. Customer classified as B2C with VIP tier vip\. Policy applied: room preference requests are complimentary, best effort, and not guaranteed; VIP customers receive priority fulfillment for room preferences\. Action taken: added quiet room to booking special requests\. Ticket reused from existing open request about same issue\. Final resolution: quiet room preference added on a best\-effort basis\.", "status": "solved", "priority": "normal", "type": "task", "requester\_id": "USR\-10000007", "assignee\_id": "AG\-83945", "organization\_id": "ORG\-10000001", "tags": \["b2c\-customer", "check\-in\-upcoming", "vip\-customer", "repeat\-issue"\], "created\_at": "2025\-09\-30T13:00:00Z", "updated\_at": "2025\-10\-01T13:00:10Z", "due\_at": null, "booking\_reference": "BKG\-44935348", "hotel\_id": "HTL\-00012350", "check\_in\_date": "2025\-10\-07T15:00:00Z", "booking\_value": 410\.0, "request\_type\_detail": "add\-special\-request", "corporate\_account\_id": null, "group\_booking\_id": null, "resolution\_action": "modification\-completed", "refund\_amount": 0\.0, "escalation\_reason": null\}\}ASSISTANT\.“I’ve added thequiet roomrequest to your bookingBKG\-44935348\. It’s noted as acomplimentary, best\-effort preference, so the hotel will do its best to accommodate it, though it can’t be guaranteed in advance\. Since your stay is upcoming, the request is now attached to your reservation\. Thanks for contacting StayBridge support\.<DONE\>”

### E\.4Auto Insurance: Raw Identity\-Verification Boundary

Metadata\.UID:sandbox\_auto\_insurance\_group1\.py:test\_doc\_005; model: GPT\-5\.4; recorded result:true; reward: 1\.0\.

USER\.“Hi, I’m Maria Rodriguez, my date of birth is 1987\-03\-15, and my email is \[maria\.rodriguez@gmail\.com\]\(mailto:maria\.rodriguez@gmail\.com\)\. I need a copy of my insurance ID card, but I can’t remember my policy number or security answer right now—sorry\! Can you help me get my ID card?”TOOL CALL\.\{"name": "crm\_get\_customer\_by\_email", "arguments": \{"email": "maria\.rodriguez@gmail\.com"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "users", "$filter": "email eq ’maria\.rodriguez@gmail\.com’", "$orderby": null, "$skip": 0, "$top": 10, "$select": "id,name,email"\}\}TOOL RESULT\.\{"customer\_id": "CUS\-84729103", "first\_name": "Maria", "last\_name": "Rodriguez"\}TOOL RESULT\.\{"items": \[\{"id": "2847", "name": "Maria Rodriguez", "email": "maria\.rodriguez@gmail\.com"\}\]\}TOOL CALL\.\{"name": "crm\_get\_customer\_profile", "arguments": \{"customer\_id": "CUS\-84729103"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "tickets", "$filter": "requester\_id eq ’2847’ and status ne ’solved’ and status ne ’closed’", "$orderby": "created\_at desc", "$skip": 0, "$top": 20, "$select": "id,subject,status,request\_category,claims\_action\_type, type,requester\_id"\}\}TOOL RESULT\.\{"customer\_id": "CUS\-84729103", \\n "email": "maria\.rodriguez@gmail\.com", "first\_name": "Maria", "last\_name": "Rodriguez", "date\_of\_birth": "1987\-03\-15", "phone": "\(415\) 892\-3847", "tier": "Standard", "fraud\_flag": false, "security\_question": "What was the name of your first pet?", "has\_ssn\_on\_file": false\}TOOL RESULT\.\{"items": \[\]\}TOOL CALL\.\{"name": "zendesk\_create\_item", "arguments": \{"table": "tickets", "item": \{"subject": "Insurance ID card request", "description": "Customer requested a copy of insurance ID card via chat\. Identity check completed to partial verification only: CRM profile matched name Maria Rodriguez and DOB 1987\-03\-15 using email maria\.rodriguez@gmail\.com; no fraud flag\. Customer does not recall policy number or security answer, and no SSN is on file, so full verification could not be completed\. Unable to generate document at this time\.", "status": "open", "priority": "low", "type": "task", "requester\_id": "2847", "assignee\_id": "585", "organization\_id": null, "tags": null, "due\_at": null, "request\_category": "Documents", "claims\_action\_type": null, "effective\_date\_of\_change": null, "internal\_review\_type": null, "outcome\_summary": null, "escalation\_level": null, "user\_type": null\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "Insurance ID card request", "description": "Customer requested a copy of insurance ID card via chat\. Identity check completed to partial verification only: CRM profile matched name Maria Rodriguez and DOB 1987\-03\-15 using email maria\.rodriguez@gmail\.com; no fraud flag\. Customer does not recall policy number or security answer, and no SSN is on file, so full verification could not be completed\. Unable to generate document at this time\.", "status": "open", "priority": "low", "type": "task", "requester\_id": "2847", "assignee\_id": "585", "organization\_id": null, "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:05Z", "due\_at": null, "request\_category": "Documents", "claims\_action\_type": null, "effective\_date\_of\_change": null, "internal\_review\_type": null, "outcome\_summary": null, "escalation\_level": null, "user\_type": null\}\}ASSISTANT\.“I found your profile and confirmed your name and date of birth\. For an ID card request, I still needone secondary verification factorbefore I can release the document\. The options I can accept are:Policy numberorSecurity answer\. Once you send either one, I can continue with the ID card request\.”USER\.“I don’t have my policy number or security answer with me right now\. Is there another way I can verify my identity to get the ID card?”TOOL CALL\.\{"name": "zendesk\_update\_item", "arguments": \{"table": "tickets", "id": "6", "item": \{"subject": "Insurance ID card request", "description": "Customer requested a copy of insurance ID card via chat\. Identity check completed to partial verification only: CRM profile matched name Maria Rodriguez and DOB 1987\-03\-15 using email maria\.rodriguez@gmail\.com; no fraud flag\. Customer does not recall policy number or security answer, and no SSN is on file, so full verification could not be completed\. Customer later confirmed there is no alternate verification information available in chat\. Request cannot be fulfilled until a valid secondary verification factor is provided\.", "status": "pending", "priority": "low", "type": "task", "requester\_id": "2847", "assignee\_id": "585", "organization\_id": null, "tags": null, "due\_at": null, "request\_category": "Documents", "claims\_action\_type": null, "effective\_date\_of\_change": null, "internal\_review\_type": "Not Required", "outcome\_summary": "Pending – User Action", "escalation\_level": "Standard", "user\_type": "Named Insured"\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "Insurance ID card request", "description": "Customer requested a copy of insurance ID card via chat\. Identity check completed to partial verification only: CRM profile matched name Maria Rodriguez and DOB 1987\-03\-15 using email maria\.rodriguez@gmail\.com; no fraud flag\. Customer does not recall policy number or security answer, and no SSN is on file, so full verification could not be completed\. Customer later confirmed there is no alternate verification information available in chat\. Request cannot be fulfilled until a valid secondary verification factor is provided\.", "status": "pending", "priority": "low", "type": "task", "requester\_id": "2847", "assignee\_id": "585", "organization\_id": null, "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:10Z", "due\_at": null, "request\_category": "Documents", "claims\_action\_type": null, "effective\_date\_of\_change": null, "internal\_review\_type": "Not Required", "outcome\_summary": "Pending – User Action", "escalation\_level": "Standard", "user\_type": "Named Insured"\}\}ASSISTANT\.“I’m sorry, but not through chat for this request\. To release an insurance ID card, I need full verification\. The accepted secondary factors are: policy number, security answer, or last 4 of SSN\. Your profile does not have SSN verification available, so without the policy number or security answer I can’t issue the ID card right now\. I’ve placed this request on hold pending your verification information\. As soon as you return with either the policy number or the security answer, I can continue\.<DONE\>”

### E\.5Neobank Internal IT: Raw Office Wi\-Fi Trajectory

Metadata\.UID:sandbox\_neobank\_support\_v1\_group1\.py:test\_ei\_008; model: GPT\-5\.4; recorded result:true; reward: 1\.0\.

USER\.“Hey, I’m having trouble with Wi\-Fi at the SF office\. I can’t stay connected to VDB\-Corporate Wi\-Fi—it keeps disconnecting every few minutes, but my coworkers nearby seem fine\. My email is daniel\.wright@vdb\.com\. Can you help?”TOOL CALL\.\{"name": "knowledge\_base\_search\_policy", "arguments": \{"query": "single employee office Wi\-Fi connectivity issue troubleshooting workflow corporate office one employee impacted ticket type priority troubleshooting steps", "max\_results": 5\}\}TOOL CALL\.\{"name": "workday\_api\_get\_employee", "arguments": \{"email": "daniel\.wright@vdb\.com"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "users", "$filter": "email eq ’daniel\.wright@vdb\.com’", "$orderby": null, "$skip": 0, "$top": 5, "$select": "id,name,email"\}\}TOOL RESULT\.\{"snippets": \[\{"source": "employee\_infrastructure\_troubleshooting\.md", "score": 0, "vector\_distance": 0\.126733660697937, "text": "\[\.\.\.\]"\}, \{"source": "hardware\_provision\_and\_replacement\.md", "score": 0, "vector\_distance": 0\.16374951601028442, "text": "\[\.\.\.\]"\}, \{"source": "security\_and\_incident\_response\.md", "score": 4042051012700143737, "vector\_distance": 0\.16753476858139038, "text": "\[\.\.\.\]"\}, \{"source": "password\_mfa\_account\_access\.md", "score": 2889111916444123257, "vector\_distance": 0\.17249107360839844, "text": "\[\.\.\.\]"\}, \{"source": "access\_to\_tools\.md", "score": 0, "vector\_distance": 0\.17417937517166138, "text": "\[\.\.\.\]"\}\]\}TOOL RESULT\.\{"employee\_id": "WD\-415738", "email": "daniel\.wright@vdb\.com", "full\_name": "Daniel Wright", "level": 4, "department": "sales", "role": "Account Executive", "office\_location": "sf", "start\_date": "2022\-04\-01T00:00:00Z", "manager\_id": "WD\-637284", "employment\_status": "active", "is\_contractor": false\}TOOL RESULT\.\{"items": \[\{"id": "6", "name": "Daniel Wright", "email": "daniel\.wright@vdb\.com"\}\]\}TOOL CALL\.\{"name": "zendesk\_create\_item", "arguments": \{"table": "tickets", "item": \{"subject": "SF office Wi\-Fi disconnecting for Daniel Wright", "description": "Employee reports intermittent disconnects from VDB\-Corporate Wi\-Fi at the SF office every few minutes\. Coworkers nearby are not affected, indicating a single\-employee office Wi\-Fi issue\. Provided troubleshooting steps: verify correct network, forget and reconnect to VDB\-Corporate, restart laptop, and test connectivity after reconnecting\. If issue persists after troubleshooting, escalate to IT Operations\.", "status": "open", "priority": "normal", "type": "problem", "requester\_id": "6", "assignee\_id": "2", "organization\_id": "1", "tags": null, "due\_at": null, "resolution\_category": null, "owner": "it\_support", "access\_expiry\_date": null, "approval\_required": "no", "approval\_status": "not\_required", "approver\_id": null, "approval\_request\_ids": null, "business\_justification": null, "incident\_severity": null, "customer\_impact": null, "asset\_id": null\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "SF office Wi\-Fi disconnecting for Daniel Wright", "description": "Employee reports intermittent disconnects from VDB\-Corporate Wi\-Fi at the SF office every few minutes\. Coworkers nearby are not affected, indicating a single\-employee office Wi\-Fi issue\. Provided troubleshooting steps: verify correct network, forget and reconnect to VDB\-Corporate, restart laptop, and test connectivity after reconnecting\. If issue persists after troubleshooting, escalate to IT Operations\.", "status": "open", "priority": "normal", "type": "problem", "requester\_id": "6", "assignee\_id": "2", "organization\_id": "1", "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:05Z", "due\_at": null, "resolution\_category": null, "owner": "it\_support", "access\_expiry\_date": null, "approval\_required": "no", "approval\_status": "not\_required", "approver\_id": null, "approval\_request\_ids": null, "business\_justification": null, "incident\_severity": null, "customer\_impact": null, "asset\_id": null\}\}ASSISTANT\.“Yes—since it’s only affecting you and not others nearby, let’s start with a few quick checks: 1\. Make sure you’re connected toVDB\-Corporateand notVDB\-Guest; 2\.Forgetthe VDB\-Corporate network, then reconnect; 3\.Restart your laptop; 4\. After reconnecting, test again for a few minutes to see whether the drops stop\. If it still disconnects after that, I’ll route it for deeper investigation\. \[employee\_infrastructure\_troubleshooting\.md\]\(employee\_infrastructure\_troubleshooting\.md\)”USER\.“Got it, I’ll try those steps later today and report back if the issue continues\. Thanks\.”TOOL CALL\.\{"name": "zendesk\_update\_item", "arguments": \{"table": "tickets", "id": "6", "item": \{"subject": "SF office Wi\-Fi disconnecting for Daniel Wright", "description": "Employee reports intermittent disconnects from VDB\-Corporate Wi\-Fi at the SF office every few minutes\. Coworkers nearby are not affected, indicating a single\-employee office Wi\-Fi issue\. Troubleshooting steps provided: verify correct network, forget and reconnect to VDB\-Corporate, restart laptop, and test connectivity after reconnecting\. Employee will try the steps later today and report back if the issue continues\.", "status": "hold", "priority": "normal", "type": "problem", "requester\_id": "6", "assignee\_id": "2", "organization\_id": "1", "tags": null, "due\_at": null, "resolution\_category": null, "owner": "it\_support", "access\_expiry\_date": null, "approval\_required": "no", "approval\_status": "not\_required", "approver\_id": null, "approval\_request\_ids": null, "business\_justification": null, "incident\_severity": null, "customer\_impact": null, "asset\_id": null\}\}\}TOOL RESULT\.\{"item": \{"id": "6", "subject": "SF office Wi\-Fi disconnecting for Daniel Wright", "description": "Employee reports intermittent disconnects from VDB\-Corporate Wi\-Fi at the SF office every few minutes\. Coworkers nearby are not affected, indicating a single\-employee office Wi\-Fi issue\. Troubleshooting steps provided: verify correct network, forget and reconnect to VDB\-Corporate, restart laptop, and test connectivity after reconnecting\. Employee will try the steps later today and report back if the issue continues\.", "status": "hold", "priority": "normal", "type": "problem", "requester\_id": "6", "assignee\_id": "2", "organization\_id": "1", "tags": \[\], "created\_at": "2025\-10\-01T13:00:05Z", "updated\_at": "2025\-10\-01T13:00:10Z", "due\_at": null, "resolution\_category": null, "owner": "it\_support", "access\_expiry\_date": null, "approval\_required": "no", "approval\_status": "not\_required", "approver\_id": null, "approval\_request\_ids": null, "business\_justification": null, "incident\_severity": null, "customer\_impact": null, "asset\_id": null\}\}ASSISTANT\.“Sounds good—I’ve noted that you’ll try the steps later today\. If the Wi\-Fi still keeps dropping afterward, I’ll take it to the next step\.<DONE\>”

### E\.6Consulting IT/HR: Raw Phase\-2 Onboarding Trajectory

Metadata\.UID:sandbox\_consulting\_group1\.py:test\_onb\_005; model: GPT\-5\.4; recorded result:true; reward: 1\.0\.

USER\.“Hi, I have an open ticket to complete Phase 2 of my onboarding\. You enrolled me in the first two courses, but I had to leave before we could do the other two\. Could you help me enroll in Data Privacy and Anti\-harassment? Also: I haven’t finished any of them yet, but do I need to contact you again when I’m done so you can close the ticket?”ASSISTANT\.“Absolutely—I can help with the Data Privacy and Anti\-harassment enrollments on your existing onboarding ticket\. You donotneed to create a new request when you finish the courses\. Just reply on the same ticket once you’ve completed them, and we can update it from there\. To pull up the right open ticket and continue the enrollment, please send either yourMSG corporate email, or theticket number\.”USER\.“My MSG corporate email is billy\.bishop@msg\.com\.”TOOL CALL\.\{"name": "workday\_api", "arguments": \{"action": "get\_employee", "email": "billy\.bishop@msg\.com"\}\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "users", "$filter": "email eq ’billy\.bishop@msg\.com’", "$orderby": null, "$skip": 0, "$top": 10, "$select": "id,name,email"\}\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "search\_courses", "keyword": "Data Privacy", "category": null, "course\_id": null, "email": null, "certification\_name": null, "client\_id": null\}\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "search\_courses", "keyword": "Anti\-harassment", "category": null, "course\_id": null, "email": null, "certification\_name": null, "client\_id": null\}\}TOOL RESULT\.\{"employee\_data": \{"email": "billy\.bishop@msg\.com", "name": "Billy Bishop", "level": "Analyst", "office\_location": "San Francisco", "start\_date": "2025\-09\-25T00:00:00", "manager\_email": "michael\.chen@msg\.com", "partner\_email": "jennifer\.williams@msg\.com", "onboarding\_phase": "day\_3\_7\_provisioning", "availability\_status": "available"\}\}TOOL RESULT\.\{"items": \[\{"id": "8", "name": "Billy Bishop", "email": "billy\.bishop@msg\.com"\}\]\}TOOL RESULT\.\{"courses": \[\{"id": "CRS\-1001003", "title": "Data Privacy", "cost": 0, "training\_category": "must\_have", "prerequisites": \[\]\}\]\}TOOL RESULT\.\{"courses": \[\{"id": "CRS\-1001004", "title": "Anti\-harassment", "cost": 0, "training\_category": "must\_have", "prerequisites": \[\]\}\]\}TOOL CALL\.\{"name": "zendesk\_get\_items", "arguments": \{"table": "tickets", "$filter": "requester\_id eq ’8’", "$orderby": "created\_at desc", "$skip": 0, "$top": 20, "$select": "id,subject,status,priority,type,description, tags,requester\_id,course\_id"\}\}TOOL RESULT\.\{"items": \[\{"id": "1847", "subject": "Mandatory Phase 2 onboarding training", "description": "Enrolled: Ethics & Code of Conduct, Security Awareness\. Not yet enrolled: Data Privacy, Anti\-harassment\. Completed: None\.", "status": "open", "priority": "normal", "type": "task", "requester\_id": "8", "tags": \["onboarding"\], "course\_id": "CRS\-1001001,CRS\-1001002"\}\]\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "check\_enrollment", "keyword": null, "category": null, "course\_id": "CRS\-1001003", "email": null, "certification\_name": null, "client\_id": null\}\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "check\_enrollment", "keyword": null, "category": null, "course\_id": "CRS\-1001004", "email": null, "certification\_name": null, "client\_id": null\}\}TOOL RESULT\.\{"available\_seats": 99999\}TOOL RESULT\.\{"available\_seats": 99999\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "enroll\_employee", "keyword": null, "category": null, "course\_id": "CRS\-1001003", "email": "billy\.bishop@msg\.com", "certification\_name": null, "client\_id": null\}\}TOOL CALL\.\{"name": "degreed\_api", "arguments": \{"action": "enroll\_employee", "keyword": null, "category": null, "course\_id": "CRS\-1001004", "email": "billy\.bishop@msg\.com", "certification\_name": null, "client\_id": null\}\}TOOL RESULT\.\{"success": true\}TOOL RESULT\.\{"success": true\}TOOL CALL\.\{"name": "zendesk\_update\_item", "arguments": \{"table": "tickets", "id": "1847", "item": \{"subject": "Mandatory Phase 2 onboarding training", "description": "Enrolled in all Phase 2 onboarding courses: Ethics & Code of Conduct \(CRS\-1001001\), Security Awareness \(CRS\-1001002\), Data Privacy \(CRS\-1001003\), and Anti\-harassment \(CRS\-1001004\)\. Course completion is still pending\.", "status": "pending", "priority": "normal", "type": "task", "requester\_id": "8", "assignee\_id": "157", "organization\_id": null, "tags": \["onboarding"\], "due\_at": null, "engagement\_code": null, "approval\_required": "no", "approver\_id": null, "asset\_id": null, "catalog\_id": null, "client\_id": null, "expense\_report\_id": null, "course\_id": "CRS\-1001001,CRS\-1001002,CRS\-1001003,CRS\-1001004", "folder\_id": null, "device\_type": null, "hardware\_order\_id": null, "access\_type": null, "license\_pool": null\}\}\}TOOL RESULT\.\{"item": \{"id": "1847", "subject": "Mandatory Phase 2 onboarding training", "description": "Enrolled in all Phase 2 onboarding courses: Ethics & Code of Conduct \(CRS\-1001001\), Security Awareness \(CRS\-1001002\), Data Privacy \(CRS\-1001003\), and Anti\-harassment \(CRS\-1001004\)\. Course completion is still pending\.", "status": "pending", "priority": "normal", "type": "task", "requester\_id": "8", "assignee\_id": "157", "organization\_id": null, "tags": \["onboarding"\], "created\_at": "2025\-09\-29T14:30:00Z", "updated\_at": "2025\-10\-01T13:00:10Z", "due\_at": null, "engagement\_code": null, "approval\_required": "no", "approver\_id": null, "asset\_id": null, "catalog\_id": null, "client\_id": null, "expense\_report\_id": null, "course\_id": "CRS\-1001001,CRS\-1001002,CRS\-1001003,CRS\-1001004", "folder\_id": null, "device\_type": null, "hardware\_order\_id": null, "access\_type": null, "license\_pool": null\}\}ASSISTANT\.“I’ve added you toData PrivacyandAnti\-harassmenton your existing onboarding ticket and updated it topendingwhile you complete the courses\. For the second part:yes—once you finish the courses, reply on that same ticket and we’ll update/close it from there\. Ticket updated:\#1847\.<DONE\>”

Similar Articles

Most AI agents fail because people build them like chatbots

Reddit r/AI_Agents

Many AI agent implementations fail because they treat agents like chatbots, relying on chat history for state rather than using deterministic data structures. The article advocates for separating reasoning (LLM), actions (tools), workflow progress (state machine), and external triggers (webhooks) to build reliable business agents.

AI agents feel impressive until the workflow gets messy

Reddit r/AI_Agents

A reflection on AI agents: impressive for narrow supervised tasks but fragile and unreliable in long-running, messy workflows due to issues like session expiration, context drift, and silent failures.

AI systems often fail in ways that don’t show up in testing?

Reddit r/AI_Agents

Discusses the common gap between clean benchmark-style testing environments and messy real-world usage in AI workflows, leading to production failures, and mentions evaluation platforms like Confident AI, Braintrust, and Langfuse.