Skip to main content Announcing Tool Gateway MCP: the universal MCPRead the announcement
Guillaume Lebedel Guillaume Lebedel · · 8 min
Two failure paths compared: a malformed structured JSON call triggers retry, fallback routing and coordination overhead, while a Natural Language Tools answer always parses and a wrong selection costs one turn

Natural Language Tools vs function calling: 14 models tested

Table of Contents

Natural Language Tools present an agent’s tools as plain prompt text answered YES or NO, instead of JSON schemas. In a July 2026 replication across 14 models and 8,560 trials, NLT picked the right tool 62.3% of the time against 47.4% for structured function calling, with 93% fewer critical errors and 25.2% fewer tokens.

That average is the weakest number in the paper. Eleven models improved, three got worse, and the spread between best and worst case is 77 percentage points. The usable finding for anyone building agents is that tool format behaves like a per-model setting that has to be measured, and most teams have never measured it once.

What are Natural Language Tools for AI agents?

Natural Language Tools, or NLT, are tool definitions written as ordinary prompt text rather than machine-readable schemas. The model reads a list of capability names and answers YES or NO to each one. The framework comes from Johnson et al. (2025), and a July 2026 replication study by Somma, Plante and Premji validated it independently across a wider model set.

No new decoding mode is involved, and no fine-tuning. The tool list is text in the prompt, the answer is text in the completion, and the runtime is unchanged.

How do Natural Language Tools differ from structured function calling?

Structured function calling asks the model to emit a JSON object matching a declared schema, so a missing brace or an invented field name fails before any tool runs. NLT asks for a word from a two-word vocabulary, which makes the parse step close to unfailable. The structured arm produced 755 critical errors and the NLT arm produced 51.

Structured function callingNatural Language Tools
Wire formatJSON object matching a declared schemaPrompt line answered YES or NO
Typical failureMalformed JSON, hallucinated field name, empty callWrong tool selected, output still parses
Critical errors in the study75551
Token useBaseline25.2% lower
ParametersSupportedNot tested
Accuracy across 14 models47.4%62.3%

The authors argue the error gap compounds in recursive workflows where agents chain calls across sub-agents: a structured parse failure triggers a retry, then fallback routing, then coordination overhead, while a wrong-but-parseable answer costs one turn.

Two failure paths compared: a malformed structured JSON call triggers retry, fallback routing and coordination overhead, while a Natural Language Tools answer always parses and a wrong selection costs one turn

What did the July 2026 replication measure, and how?

The design was 2 approaches by 2 scenarios by 16 inputs by 2 perturbations by 5 replicates, giving 640 trials per model. Each trial was a single-turn selection from seven tools and a finish option, with no parameters, graded on exact match. Tools reached the model as prompt lines it answered one at a time.

Two models have partial coverage, Gemini 2.5 Pro at 6 of 8 conditions and Qwen3-VL at 5, which is why the total is 8,560 trials and not the 8,960 the design implies. The literal format:

Thinking: (insert_thinking)
Recap of previous conversation - YES/NO
Website information - YES/NO
Recent social media posts - YES/NO
Available discounts - YES/NO
List of upcoming events - YES/NO
Past Purchases - YES/NO
Talk to a Human - YES/NO
Assessment finished.

That is the whole intervention. Reading it next to the equivalent JSON schema block makes the accuracy gap easier to believe than the headline number alone.

Which models gained the most, and which got worse?

Eleven of 14 models scored higher with NLT and three scored lower. Claude Sonnet 4 went from 18.8% to 61.9%, a 43.1 point gain. Mistral 7B went from 0.0% to 39.4%, unusable to usable. Gemini 2.5 Pro lost 33.7 points, GPT-OSS-120B lost 6.4, and Kimi-K2 was flat.

ModelStructuredNLTChange
Claude Sonnet 418.8%61.9%+43.1pp
Mistral 7B0.0%39.4%+39.4pp
Qwen3-VL0.0%33.8%+33.8pp
DeepSeek-R131.0%55.0%+24.0pp
DeepSeek-V369.7%90.0%+20.3pp
GPT-5-nano59.4%79.1%+19.7pp
Llama 3.1 8B32.9%47.8%+14.9pp
Gemini 2.5 Flash Lite63.1%73.1%+10.0pp
Gemini 2.0 Flash79.5%85.0%+5.5pp
GPT-OSS-20B39.3%42.7%+3.4pp
GPT-580.3%81.9%+1.6pp
Kimi-K267.8%67.2%-0.6pp
GPT-OSS-120B49.0%42.6%-6.4pp
Gemini 2.5 Pro82.1%48.3%-33.7pp

