6.Rules of prompt caching
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
Claude中的提示缓存通过存储对您消息进行的计算工作来实现,以便在后续请求中重复使用。这使得后续请求执行起来既更快又更便宜,但仅在您重复发送相同内容时才有效。

这个过程很简单:您的初始请求将处理工作写入缓存,后续请求可以从该缓存中读取,而不是重新处理相同的内容。缓存存在一小时,因此此功能仅在您在该时间范围内重复发送相同内容时才有用。
Cache Breakpoints
缓存不会自动启用 - 您需要手动向消息中的特定块添加缓存断点。工作原理如下:
- 对消息进行的工作不会自动缓存
- 您必须手动向块添加"缓存断点"
- 断点之前的所有内容的处理工作都将被缓存
- 只有在后续请求中断点及其之前的内容完全相同时,才会使用缓存

要添加缓存断点,您需要使用完整形式来编写文本块,而不是简写形式:

简写形式没有提供添加缓存控制字段的位置,因此您必须使用扩展格式,并将cache_control字段设置为{"type": "ephemeral"}。
缓存断点的工作原理
当您在消息中放置缓存断点时,Claude会缓存直到并包括该断点的所有处理工作。断点之后的内容会正常处理,不进行缓存。

为了使缓存在后续请求中有用,内容必须在断点之前保持完全相同。即使是添加"请"这样的小改动也会使缓存失效,并强制Claude重新处理所有内容。

跨消息缓存
缓存断点可以跨越多个消息和消息类型。如果您在后面的消息中放置断点,所有之前的消息(用户消息、助手消息等)都将包含在缓存内容中。

这对于希望将整个上下文缓存到某个特定点的对话特别有用。
系统提示和工具
您不仅限于文本块 - 缓存断点还可以添加到:
- System prompts
- Tool definitions
- Image blocks
- 工具使用和工具结果块

系统提示和工具定义是缓存的绝佳候选,因为它们在请求之间很少发生变化。这通常是您从提示缓存中获得最大收益的地方。
Cache Ordering
在幕后,Claude按特定顺序处理您的请求组件:首先是工具,然后是系统提示,最后是消息。了解这个顺序有助于您有效地放置断点。

您总共可以添加最多四个缓存断点。例如,您可以缓存您的工具,然后在对话历史的中间位置添加另一个断点。这为您在请求的不同部分发生变化时提供了缓存内容的灵活性。

最小内容长度
缓存有一个最小阈值:内容必须至少达到1024个token才能被缓存。这是您尝试缓存的所有消息和块的总和,而不是单个块的长度。

一个简单的"Hi there!"消息无法达到这个阈值,但如果您将该内容重复500次(或者有一个真正很长的提示),它将超过1024个token并符合缓存条件。
有效提示缓存的关键是识别请求中哪些部分在多次调用中保持一致,并战略性地放置断点以最大化重用,同时最小化缓存失效。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org