LLM Prompt 缓存机制
目录
1 简要回答
LLM API 对请求的 前缀(prefix) 做自动缓存。两次请求的 prompt 开头部分完全相同时,相同部分的 token 不再重新计算,只付缓存价(通常低 100 倍以上)。
2 详细回答
2.1 命中条件
- 必须是前缀:缓存只认从 prompt 第 1 个 token 开始的连续相同段
- 完全匹配:字符级一模一样才命中,多一个空格就失效
- 至少 N 个 token:大部分模型要求缓存段 ≥ 1024 token
- TTL 内:缓存有效期通常 5-10 分钟,超时重新计算
2.2 什么最容易命中
- System prompt / 系统指令:每轮对话都一样 → 必中
- 多轮对话(重点):同一对话框里持续聊天,每轮请求都会把"全部历史"重发给 API。历史部分和上一轮请求完全相同 → 前缀越来越大,缓存命中越来越多
- 反复引用的长文档/代码:同一个文件的 content 放前面
- AGENTS.md:每次都是 system prompt 开头 → 必中
2.2.1 多轮对话为什么自动命中
关键认知:每次发消息,API 收到的是"全部聊天记录 + 你的新消息",不是只发新的一句。
| 轮次 | 发送内容 | 缓存情况 |
|---|---|---|
| 第1轮 | [系统指令] + "问题A" | 全部走输入价 |
| 第2轮 | [系统指令] + "问题A" + [AI回答1] + "问题B" | 和第一轮完全相同的前缀 → 缓存价;新增部分 → 输入价 |
| 第3轮 | [系统指令] + [历史1-2全部] + "问题C" | 更长前缀 → 更多缓存命中;新增部分 → 输入价 |
| … | … | 聊越久,缓存 hit 越多 |
所以同一个框连聊 20 轮,从第 2 轮起前面绝大部分都是缓存价,真正按输入价算的只有最新一句。
2.3 为什么便宜百倍
Transformer 推理最贵的步骤是 self-attention 的 KV 矩阵计算。如果 prefix 相同,上一轮算好的 KV cache 直接复用,跳过计算,只剩后面新增 token 的增量计算。服务商 GPU 成本大头被消除,所以定价极低。
2.4 实际影响
- 第一次请求:按输入价全额计费
- 后续请求(前缀相同):前缀部分按缓存价,新增部分按输入价
- AGENTS.md / 项目 context 只有第一次会话贵,之后近乎免费
3 知识扩展
不同模型的缓存定价差异很大:
- DeepSeek V4 Pro:缓存 ¥0.02 → 是输入价的 1/147
- Qwen3.7 Plus:缓存 ¥0.27 → 是输入价的 1/10
- 缓存折扣越大,说明该模型在长对话/大 context 场景越划算