Skip to content

v3.10.55 — Stop burning the prompt cache on every tool turn

Choose a tag to compare

@KevRojo KevRojo released this 29 Jul 23:51

🧊 The agent was quietly re-caching your whole conversation on every tool turn. Fixed.

When Dulus replayed its history to the model, each past tool call had its arguments re-serialized with json.dumps() — which can reorder keys or change spacing versus what the model originally streamed. Providers key their prompt cache on the exact bytes of earlier messages, so that tiny reformat invalidated the cache on every single tool turn — you paid full write-price to re-cache the whole conversation, turn after turn, on the very models where caching matters most (Grok, Kimi, DeepSeek).

Now Dulus keeps arguments_raw — the exact JSON string the model streamed — and replays that, byte-for-byte, so the prefix stays stable and the cache actually hits across tool turns.

Same release also removes a moving number (the skills-catalog file size) from the system prompt, which was busting the system cache whenever the catalog changed.

If you run long, tool-heavy sessions on a metered provider, this is real money back.

pip install -U dulus · PyPI