ToolBottleneckBench: Measuring Tool-Agent Performance under Controlled Pressures and Fixed Harness Budgets
Organizations: University of Osaka · Initial S · Nagoya University
Abstract
The success score of a tool agent reflects both its model and the budgets of the harness that runs it. We present ToolBottleneckBench, a benchmark that measures tool-agent performance under controlled pressures and fixed harness budgets. Synthetic enterprise tasks stay fixed while one pressure varies: the registered tool catalog, the visible tool menu, the certified workflow, or the encoding of returned records. An exact grader records the first unmet obligation of each failed episode and the harness limit, if any, that ended it. Across 21 model and harness configurations, the visible menu is the only one of the three pressures that act on the model with a large penalty, and this penalty tracks truncation at the completion cap. Raising the cap sixteenfold removes most of the penalty in the truncation-heavy configurations. Most failures end at a harness limit, and the failure record identifies the assigned pressure no more reliably than a count of tool calls. The repairs that help change which tools reach the model or who issues the calls, and only two repairs, neither improving model behavior, beat every configuration switch. We recommend reporting pressure effects with the harness budgets under which they were measured. We release the benchmark at https://github.com/zichuanxu/tool-bottleneck-bench.
Figures & tables
| Layer | Levels | What the variant changes (measured) |
|---|---|---|
| catalog | 32, 512, 2,048 tools | catalog the retriever searches; required-tool availability at : flat 19.4%, connector-first 77.8% |
| menu | 8, 32, 128 tools | schema bytes per exposure 3,481 / 13,820 / 55,176; mean prompt tokens per episode (fixed menu) 15,714 at and 37,659 at |
| workflow | low, medium, high | certified program length; mean attempted calls 3.7 / 5.8 / 7.2 |
| returned state | raw, compact, typed, linked | encoding of returned records; mean observation bytes 1,214 / 1,471 / 1,351 / 1,533 |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Field | Setting |
|---|---|
| Tool protocol | Native Chat Completions tools |
| Tool choice | Automatic; parallel-call flag false when sent |
| Temperature | Requested 0 unless the frozen profile omits it |
| Seed | Condition-bound unless the frozen profile omits it |
| Completion cap | 1,024 tokens per request |
| Cap parameter | max_tokens on Chat Completions routes; renamed max_output_tokens with the same value where a Responses transport was used; on routes that count reasoning tokens it bounds reasoning, visible text, and arguments together |
| First unmet obligation (emitted) | Episodes | Terminal flag (failures) | Count | Share (%) |
|---|---|---|---|---|
| availability | 0 | Completion cap | 1,068 | 28.7 |
| selection | 849 | Episode budget or call limit | 1,863 | 50.0 |
| workflow | 1,517 | Turn limit | 0 | 0.0 |
| answer | 1,340 | Infeasibility stop | 477 | 12.8 |
| evidence | 3 | Wrong conclusion | 204 | 5.5 |
| safety | 6 | Other contract failure | 113 | 3.0 |
| Configuration | Org. | Blocks | Base VTS | eff. routed | eff. fixed | eff. | Trunc. | USD |
|---|---|---|---|---|---|---|---|---|
| Claude Haiku 5.5 | Anthropic | CASM | 94.4 | 7.6 | 2.8 | 6.2 | 6.2 | 3.44 |
| Claude Opus 5 | Anthropic | CASM | 94.4 | 1.4 | 1.4 | 1.4 | 0.0 | 165.18 |
| Claude Opus 5.5 | Anthropic | CASM | 97.2 | 0.0 | 1.4 | 0.0 | 0.0 | 130.52 |
| Claude Sonnet 5 | Anthropic | CASM | 93.1 | 9.0 | 4.2 | 11.8 | 9.0 | 66.45 |
| Claude Sonnet 5.5 | Anthropic | CASM | 94.4 | 0.0 | 1.4 | 1.4 | 0.0 | 66.51 |
| GPT-5.6 Luna | OpenAI | CAE | 95.8 | 2.8 | 16.7 | 2.8 | 0.0 | 1.81 |
| Block | Cfg. | Rows | Measure |
| Capacity factorial | 21 | 12,096 | VTS |
| Discovery ( ) | 21 | 4,536 | ITT |
| Prompt repairs | 20 | 2,880 | VTS |
| Sentinel repeats | 20 | 1,440 | VTS |
| Workflow frontier | 20 | 320 | VTS |
| Structural holdout | 17 | 3,672 | VTS |
| 36 families | 21 configurations | 12 intents | ||||||
|---|---|---|---|---|---|---|---|---|
| Contrast | Est. | 95% CI | Holm | 95% CI | Holm | 95% CI | Holm | exact Holm |
| : 128 8 | 12.3 | [ 14.6, 9.9] | .001 | [ 19.8, 5.7] | .011 | [ 14.7, 9.7] | .001 | .004 |
| : high low | 0.8 | [ 1.2, 2.8] | .836 | [ 4.6, 6.5] | 1.000 | [ 1.2, 3.1] | .624 | .949 |
| : compact raw | 3.7 | [ 5.7, 1.9] | .003 | [ 5.0, 2.5] | .001 | [ 5.7, 1.7] | .002 | .068 |
| : typed raw | 0.7 | [ 2.4, 0.9] | .836 | [ 2.6, 1.1] | 1.000 | [ 1.7, 0.1] | .624 | .949 |
| : linked raw | 1.4 | [ 2.9, 0.1] | .301 | [ 2.8, 0.0] | .295 | [ 2.7, 0.03] | .177 | .386 |
| Trunc. (%) | Menu contrast (pp) | Dis. | ||||
|---|---|---|---|---|---|---|
| Config. stratum | 1,024 | 4,096 | at 1,024 | at 4,096 | Interaction | (%) |
| GLM-5.3 Flash B | 35.8 | 25.3 | 32.3 [ 39.2, 25.7] | 24.3 [ 30.6, 18.4] | 8.0 [2.1, 14.2] | 19.4 |
| Qwen3.8 Flash B | 28.8 | 20.2 | 14.9 [ 22.2, 7.6] | 18.3 [ 26.8, 10.3] | 3.9 [ 11.6, 3.8] | 24.8 |
| GPT-5.6 Luna N | 0.0 | 0.0 | 0.0 [ 3.8, 3.8] | 0.3 [ 4.5, 3.5] | 0.3 [ 4.5, 3.8] | 6.9 |
| DeepSeek V4 Flash 0731 S | 46.9 | 31.2 | 0.7 [ 8.7, 9.7] | 2.1 [ 8.3, 11.8] | 1.4 [ 8.3, 11.1] | 39.8 |
| Stratum B (2 cfg.) | 23.6 [ 28.5, 18.8] | 21.3 [ 26.7, 16.1] | 2.1 [ 2.6, 6.8] | |||
| Content of the truncated response | ||||||
| Configuration | First req. | Truncated | Reasoning only | Partial call | Partial text | Both |
| Claude Haiku 5.5 | 240 | 15 | 11 | 4 | 0 | 0 |
| Claude Opus 5 | 241 | 0 | 0 | 0 | 0 | 0 |
| Claude Opus 5.5 | 240 | 0 | 0 | 0 | 0 | 0 |
| Claude Sonnet 5.5 | 240 | 0 | 0 | 0 | 0 | 0 |
| GPT-6 Luna | 240 | 0 | 0 | 0 | 0 | 0 |
| Trunc. (%) | Menu contrast (pp) | Rel. | Dis. | ||||
| Config. stratum | 1,024 | 16,384 | at 1,024 | at 16,384 | Interaction | (pp) | (%) |
| DeepSeek V4 Pro 0813 B | 31.9 | 0.0 | 29.5 [ 38.9, 20.8] | 0.7 [ 1.0, 2.8] | 30.2 [21.2, 39.6] | 24.3 | 11.3 |
| GLM-5.3 B | 69.8 | 1.4 | 61.8 [ 70.5, 52.8] | 2.8 [ 7.6, 1.7] | 59.0 [49.7, 68.1] | 53.5 | 16.8 |
| GLM-5.3 Flash B | 37.5 | 0.0 | 35.1 [ 44.4, 25.3] | 3.8 [ 7.6, 0.3] | 31.2 [21.5, 41.0] | 28.5 | 14.6 |
| Gemini 3.8 Flash B | 64.9 | 0.0 | 62.8 [ 72.9, 52.4] | 2.1 [ 6.2, 0.0] | 60.8 [49.0, 71.5] | 52.1 | 7.8 |
| Qwen3.7 Flash B | 51.4 | 0.0 | 46.5 [ 56.6, 36.5] | 4.2 [ 8.3, 0.7] | 42.4 [31.9, 53.1] | 34.7 | 14.9 |
| Orchestration | Delivery | Calls | Rows | VTS | Req. | Ctrl. | Model | Exec. | Tokens | Over budget |
|---|---|---|---|---|---|---|---|---|---|---|
| Model | native | 2 | 816 | 96.7 | 3.1 | 0.0 | 2.2 | 2.2 | 7,227 | 0 |
| Model | canonical | 2 | 816 | 96.7 | 3.1 | 0.0 | 2.2 | 2.2 | 7,366 | 0 |
| Controller | native | 2 | 816 | 97.4 | 2.1 | 1.0 | 1.2 | 2.2 | 5,169 | 0 |
| Model | native | 30 | 408 | 0.0 | 19.8 | 0.0 | 18.9 | 18.9 | 130,468 | 389 |
| Model | canonical | 30 | 408 | 0.0 | 18.9 | 0.0 | 18.0 | 18.0 | 130,998 | 385 |
| Controller | native | 30 | 408 | 96.6 | 2.2 | 28.7 | 1.2 | 29.9 | 21,159 | 3 |
| Recall (%) | Returned state | ||||
|---|---|---|---|---|---|
| Decoder | Balanced acc. [95% CI] | recovered | |||
| Constant (majority) | 33.3 [33.3, 33.3] | 100.0 | 0.0 | 0.0 | 0/12 |
| Termination flag | 48.5 [43.0, 55.4] | 92.0 | 53.6 | 0.0 | 0/12 |
| First unmet obligation | 53.4 [44.6, 60.1] | 85.1 | 75.0 | 0.0 | 0/12 |
| Obligation + termination | 48.9 [42.4, 58.9] | 88.5 | 50.0 | 8.3 | 1/12 |
| + trace shape | 51.3 [44.8, 57.0] | 93.1 | 60.7 | 0.0 | 0/12 |
| (activated) | vs. every switch | ||||||
|---|---|---|---|---|---|---|---|
| Repair (layer; cfg.) | ( ) | Holm | Succ. | Pareto | Cost | ||
| Router ( ; 21 cfg.) | 79.6 [60.4, 94.2] | 58.1 [36.1, 79.9] | 58.1 [36.1, 79.6] | .001 (yes) | 21/21 | 21/21 | 0/21 |
| Routed menu ( ; 21 cfg.) | 17.5 [14.9, 20.2] | 4.9 [2.6, 7.0] | 4.9 [2.2, 7.5] | .003 (yes) | 0/21 | 9/21 | 1/21 |
| Workflow prompt ( ; 20 cfg.) | 2.4 [ 0.4, 5.0] | 1.7 [ 0.6, 3.8] | 0.0 [ 2.4, 2.4] | .949 (no) | 0/20 | 10/20 | 1/20 |
| Interface guide ( ; 20 cfg.) | 1.5 [ 0.1, 3.1] | 0.1 [ 1.5, 1.9] | 0.7 [ 1.7, 3.1] | .949 (no) | 0/20 | 9/20 | 1/20 |
| Controller ( ; 17 cfg.) held-out; column: | 96.1 [93.6, 98.0] | 96.6 [94.6, 98.5] | 95.3 [92.4, 97.8] | .001 (yes) | 17/17 | 17/17 | 4/17 |
| Success, % (blocks) | After failed probe | USD per 1,000 conditions | |||||
|---|---|---|---|---|---|---|---|
| Action or policy | Pooled | DeepSeek V4 Flash 0731 | Qwen3.8 Flash | Recovered | Retain-then-act | With probe | No probe |
| Retain incumbent (probe) | 66.1 (127/192) | 49.0 (47/96) | 83.3 (80/96) | 0.0 (0/65) | 66.1 (127/192) | 2.68 | |
| Unchanged retry | 67.7 (130/192) | 52.1 (50/96) | 83.3 (80/96) | 24.6 (16/65) | 74.5 (143/192) | 5.38 | 2.70 |
| Larger completion cap | 73.4 (141/192) | 55.2 (53/96) | 91.7 (88/96) | 41.5 (27/65) | 80.2 (154/192) | 5.76 | 3.09 |
| Public-description router | 78.6 (151/192) | 66.7 (64/96) | 90.6 (87/96) | 61.5 (40/65) | 87.0 (167/192) | 4.14 | 1.46 |
| Public-handoff controller | 71.9 (138/192) | 56.2 (54/96) | 87.5 (84/96) | 35.4 (23/65) | 78.1 (150/192) | 5.24 | 2.56 |
| Concurrent menu (12 cfg., 32 scenarios, 384 blocks) | +10 distractors scope | All tools scope |
| Full success (pp) | 0.5 [ 1.8, 0.8] | 2.9 [ 7.0, 0.5] |
| Similarity (pp) | 1.6 [ 0.8, 4.0] | 0.2 [ 5.5, 4.5] |
| Tokens per episode | 5,322 [4,622, 6,018] | 16,916 [15,021, 18,676] |
| Model requests | 0.38 [0.22, 0.54] | 0.86 [0.56, 1.18] |
| Duration (s) | 1.07 [0.28, 1.85] | not estimated : continuation-only segment is not a complete episode duration |
| Historical menu (5 cfg.): stress-arm similarity contrast (pp) | 0.7 [ 5.2, 3.9] | |
| Property | FBG | TMB | AFT | TRB | AFB | HB | MoH | LRB | CAF | TSB | TBB |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Same-goal controlled contrast | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – | ✓ | ✓ | ✓ | ✓ |
| Separate availability estimand | p | ✓ | p | – | – | – | – | p | – | – | ✓ |
| Crossed factors within one goal | ✓ | ✓ | p | p | – | ✓ | – | ✓ | ✓ | – | ✓ |
| Certified stateful horizon | p | p | p | – | ✓ | p | – | p | – | p | ✓ |
| Observation-format factor | p | – | ✓ | ✓ | p | – | – | ✓ | – | – | ✓ |
| Exact executable grading | ✓ | p | ✓ | ✓ | ✓ | p | – | p | – | p | ✓ |
Tool-Use Evaluation
Tool-use evaluation measures whether AI agents select, call, and rely on tools correctly, efficiently, and safely across realistic tasks.
See all 97 papers