跳转到正文

MODULE 03 · STEP 09 · 理解课

提示缓存入门 ​

本课类型

这是一节理解课,不要求输入命令,也不要求你为了改变缓存数字去切换模型或压缩会话。

这一章不要求你调试缓存。它只帮你看懂 Pi 底部与 token、cache 和 cost 相关的信息,以及为什么“删掉一点上下文”不一定立即更便宜。

不同模型和提供商返回的用量字段并不完全相同。界面没有显示某个缓存数字,不代表 Pi 故障,也不值得为了让数字出现而切换模型。

缓存在复用什么 ​

模型每次回复前,都要处理一长段输入。连续对话时,新一轮输入的前面往往和上一轮完全相同。支持提示缓存的模型提供商可以复用这段已处理的前缀,减少重复计算。

可以把它想成一本已经翻到某页的书。只要前面的页面没变,就可以接着读;如果书的版本、章节顺序或前面的内容变了,则需要重新处理。

哪些变化容易打断缓存 ​

  • 切换模型或提供商。
  • 工具定义、系统提示或项目上下文变化。
  • 从会话树中更早的节点改走另一条分支。分支前的共同前缀仍可能被复用,实际命中取决于提供商和缓存保留。
  • 执行上下文压缩,早期原文被新摘要取代。
  • 缓存超过提供商的保留时间。

不同模型和提供商的计费、有效时间与显示方式会变,本章不提供固定价格表。需要计算成本时,应当查看你实际使用的提供商当期官方说明。

对日常使用有什么影响 ​

首先,不要为了追求看起来更小的上下文,每几轮就删除历史或强制压缩。这样可能同时丢失细节和原有的缓存前缀。

其次,不要把缓存命中率当成任务质量。它反映的是多少输入被复用,不能证明代码正确、文章可读或文件没有被误改。

最后,长任务仍然要回到可验收产物。缓存帮助模型更有效地处理重复前缀,文件、测试、Git 历史和人工检查才帮助你确认任务是否完成。

四个容易混淆的东西 ​

名称解决什么问题不能证明什么
提示缓存减少相同输入前缀的重复处理任务正确、结果完整
上下文压缩在窗口有限时用摘要替代较早内容早期细节无损保留
会话保存让你以后找到并继续一段对话磁盘文件能回到旧版本
文件版本与备份比较、恢复和审查实际产物模型仍记得当时的全部理由

本课验收 ​

判断下面两个场景:

  1. 缓存命中很高,但输出文件漏了两项。任务完成了吗?——没有,应该回到输入、输出和验收规则核对。
  2. 缓存数字很低,但测试、文件差异和人工检查都通过。需要为了提高命中率重做任务吗?——不需要。

只要你不再用缓存数字给任务质量打分,并知道质量检查要回到真实产物,本课就通过。

想深入理解这个机制,继续阅读官方授权译文 Agent 中的提示缓存。

本章依据 ​