DOCAI · 概念 · L3
什么是上下文缓存
一句话定义
把重复出现的长前缀存下来,命中时跳过重复计算,省 token 也降首字延迟。
专业更新 2026-11-13核验 2026-11-13 · docai 编辑部
它解决什么
同一个系统提示、同一份长文档,被反复送进模型。每次都重新读一遍,既花钱又慢。
上下文缓存把这段前缀的计算结果存住,下次命中就直接复用。
怎么才能命中
缓存只认前缀,而且要求逐字节一致:
- 固定内容放前面:系统提示、工具定义、长文档。
- 每次变化的内容放后面:用户问题、本轮上下文。
- 前面改一个字,后面的缓存全部失效。
这点和写代码时的缓存设计一样:把不变的放外层。
什么时候值得开
| 条件 | 说明 |
|---|---|
| 前缀长 | 短提示省不出多少 |
| 调用频繁 | 命中次数多才划算 |
| 前缀稳定 | 每次微调前缀等于每次都失效 |
| 有首字延迟压力 | 命中通常显著降低 TTFT |
三个常见误解
- 「开了就自动省」:不是。顺序不对、前缀总变,命中率就是 0。
- 「缓存永久有效」:不是。都有存活时间,过期就要重新写入。
- 「缓存能突破上下文窗口」:不能。缓存省的是重复计算,窗口上限不变。
一个排查方向
命中率低时,先打印每次请求的前缀长度和是否有变化。多数问题是某个时间戳或随机 ID 混进了前缀。