
命中的三个条件
前缀完全一致。从第一个字符开始逐字比对,中间差一个空格都不算命中。
顺序固定。会变的内容一旦混进前缀,后面再一样也没用,前缀已经不同了。

在有效期内。缓存通常有存活时间,几分钟到几小时不等,各家不同。隔一天再问,大概率已经过期。
三条同时满足才命中。所以缓存只对结构没变的那部分便宜。
还有一条常被忽略:前缀越长,命中后省得越多,但也意味着得长期维持一段固定内容。固定内容不稳定,这套就不成立。
提示词怎么排
固定内容放最前面:系统提示词、角色设定、那份不变的长文档。
可变内容放最后:这次的问题、这次要改的那一段。
反面写法是把问题写在开头,材料贴在后面。每次问题不一样,前缀就变了,缓存永远不命中。

一个常见场景:同一份合同要问十个问题。把合同放前面,问题放后面,第一个问题全价,后九个的输入部分按缓存价算。顺序反过来,十次都是全价。
- 固定:系统提示、角色、长材料
- 可变:本次问题、本次要改的段落
- 顺序:固定在前,可变在后
能省多少
行业里常见的说法是输入部分降五成到九成,具体比例看平台和缓存时长,以官方说明为准。
注意是输入部分。输出不参与缓存,该多少还是多少。

所以缓存对“长材料、短问题”的任务效果最好:读合同、查手册、按固定规范审稿。对“短输入、长输出”的任务,比如写文章,几乎没感觉。
算一下命中率:命中 token 除以总输入 token。低于三成,说明前缀设计有问题,或者材料本来就在变。
三种情况缓存无效
材料每次都不一样。每天处理一批新文件,每份都不同,前缀天然不一致。
时间戳或随机数在开头。有些模板会自动加当前时间,这一行就让缓存全废。要加就加在末尾。
平台不支持或没开。有的产品默认不开缓存,有的要显式指定。先确认,再设计流程。
测一下就知道:同一段前缀连发两次,看返回里的缓存命中数。第二次是零,说明没生效,别急着改架构。
常见问题
怎么知道有没有命中?
多数平台的返回里有缓存读写 token 的字段,账单明细里也能看到。没有这两个数,就只能靠对比账单估。
缓存内容会被别人看到吗?
不会跨用户共享。缓存是隔离的,按账号或组织维度。
改一个字是不是全废?
前缀里改了就是全废。所以把容易变的内容放到末尾,改动的影响面最小。


