A pegboard tool wall stripped almost bare, painted outlines showing where tools used to hang, one wrench still in place, photoreal

Deep Agents v0.7 cut base input tokens by 65 percent, from 5,395 to 1,895 on a default agent turn, entirely by removing things rather than adding any.

Tool descriptions were most of that bill, 4,005 of the 5,395 tokens, and the fix was deleting prose that already existed in the tool schemas.

The write_todos planning tool is now opt-in, because evals across three task categories and three models showed slightly better rewards and lower cost with todos switched off.

LangChain shipped Deep Agents v0.7 on 29 July. The changelog reads like a subtraction. The base system prompt is gone, and the authored prompt now starts empty. Builtin tool descriptions lost 43 percent of their text, dropping from 4,005 tokens to 2,302. The todo list middleware that used to be switched on for everyone is now something you have to ask for by name.

The default agent turn came out at 1,895 input tokens instead of 5,395, with no quality regression on the revamped eval suite.

That number deserves a minute, because base tokens are not a setup fee. They are re-sent on every turn of the loop. A forty-turn agent run was carrying roughly 216,000 tokens of pure scaffolding before it touched a line of your actual problem. Now it carries about 76,000. Prompt caching softens the cost side of that, but caching does nothing about the other tax, which is that all of it sits in the context window competing for the model's attention with the work you actually asked for.

Tool descriptions were three quarters of the harness

The breakdown is the useful part. Of 5,395 base tokens, 4,005 were tool descriptions. The system prompt, which is what gets versioned, A/B tested and argued about in review, was the minority shareholder.

LangChain's stated fix was to cut tool-usage prose that duplicated the tool schemas. The behaviour of the tools did not change. The descriptions were explaining, in English, things the schema already stated in JSON, and the model was being charged twice to read the same fact.

Go look at your own tool definitions with that in mind. Most handwritten MCP servers and custom tool sets have descriptions written the way you would brief a junior engineer, with a paragraph of when-to-use guidance, a couple of worked examples, and a warning about an edge case that bit someone in March. Some of that earns its place. A lot of it is restating a required parameter that is already marked required.

The signal here is not that verbose descriptions are always wrong. It is that nobody had measured what they cost until someone bothered to add up the tokens.

The todo list is the interesting casualty

Planning todos got demoted from default to opt-in, and the reason given is blunt. Evals showed the planning prompt and the write_todos tool did not meaningfully improve performance. Across three categories and three models, results were slightly better and cheaper with todos disabled.

The write-a-plan-first pattern got copied into nearly every agent harness on the strength of it obviously working. It reads well in traces, it produces a nice artifact, and it makes the agent look like it is thinking. LangChain ran the numbers and found the pattern was mostly paying for itself in vibes.

They did not remove the middleware. It is still there, still importable, and the release explicitly says it remains useful in three cases: long multi-step tasks that genuinely need explicit planning, weaker models that need the scaffolding, and any interface where a human is watching progress and the todo list is the progress bar. That last one is a product requirement wearing a performance costume, and it is a legitimate reason to keep the feature. It is just not a performance reason.

It did not go the same way for every model

The release includes per-model results, and they diverge enough to matter.

On gpt-5.6-luna, the lean harness cut tokens 34 percent, cut cost 15 percent, and improved reward by 4 percent. Cheaper and better.

On claude-sonnet-4-6, costs went up on the harder autonomous tasks. Removing the scaffolding did not delete the work, it moved it. The model spent more turns figuring out on its own what the prompt used to hand it, and more turns is more tokens.

That is the honest version of this result, and it is the reason to distrust anyone who reads the headline and starts deleting prompts across their whole stack this afternoon. The lean harness is not universally cheaper. It is cheaper where the model is strong enough to not need the training wheels, and it is more expensive where the model was leaning on them. Which of those describes your setup is an empirical question about your model and your task, and the answer changes when either one changes.

Scaffolding accretes and nobody audits it

The deeper pattern is not about LangChain, and it is not really about tokens.

Every agent harness in production has a layer of prompt written to compensate for a model that no longer exists. Someone hit a failure mode in October, added three sentences to the system prompt, watched the failure stop, and moved on. That was correct. The model then got better, twice, and the three sentences stayed, because removing working text to see if anything breaks is a task with no upside on anyone's sprint board.

Do that for eighteen months across a team and you get a system prompt that is a sediment layer of fixes for problems that stopped existing. You cannot tell which ones still matter by reading it. The text that fixed a real bug and the text that fixed a bug the model outgrew look identical on the page.

The only way through is the thing LangChain did, which is unglamorous. Have an eval suite. Delete a chunk. Re-run it. Keep the deletion if nothing moves. Their whole release is that loop applied to their own defaults, plus the willingness to ship a breaking change when the answer came back inconvenient.

What to do with this

If you maintain an agent harness, three things are worth an afternoon.

Count your base tokens. Not the total for a run, the amount every single turn pays before any work happens. Tool descriptions plus system prompt plus whatever middleware injects. Most teams have never looked at this number and are surprised by it.

Diff your tool descriptions against your tool schemas and delete every sentence that restates the schema. This is the cheapest win available and it carries almost no risk, because you are removing duplication rather than information.

Then take one piece of scaffolding you are confident about, the planning prompt is a good candidate, turn it off, and run your evals. If you cannot run that experiment because you do not have evals, that is the finding. The reason LangChain could delete its own defaults is that it had a way to know what happened next, and that capability is worth more than any specific number in this release.

The other lesson is smaller and slightly uncomfortable. The todo list survived in every harness that copied it partly because it looks like good engineering. Explicit planning, visible state, a checkable artifact. It has the shape of rigour. Shape is not evidence, and the only way to tell the two apart is to measure.