Sentinel a prompt can embed to tell the Anthropic adapter WHERE the stable, cacheable prefix ends
and the volatile (per-turn) content begins. The adapter places an Anthropic cache_control
breakpoint at each marker (caching everything before it) and removes the marker from the text the
model sees. Without a marker the whole block is cached as before.
Why it's needed: Anthropic only caches up to an explicit breakpoint and read-hits require the new
request to match a cached prefix AT a breakpoint. If volatile content (date/scratchpad/payload)
sits at the end of the system prompt and the only breakpoint is at the very end, the cached
segment includes the volatile bytes, so every turn misses and rewrites. Putting the marker between
the stable instructions and the volatile tail makes the stable prefix a reusable cache segment.
Providers that cache the longest common prefix automatically (OpenAI, Gemini) don't need this;
they should strip the marker from outgoing content.
Sentinel a prompt can embed to tell the Anthropic adapter WHERE the stable, cacheable prefix ends and the volatile (per-turn) content begins. The adapter places an Anthropic
cache_controlbreakpoint at each marker (caching everything before it) and removes the marker from the text the model sees. Without a marker the whole block is cached as before.Why it's needed: Anthropic only caches up to an explicit breakpoint and read-hits require the new request to match a cached prefix AT a breakpoint. If volatile content (date/scratchpad/payload) sits at the end of the system prompt and the only breakpoint is at the very end, the cached segment includes the volatile bytes, so every turn misses and rewrites. Putting the marker between the stable instructions and the volatile tail makes the stable prefix a reusable cache segment.
Providers that cache the longest common prefix automatically (OpenAI, Gemini) don't need this; they should strip the marker from outgoing content.