终端里的缓存命中率:2026 年提示词复用实践
终端里的缓存命中率:2026 年提示词复用实践
每天在编辑器里改代码,最容易重复发送的不是问题,而是问题前面的东西:系统规则、工具定义、仓库说明和参考文件。整理 2026 年的缓存实践,我会先看这些输入如何组织,而不是先找一个神奇参数。缓存通常复用的是输入前缀的计算,不是直接返回上一次答案。
稳定前缀放前面,当前任务放后面
把请求按变化频率排序:长期规则、稳定工具定义、项目约定、相关源码,最后才是当前问题、最新差异和命令输出。这样,末尾发生变化时,前面的长前缀仍有机会被复用。
别把当前时间、随机请求标识或工作目录状态塞进系统提示开头。即使只是多了一行日期,也可能让后面的大段内容失去前缀匹配机会。需要这些信息时,把它们放进靠后的任务上下文。
工具定义和仓库上下文需要确定性
我的请求构建器会固定工具顺序、字段输出顺序和文件排序,并统一换行。对于按前缀匹配的缓存,语义相近不等于输入相同;不要指望服务端替你把两份不同序列化结果归一化。
仓库上下文可以按版本组织:项目规范保持稳定,源码片段附带提交标识,工作区差异单独追加。某个文件变了,就更新对应片段,而不是每轮重新生成一份顺序不同的仓库摘要。稳定不代表陈旧,正确性始终优先。
不要把不同模型当成同一个缓存池
用 Claude Sonnet 5.5 和 GPT-6 Astra 跑同一组任务时,我会分别记录模型标识、请求配置和缓存用量,不假设它们共享缓存。最低可缓存长度、有效期、显式缓存控制和自动缓存规则,都应以实际模型文档及响应为准。
工具链也会改变请求。编辑器里看起来相同的问题,经过代理、工具注入或上下文压缩后,实际前缀可能不同。排查时记录脱敏后的前缀摘要、长度与配置,别只比较聊天窗口里的文字。
命中率必须同时看请求数和令牌数
“十次请求命中九次”不一定省钱:九次可能都很短,唯一未命中的请求却带着整个仓库。我会同时统计有缓存读取的请求占比,以及缓存读取令牌占总输入令牌的比例,并明确统计窗口和分母。
例如,一次请求输入一万令牌,其中八千令牌来自缓存读取,令牌读取占比就是百分之八十。这不代表账单降低百分之八十,因为读取、写入、普通输入和输出可能有不同单价;还要确认接口返回的输入总量是否已经包含缓存部分,避免重复相加。
用冷启动与连续追问测试真实收益
我会选一组固定的修复任务,先跑冷请求,再在缓存有效期内连续追问,记录缓存读写、首令牌延迟、总耗时和实际费用。随后修改稳定前缀中的一处内容,再观察读取量变化,而不是只测一次就宣布成功。
别为了达到缓存门槛硬塞无关文档。首次写入可能增加成本,缓存也可能过期;如果长前缀只用一次,未必划算。压缩历史同样要权衡:它减少输入,却可能改变前缀。比较完整任务成本,比追求漂亮的命中率更可靠。
在 Fluxo 里把缓存读写纳入任务账本
我的终端实验会固定模型和配置,再通过 Fluxo 对照用量。它用一个密钥和一个基础地址 https://api.fluxorelay.com 接入 Claude、GPT、Gemini、DeepSeek、Kimi、GLM、Qwen、Grok 等系列,可用于 Claude Code、Codex、Gemini CLI 和任意 OpenAI SDK;统一入口不意味着上游缓存规则也统一。
Fluxo 无月费,按实际令牌计费,包含缓存读取和写入,所以账本不能只记普通输入与输出。若你也想拿自己的仓库验证这套方法,可以创建一个 Fluxo 账户,从一组短任务开始。排查遇到问题时,登录后可在联系页面留言。
邀请关系也应与技术测试分开记录:受邀用户付费后,邀请人可获得推荐分成,但这不应计入模型缓存节省额。缓存优化的收益,仍然要回到同等任务质量下的实际调用成本。
把前缀稳定性加入提交前检查
最后,我会给请求构建器补回归测试:相同仓库状态必须生成相同前缀,当前问题变化不应改动固定规则,敏感信息不能为了缓存方便而长期保留。能复用的上下文保持稳定,必须变化的内容明确隔离,这比盲目延长提示词更值得坚持。