What is the primary purpose of prompt caching?	To save tokens by reusing identical content (like tool schemas or system prompts) across multiple requests.
How is prompt caching enabled for a list of tools?	By adding a `cache control` field of type `ephemeral` to the last tool schema in the list.
Why is it recommended to clone the tools list before modifying the last tool schema?	To ensure the code remains robust even if the order of tool schemas changes later in the application.
How is a system prompt configured to be cached?	By replacing the prompt string with a dictionary containing `type: text`, the prompt text, and `cache control: ephemeral`.
What is the order in which the model checks for cache breakpoints?	Tools, then the System Prompt, then the user messages.
What action causes the system to perform a "Cache Read"?	When the input content (tools, system prompt, or messages) is identical to a previous request.
What action causes the system to perform a "Cache Write"?	When the input content is new or has changed, requiring the model to store the new data in the cache.
What specific change will invalidate the cache for the tool schemas?	Changing the definition or description of any tool schema within the list.
What specific change will invalidate the cache for the system prompt?	Changing the text of the system prompt itself.
If the user message is changed, but the tools and system prompt remain identical, will the cache be invalidated?	No, the system will continue to read from the cache.
