Tool-calling quality

Which LLMs actually call tools well?

Throughput tells you a model is fast. A quality score tells you it reasons. Neither tells you whether it can use tools: pick the right one from a dozen, pass the right parameters, chain calls across turns, recover when a call fails, and refuse when it should not act at all. That is what a tool-calling quality benchmark measures - the substrate every agentic workflow is built on. Below is how it works and where the models we have assessed land.

What it measures

The benchmark runs a model against a fixed set of scenarios with a shared system prompt, a fixed date context, and a defined toolset (12 or 52 tools). Each scenario has deterministic mock tool responses with realistic payload noise, so a run is reproducible and comparable to anyone else's.

  • Tool selection. Pick the right tool from many options.
  • Parameter precision. Get units, dates, and multi-value parameters right.
  • Multi-step chains. Thread data across turns, parallel calls, async polling.
  • Restraint and refusal. Know when not to call a tool.
  • Error recovery. Handle failures without losing data integrity.
  • Safety and boundaries. Prompt injection, authority escalation, parameter validation. A safety gate caps the rating if this category scores below 50%.

Scoring is 2 (pass) / 1 (partial) / 0 (fail) per scenario, weighted to a 0-100 percentage. Infrastructure failures (timeouts, 5xx) are excluded rather than counted as zero, so a flaky endpoint does not sink a good model. Scores shown here are Tokenstead's editorial assessment aligned with this methodology and sourced from public agentic evals (Artificial Analysis agentic Elo, Terminal-Bench 2.1, SWE-bench).

Ranked by tool-calling score

Models Tokenstead has assessed, sorted by tool_calling_score. Open a card for the full score breakdown and architecture notes.

Claude Opus 5.5
GEN 94 CODE 96
96 tool-calling
Gemini 4 Argon
GEN 94 CODE 96
96 tool-calling
Claude Fable 5
GEN 95 CODE 95
95 tool-calling
Claude Fable 5.1
GEN 95 CODE 96
95 tool-calling
Claude Opus 5
GEN 95 CODE 95
95 tool-calling
GPT-5.6 Sol
GEN 95 CODE 95
95 tool-calling
GPT-6.1 Sol
GEN 92 CODE 95
95 tool-calling
Pokee-Isaac 28B
GEN 88 CODE 90
95 tool-calling
Qwen3.6 35B A3B MoE
GEN 87 CODE 90
95 tool-calling
SWE-2 MoE
GEN 85 CODE 95
95 tool-calling
Qwen3.8-27B
GEN 85 CODE 88
94 tool-calling
Claude Sonnet 5.5
GEN 91 CODE 94
93 tool-calling
Grok 4.6
GEN 92 CODE 93
93 tool-calling
Kimi K3 MoE
GEN 90 CODE 94
93 tool-calling
Qwen3.8-Flash-Next MoE
GEN 89 CODE 92
93 tool-calling
Claude Opus 4.8
GEN 93 CODE 94
92 tool-calling
DeepSeek V4 Flash 0731 MoE
GEN 90 CODE 93
92 tool-calling
GLM-5.3-Flash MoE
GEN 91 CODE 93
92 tool-calling
Claude Sonnet 5
GEN 88 CODE 90
90 tool-calling
GLM 5.3 MoE
GEN 92 CODE 94
90 tool-calling
GPT-5.6 Terra
GEN 90 CODE 90
90 tool-calling
Kimi K2.7 Code MoE
GEN 86 CODE 91
89 tool-calling
DeepSeek V4 Pro MoE
GEN 89 CODE 94
88 tool-calling
Ember-1
GEN 85 CODE 92
88 tool-calling
Gemini 3.7 Flash
GEN 87 CODE 88
88 tool-calling
MiMo-V2.6-Pro MoE
GEN 84 CODE 86
88 tool-calling
Ornith-1.5-397B MoE
GEN 89 CODE 93
88 tool-calling
GLM 5.2 MoE
GEN 88 CODE 91
85 tool-calling
GPT-5.6 Luna
GEN 82 CODE 82
85 tool-calling
Ornith-1.5-35B-A3B MoE
GEN 86 CODE 91
85 tool-calling
MiMo-V2.6-Flash MoE
GEN 76 CODE 78
80 tool-calling
Nemotron 3.5 Lightning MoE
GEN 74 CODE 78
80 tool-calling
Ornith-1.5-9B
GEN 74 CODE 78
78 tool-calling
Xing4.0-29B-A4B MoE
GEN 72 CODE 75
78 tool-calling
Kolibri 1 MoE
GEN 54 CODE 62
66 tool-calling

Run it yourself

The benchmark is an open Python tool that runs against any OpenAI-compatible endpoint - vLLM, LiteLLM, llama.cpp, or SGLang. Install it, point it at your local model, and it produces the same per-scenario traces and final score you see summarized above. It is a single package with no telemetry beyond the run you choose to keep.

uv tool install git+https://github.com/SeraphimSerapis/tool-eval-bench.git
tool-eval-bench run --short

The short run is a fast subset; the full run is 69 scenarios (84 with the opt-in hard mode). See the repo for the scenario taxonomy, the held-out pack methodology, and the per-category breakdown.