Your monthly bill is mostly wasted tool calls and bloated context, not real work

A large share of an agent's spend goes to calls it should not have made and context it did not need to carry. Fix those two and the bill drops without touching the model.

B

Balagei G Nagarajan

4 MIN READ


A monthly bill broken into a small useful-work slice and large slices for redundant calls, failed retries, and unused context
None of these is the model being expensive.
— from “Your monthly bill is mostly wasted tool calls and bloated context, not real work”

Key facts.

  • The Berkeley Function-Calling Leaderboard evaluates whether models pick the right function and fill valid parameters, and includes hallucination categories, because models frequently call the wrong function or invent arguments, producing failed calls that cost tokens. source
  • WildToolBench found that across many evaluated LLMs, none exceeded roughly 15% session accuracy on realistic multi-turn tool use, so a large fraction of tool interactions fail and incur retry cost. source
  • Veracode's 2025 finding that larger models did not improve security on code generation reinforces the broader point that a stronger model does not automatically reduce wasted or wrong output. source

Where does the wasted spend actually come from?

Three places. Unnecessary tool calls, where the agent queries a tool it did not need because its prompt did not constrain it, and every call is billed input and output. Failed calls and the retries behind them, which the BFCL and WildToolBench results show are common, because the model picks the wrong function or fills a parameter wrong and the call has to be repeated. And context bloat, where the agent carries the full history into every step even when most of it is irrelevant, so each call is billed for tokens that do not change the answer. None of these is the model being expensive. They are the agent being undisciplined, and discipline is cheaper than a model upgrade.

The reason this hides is that each waste is small per call and invisible per run. It only shows up on the monthly aggregate, where the redundant calls, the retries, and the bloated context sum into a bill that is several times the cost of the actual work. The teams that control spend instrument the calls, find the redundant and failing ones, and trim the context to what the step needs.

Sankey diagram of total spend splitting into useful work, redundant calls, failed retries, and unused context tokens

What are the highest-impact fixes?

Constrain tool selection so the agent calls only what the task needs, which directly removes the unnecessary calls. Validate and tighten tool schemas so the model fills parameters correctly the first time, which removes a chunk of the failed-call retries the BFCL results predict. And manage context deliberately, carrying forward only what the next step uses rather than the whole history, which removes the per-call bloat. These are engineering choices, not model choices, and they compound: every call you avoid and every token you do not carry is saved on every run, forever.

Waste sourceCauseFix
Unnecessary tool callsUnconstrained selectionScope tools to the task
Failed calls and retriesWrong function or parameterValidate and tighten schemas
Context bloatCarrying full historyPass forward only what is used

Most of the bill is unneeded calls, doomed retries, and unused context. An upgrade won't fix it: on WildToolBench no model topped ~15% session accuracy. (arXiv:2604.06185)

The Pattern Intelligence Layer is where call discipline and context hygiene become standing properties rather than per-prompt luck. Which tools a step may call, how parameters are validated, and how much context carries forward are enforced at the pattern level, so the waste is removed once and stays removed across models. Reliability at the pattern level is also the reliability of a bill that reflects work, not waste.

Frequently asked questions

Is a cheaper model the fastest way to cut the bill?
Usually not. The waste is redundant calls, failed retries, and unused context. Trimming those cuts more, and survives a model change.

How big is the failed-call cost really?
Larger than most expect. WildToolBench shows realistic multi-turn tool use rarely succeeds first try, so retries are a recurring, billed cost.

What is the single biggest lever?
Context discipline. Carrying the full history into every step inflates every call; passing forward only what the step needs cuts that on each run.


Share this post

Join the discussion

Have a take, a war story, or a question? Sign in with GitHub to comment and react. Comments are powered by GitHub Discussions, ad-free and yours to moderate.

Continue Reading

Find where your agent breaks, before you build it

Faultmap maps where your agent will fail from the goal and your data, then hands you the first test suite it has to pass.