最初的3,000标记提示,随后进行五轮对话,每轮增加1,000标记。无缓存时,该会话费用为30单位。使用5分钟TTL的热缓存时,费用为12.2。使用冷缓存时,费用为37.5,甚至比未开启缓存时更高。相同的提示,相同的模型,唯一变量是前缀是否匹配。前缀是请求中不变的开头部分,如指令和背景资料,AI可以重复使用,而无需每次重新处理。
基于Anthropic的价格乘数(缓存读取0.1倍,5分钟写入1.25倍),仅计算输入令牌。
这个示例分布已经足够说明学习提示缓存的重要性。缓存还保存了你的团队和流程放入提示中的内容,而这部分却很少被关注。
什么是提示缓存及其工作原理
当模型读取提示时,会为每个标记计算键值(KV)状态,以便在生成答案时参考。通常这些状态在响应结束时被丢弃。提示缓存会保留它们。缓存存储的是KV张量,而非原始标记,后续以相同前缀开始的请求会重用该保存状态,仅对新增部分进行处理。
匹配是精确且基于前缀的。提供者按顺序将请求开头与其最近缓存的内容进行比较:工具、系统提示,然后是消息。更改系统提示中的日期后,之后的内容将不匹配。缓存写入会将当前对话保存一段生存时间(TTL),每次命中都会重置计时器,因此活跃会话会自动保持活跃。
快速缓存阻止省钱的五种方式
顶部附近的易变值。 当前日期、用户名或某人为日志记录添加的请求ID使每次调用都变成写操作。一个团队将一个易变字段移到了提示的末尾,缓存部分之后,读取终于开始生效。
暂停时间超过TTL。 离开5分钟会话去开会,下一轮将为整个对话支付全价。上表中的“全部未命中”行就是这种情况。
压缩。 每次压缩都是冷启动,是对提供者从未见过的汇总历史的全价处理。在缓存仍然温热时,在休息前运行 /compact。缓存过期后,压缩的成本高于继续运行。
会话中途的更改。 更改模型、工作强度、插件或MCP服务器可能会更改系统提示并使缓存失效。请在长任务中途更改设置前查看提供商文档。
扩展与路由。 在高流量情况下,请求会落在没有缓存条目的机器上。Bedrock的自动前缀检查只回溯大约20个内容块,因此较长的静态部分需要多个检查点。
如何检查提示缓存是否正常工作
比较每个功能的缓存写入令牌和缓存读取令牌。如果写入跟踪您的请求计数,则没有任何内容被重用。确认在空闲期后的第一次调用中,cache_read_input_tokens 大于零。在 Bedrock 的 Converse API 中,读取 cacheReadInputTokens 和 cacheWriteInputTokens,并记住 inputTokens 仅计数未缓存的令牌,因此总输入为 inputTokens 加上两个缓存字段。在 GPT-5.6 及以后版本中,cached_tokens 大于零且 cache_write_tokens 为零的响应表示完全匹配。
要保持长时间会话活跃,请每20到25分钟发送一次小而有用的请求。基于不活动的计时器比固定的ping更有效,因为实际操作会重置它。
提示缓存与敏感数据
缓存的黄金法则是先缓存静态内容,最后缓存用户的问题。将这条规则视为数据清单。可缓存的部分包括工具定义、系统提示、少量示例、大型参考文档以及较早的对话轮次。在RAG设置中,参考文档是注入每个请求的相同文件。在聊天中,对话历史是用户输入的内容。
假设一名员工提交了包含内部用户ID、时间戳和交易跟踪代码的系统事件条目。在缓存会话中,该文本会作为前缀出现在每个后续回合中,并且每个回合都会刷新其计时。
供应商确实解决了这个问题。即使是字节完全相同的提示,缓存也不会在组织间共享。Anthropic 和 OpenAI 都将缓存描述为符合零数据保留:原始提示文本不会被静态存储,只有计算出的 KV 状态保存在内存中,或短暂卸载以延长保留,直到 TTL 结束。谷歌的显式缓存支持其企业平台上的 VPC 服务控制。这些是真实的控制措施。
它们还会留下一个时间窗口,由您选择长度。Anthropic模型为5分钟到1小时,OpenAI的GPT-5.6及以后版本为30分钟到12小时,早期OpenAI模型(延长保留)最长可达24小时。只要有人持续发送心跳信号,时间就会延长。缓存敏感信息前,请阅读各供应商当前的数据处理条款。
成本调整也可能适得其反。更大的稳定前缀缓存效果更好,因此追求50%重复率的团队有理由加载更多文档。节省的计算并未说明这些文档的内容。
提示注入提高了风险。间接注入将指令隐藏在助手可能会读取的文件中,如常规PDF或日历邀请,EchoLeak漏洞的CVSS评分为9.3。缓存参考集中的中毒文件会在每次请求时被重新读取,直到有人将其移除。
Shadow AI 补充了IT看不到的部分。大多数团队只能看到员工使用的AI工具的一小部分,从Claude.ai和Perplexity到Gemini及浏览器扩展。禁止这些工具会让员工转向个人设备,安全工具无法覆盖。安全负责人正在转向针对不同群组的防护措施:为工程团队扫描泄露的API密钥和硬编码的秘密,为法务和财务团队阻止上传或使用令牌化凭证。
标记化是输入端的一个解决方案。网关会在300毫秒内将患者姓名替换为类似[PERSON_01]的逻辑标记,使模型在不见身份的情况下仍能跟随叙述。但扫描器只能屏蔽它识别的内容,因此分类必须是第一步。
审计员要求相同的追踪记录。 SOX、PCI DSS 4.0 和欧盟人工智能法案第25条均要求对人工智能交互进行日志记录和可追溯性,包括每个提示的唯一请求ID及每次阻断的记录原因。缓存是数据存储的另一个位置,数据保存时间的问题也在考虑范围内。
在启用提示缓存之前
- 先放置静态内容,最后放用户的问题。
- 决定哪些来源可以进入缓存前缀,确保客户记录、凭证和受监管数据不被包含。
- 选择仍能产生命中的最短TTL。
- 跟踪每个功能的缓存读取和写入。
- 在将参考文档加入提示前,先审核其内容。
在提示被缓存之前对其内容进行分类
上述所有控制都依赖于了解哪些文件是敏感的。 Netwrix 数据分类 在源头提供答案。它持续发现并分类 Windows 文件服务器、NetApp、Dell EMC、Nutanix Files、SharePoint、Microsoft 365、Exchange、SQL Server、Oracle、MySQL、Box、Dropbox 和 Google Drive 上的敏感和受监管数据。预定义规则涵盖 GDPR、HIPAA 和 PCI DSS,自定义分类法处理其他所有内容。
嵌入文件中的分类标签为DLP和IRM工具提供数据,因此标记为敏感的文档可以在任何人将其加载到前缀之前,避免进入AI工作流程。 ROT检测 会发现冗余、过时和琐碎的文件,减少参考集中的陈旧内容。自动修复将敏感数据移至安全位置,移除过度权限,并编辑机密内容。
提示缓存常见问题
分享到
了解更多
关于作者
Dirk Schrader
安全研究高级副总裁(VP)
Dirk Schrader 是 Netwrix 的常驻 CISO(EMEA)以及安全研究高级副总裁(VP)。他拥有 CISSP(ISC²)和 CISM(ISACA)等资质,是一位在 IT 安全领域拥有 25 年经验的老兵。Dirk 致力于以现代化的方式应对网络威胁,从而推动网络韧性的发展。Dirk 曾参与全球范围内的网络安全项目:职业初期从技术与支持岗位做起,随后在大型跨国公司和小型初创企业中分别担任销售、市场与产品管理等职务。他已发表大量文章,强调为实现网络韧性,需要重视变更管理与漏洞管理。