Treat the two partial-data rows with more caution, and note the Qwen3-VL structured score is corrected for survivorship bias. The paper rounds accuracies and deltas independently, so the Gemini 2.5 Pro row subtracts to 33.8 while the paper reports 33.7.

Diverging bar chart of per-model accuracy change from structured function calling to Natural Language Tools, from Claude Sonnet 4 at plus 43.1 points to Gemini 2.5 Pro at minus 33.7 points

Why do Natural Language Tools help Claude Sonnet 4 and hurt Gemini 2.5 Pro?

The paper’s explanation is training rather than architecture. Models tuned hard on structured tool calling through reinforcement learning have that path reinforced, so taking the schema away removes the thing they were optimised for. Models without native tool calling, reasoning models and smaller models gained between 24.0 and 43.1 points.

Read that way the result stops being surprising. A frontier model is asked to work in a mode it saw less of, while a 7B model with no native tool calling gets a task it can express in ordinary language for the first time, which is how Mistral 7B moves off a 0.0% floor. The pattern matches the losses that appear when a catalogue grows past what a model can discriminate between: whichever format asks the model to hold less in working memory wins.

What can the Natural Language Tools study not tell you about production agents?

Three limits, all stated by the authors. The task was single-turn, so chaining and error recovery are untested. Tool calls carried no parameters, so argument extraction, the part most production agents get wrong, is out of scope entirely. Each scenario offered seven tools, well below the catalogue sizes where selection accuracy usually breaks down.

That third limit is the gap most worth closing next. Seven tools is small enough for a model to read the whole list, and the interesting case is 2,000 actions, where the definitions are the dominant token cost in the context window. NLT’s token advantage likely stops deciding anything at that size, but the paper does not test it.

The reliability number survives those caveats better than the accuracy number. A 93% reduction in unparseable output is a property of the format rather than of the task size.

How should you choose between Natural Language Tools and function calling?

Test both formats against the models actually in use, on the real tool set, and keep the result per model. A format that gains 43 points on one model and loses 34 on another is not a best practice, and a company-wide default is a bet rather than a decision.

A version of this that fits in an afternoon:

  1. Take the 20 requests the agent gets most often and label the correct tool for each by hand. This set is the whole experiment, so it is worth an hour of care.
  2. Run them through the current structured tool calling. Record selection accuracy and parse failures separately, because they have different fixes.
  3. Run the same 20 with the tool list flattened into prompt lines and a YES/NO answer per tool.
  4. Compare per model, never averaged, which is what makes the headline 14.9 points misleading.
  5. Re-run whenever the model or model version changes. A gain measured on one release is not inherited by the next.

Step 5 is the one people skip. Model swaps get treated as like-for-like, and tool-selection accuracy is not something teams notice degrading until an agent starts choosing the wrong action in production.

StackOne treats tool exposure the same way, which is why it is a query parameter on the StackOne MCP server rather than fixed behaviour. tool-mode=individual registers one tool per enabled action, which our docs recommend for action sets under about 50 tools. tool-mode=search_execute registers two meta-tools instead, a search over the catalogue and an execute by action id, so prompt cost stays flat whether the catalogue holds 50 actions or the 30,000+ on our platform. Individual is the default, and a default is not a recommendation for every model. We published the benchmark numbers for the embedding model that runs action search for the same reason.

How tools reach the model is a variable, and it is cheaper to measure than to argue about. To compare the two exposure modes on a given catalogue, what each mode registers is documented in the StackOne MCP reference.


Facts in this post were verified on 31 August 2026 against the published paper and StackOne’s live documentation.

Frequently Asked Questions

What is the original Natural Language Tools paper?
NLT was introduced by Johnson et al. in 2025, published as arXiv 2510.14453, covering 10 models and 6,400 trials. The July 2026 paper by Somma, Plante and Premji is the first independent validation of it using open-source tooling, and it extends the model set to 14 including newer frontier and open-weight models.
Does NLT work with MCP servers?
Nothing in the study used MCP. MCP describes tools with JSON schemas, so using NLT with an MCP server means rendering those definitions into prompt text in the client before the model call, then mapping the YES answers back to tool invocations. The server side needs no change.
Does NLT reduce cost in practice?
The study measured 25.2% fewer tokens on the selection turn. That figure covers tool presentation and the model's answer, not the retries a structured parse failure causes, so the real saving in a chained workflow is probably larger. Nobody has priced that end to end yet.
Should I switch a production agent to NLT now?
Test the model first. Three of 14 models did worse, one of them by 33.7 points, and the study covers single-turn selection with no parameters. If the agent extracts arguments from user input, and most production agents do, the paper leaves the part of the pipeline most likely to break untested.

Put your AI agents to work

All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.