很多 AI 应用每次提问,前面都挂着一大段相同的说明——角色设定、规则、参考资料,动辄上千 token。模型每收到一次请求,都要把这段固定内容重新算一遍,又慢又贵。提示词缓存解决的就是这笔重复开销:把算过的中间结果存下来,下次遇到相同开头直接复用。把命中条件搞清楚,直接影响提示词怎么组织。
机制:它复用的到底是什么
模型处理输入时,会把文字切成 token,逐个算出中间结果,这些结果是后续生成的基础。关键在于:同一段文字算出的中间结果完全一样。既然一样,算过一次就存下来,下次请求的开头与缓存一致,就直接取用,跳过重复计算。好处有两项:省时间,开头部分不必重算;省钱,多数平台对命中部分按更低单价计费。输出质量不受影响——缓存复用的是计算结果,模型看到的输入没有变。
要分清一件事:缓存是服务层的计算复用,模型本身没有记忆。上下文靠每次请求重新传入,缓存只是让重复传入的那部分算得更快。
命中条件:前缀一致是硬门槛
缓存按前缀匹配,要求从第一个 token 起逐个一致,而且一致性是连续的:中间任何一处不同,从那往后全部作废,后面的内容全部重算。改前缀中间的一个词,代价是这个词之后的整段缓存失效。
什么算「一致」由平台定义,空格标点差异是否忽略、大小写是否敏感,各平台规则不一,以官方文档为准。部分平台还设有最小前缀长度,太短的开头享受不到缓存价。
哪些写法会让缓存白白失效
| 写法 | 为什么失效 | 改成什么 |
|---|---|---|
| 开头放时间戳、日期、随机数 | 每次请求都变,前缀从第一个 token 就不同 | 变化内容挪到末尾,开头只留固定说明 |
| 每次微调措辞或语序 | 一个词不同,其后全部重算 | 固定部分逐字锁定,改动只发生在末尾 |
| 多轮对话把新内容插在中间 | 插入点之后的缓存全部作废 | 新增内容永远追加在末尾 |
| 频繁更换系统提示词 | 整个前缀变化,等于每次从零算 | 同一任务固定一套系统提示词 |
什么时候它帮不上忙
三类场景省不到钱。每段都不一样的请求没有可复用前缀,一次性问答、随机创作都属于这类;前缀太短,低于平台门槛,攒不出规模效应;间隔太久,缓存过了有效期被清掉,只能重算。有效期长短各平台不同,具体时长以官方文档为准。
两个直接可用的摆放策略
策略一是两段式摆放:固定不变的说明放最前面——角色、规则、参考资料;每次变化的问题放最后,中间不插任何随请求变化的内容。策略二是长材料连续提问:把长文档放在对话开头,之后围绕它连续追问,每一轮都命中开头那段大缓存。这也解释了一个常见现象:同一个助手反复问,通常比每次开新对话划算,因为固定前缀一直在命中。反过来,如果你的场景是每次都换全新前缀,比如批量处理互不相关的短文本,就不必为缓存做任何改造,它对这类负载没有意义。
提示词缓存速查
- 复用对象:相同开头算过的中间结果
- 命中条件:从第一个 token 起逐个一致,中间一处不同即作废
- 摆放规则:固定的在前,变化的在后
- 四类失效写法:时间戳、微调措辞、中间插入、换系统提示词
- 输出质量不变,变的只是速度和价格
关于缓存的三个新问题
- 缓存会让模型「记住」上次对话吗?:不会。它存的是计算中间结果,对话上下文仍要每次重新传入;两个对话开头相同,各自都能命中,互不干扰。
- 多个用户能共享同一段缓存吗?:前缀一致就各自命中,与谁发起无关。这也是很多应用给所有用户用同一段系统提示词的原因,整体成本能压下来一大截。
- 改了提示词之后效果变差,要先查缓存吗?:不用。缓存只影响速度和价格,不影响内容,效果变化要从改动本身找原因。把改动部分单独回退测试、逐段定位,提示词的回归测试里有完整流程。
往机制深处再走一步:文字是怎么变成模型内部表示的,文字怎么进入画图模型讲了从文字到向量的过程;模型规模决定计算量,参数量大小的差异有直接对照;缓存价之外,免费版和付费版的额度与速度差异是另一条降成本的路径。


