Watch an agent work with the transcript open and you will see money being narrated away. It restates the request it was just given. It hedges (“likely”, “seems to”, “I’m considering”) 3 times in a paragraph. It closes by summarizing a diff that is already on screen. Every one of those words is billed at the output rate, the most expensive class of token there is, and the model’s private reasoning rides the same meter. Then the bill compounds: everything written into a session is re-read as input on every turn that follows. Verbosity taxes you twice. This guide is about spending fewer tokens while keeping everything the model knows.
01Two meters run in every session
The first meter is how long the model thinks before it answers. That one is controlled by the tool running the model (effort levels, thinking budgets, model choice), and Rent the model, own the method covered how to set it per task. The second meter is how many words the model spends performing its work back at you. It is controlled by instruction, it is almost always set too high by default, and it is the one this guide turns down.
The distinction matters because the two failure modes are opposites. Cut thinking too far and the model gets the answer wrong. Cut prose too far and the model gets the answer right but the reader loses it: order becomes ambiguous, a caveat vanishes, a warning gets skimmed.
So the levers must move independently. A hard debugging task might want maximum thinking and minimum narration, while an irreversible migration wants the model’s full prose attention regardless of what thinking it took to get there. Collapsing the two meters into one vague instruction (“be brief”) is how you end up cutting the wrong one.
02The compression contract
What works in practice is a written contract the agent runs under: graduated levels of compression, a list of things that never get cut, and an explicit statement of what wins when brevity and accuracy collide. The levels give you several settings to pick from instead of an all-or-nothing switch. The result is explanations that cost far fewer tokens and lose nothing the reader needed.
The never-cut list:
- Code, symbols, function names, API names, and error strings are never abbreviated.
- Facts, caveats, and qualifiers are never dropped to save tokens; the contract compresses wording, not meaning.
- Before writing any summary, the model asks whether the tool output already shows it. A self-evident diff needs no closing narration.
03Escape hatches and warning signs
A compression mode without escape hatches is a liability, so the contract names the places it must drop back to plain prose automatically. Security warnings: a skimmed fragment under-communicates risk. Confirmations before irreversible actions: the user must fully understand what is about to happen, at whatever token cost. Multi-step sequences where dropped connecting words make order ambiguous: “migrate table drop column backup first” reads two ways, and one of them loses data. And the moment a user asks for clarification, that topic has earned plain language.
Each escape hatch marks a spot where the failure cost of compression exceeds its savings. That is also how you audit the whole scheme. Token savings are real only at the conversation level: a terse reply that forces a clarification round-trip costs the original message plus the question plus the re-explanation, with the whole exchange re-read as context on every turn after. That is more than plain wording would have cost once.
You can tell you have over-compressed from the reply you get. A repeated question. A “what do you mean by”. A request to re-explain. Treat those as meter readings, and route the topics that generate them back to plainer language. The same accounting applies to what enters the context as much as what leaves it (filtered tool output, thin always-loaded instructions with detail split into files loaded on demand). Stop hitting your token limit works that input side of the bill.
Keeping that always-loaded layer thin is its own craft in Every new repo starts with your lessons.
Further reading
- Anthropic · prompting Claude Fable 5, the effort dial that controls how long the model thinks
- Anthropic · pricing, why output tokens are the expensive class
- Anthropic · Claude developer documentation, the features (skills, memory) a contract installs into
- Wikipedia · plain language, the register the escape hatches drop into, studied
- Anthropic · engineering blog, first-party notes on agent token economics