Lots of requests start the same way: the same instructions, the same handbook, the same long chat history, and only the last bit changes. Prompt caching lets Claude keep the work it did on that shared start, so the next request that begins with exactly the same text skips straight to the new part. It's cheaper, and faster to the first token on long prompts.
The rule that makes or breaks it: caching is a prefix match. Claude reads a request in a fixed order (tools, then the system prompt, then the messages) and a cache hit needs every token up to your cache marker to be identical. Change one character early on, and everything after it misses.
So put what never changes first, and what changes every time last: