These are the two caching schemes most agent teams actually compare, and they sit at opposite ends of a tradeoff: control versus convenience.
OpenAI: automatic, forgiving, capped discount
OpenAI caches automatically once a prompt crosses about 1,024 tokens. You do nothing except keep stable content at the front. The discount on cache reads is good but not the largest, and the system reports cached tokens back in usage, which gives us clean provider-reported evidence.
The failure mode is subtle: anything volatile near the top of the prompt resets the prefix. We see this constantly. A per-request id in the system block can drop hit rate to near zero without anyone noticing.
Anthropic: explicit, higher ceiling, write premium
Anthropic makes you place cache_control breakpoints. In exchange the read discount is the steepest in the catalog. The catch is the write: the first time you cache a block it costs more than list input, so a breakpoint only pays off once the block is reused enough to amortize that write.
Placed well, Anthropic captures the most in our data. Placed badly, you pay write premiums forever and never recover them. This is exactly the kind of decision Zumik makes from snapshot structure rather than leaving it to a guess.
How to choose
If you want hands-off reuse and a familiar surface, OpenAI. If you can identify genuinely stable blocks and want maximum savings on a well-structured prompt, Anthropic. Most teams end up using both, with aliases routing each request to whichever wins under current policy.