Use case
I cut tokens and my bill went up. Keep the prompt cache warm.
On Claude Opus 5.5, a cut that changes the start of the request makes the provider write it to cache again, at 40 times the read price with a 1-hour mark. Context Mode trims once and sends the same bytes every turn, so the cache stays warm. Cache writes are in the cost we measure.
You stop sending 60 tool definitions to save tokens.
39% fewer tokens, 149.6% more cost. 12 paired runs on Claude Opus 5.5. We did not ship it.
Every tool stays. Long descriptions get shorter, the same way each turn.
42.5% less per warm turn, a turn that reads the start from cache. A recording of 7 turns on a Haiku model.
Claude Opus 5.5, 1-hour mark, per million tokens.
A read costs a twentieth of fresh input. When the start changes, it is written again: $0.040917 on that turn, 8.9 times a warm turn.
Fewer tokens is not a smaller bill. The cache decides.
Your agent sends the whole conversation on every call. On Claude Opus 5.5, the provider reads the start of it from cache at a twentieth of the fresh price.
If anything changes text inside that cached start, the next call writes it to cache again. With a 1-hour mark, a write costs 40 times a read.
We sent no tool definitions up front and let the model search for them. Tokens fell 39%. Cost rose 149.6%.
Trim once. Send the same bytes after.
- 01Trim tool schemas, keep every tool
On Claude Code requests, a tool of 1,500 bytes or more keeps its name, top-level parameters and required list. Its description is cut at a sentence end at or before 420 characters. Codex tool descriptions are trimmed too.
- 02Change output only the first time
A tool result changes only when it first passes. Every later request carries the same bytes, so the provider reads them from cache.
- 03Hold the start still
On a long thread, old messages are cut in planned steps only. Your Instructions sit in the cached start, and the gateway holds that start unchanged during a conversation.
Measured cost, cache writes included.
The 42.5% is a recording of 7 turns on a Haiku model. The one break after the fix was a planned step. The study → Method and sources →
Two ways to cut. Two results.
| What happens | Trim schemas | Drop tools, search for them |
|---|---|---|
| Tools the model sees | Every tool, shorter descriptions | Only the ones it finds |
| Bytes at the start | The same on every turn | Change as tools come in |
| Tokens | Tool list (manifest): 103,253 to 27,436 bytes | Prompt tokens: 176,196 to 107,495, 39% fewer |
| Cost | Per warm turn: $0.004596 to $0.002640 | Per run: $0.1043 to $0.2107 |
| Shipped | Yes | No |
The two columns are separate tests on different models, not a direct comparison. Trim schemas: a recording of 7 turns on a Haiku model, 29 tools. Tool search: 12 paired runs on Claude Opus 5.5, 60 MCP tools, every task passed in both arms. How we learned it →
What this uses.
Trims tool schemas and folds tool output once, so later requests reuse the cache.
Your rules sit in the cached start. After the first request they cost the cache read price.
What cache reads and writes cost, what breaks the cache, and where the gateway puts cache marks.
Related: Cut agent spend · Failing test output · Long sessions · Tool-schema slimming · Pricing
Cut tokens. Keep the cache.
npx @context-mode/cli connects your agents. 1,000 requests free, no card.