LLM Prompt 缓存机制

LLM API 对请求的 前缀(prefix) 做自动缓存。两次请求的 prompt 开头部分完全相同时,相同部分的 token 不再重新计算,只付缓存价(通常低 100 倍以上)。

  1. 必须是前缀:缓存只认从 prompt 第 1 个 token 开始的连续相同段
  2. 完全匹配:字符级一模一样才命中,多一个空格就失效
  3. 至少 N 个 token:大部分模型要求缓存段 ≥ 1024 token
  4. TTL 内:缓存有效期通常 5-10 分钟,超时重新计算
  • System prompt / 系统指令:每轮对话都一样 → 必中
  • 多轮对话(重点):同一对话框里持续聊天,每轮请求都会把"全部历史"重发给 API。历史部分和上一轮请求完全相同 → 前缀越来越大,缓存命中越来越多
  • 反复引用的长文档/代码:同一个文件的 content 放前面
  • AGENTS.md:每次都是 system prompt 开头 → 必中

关键认知:每次发消息,API 收到的是"全部聊天记录 + 你的新消息",不是只发新的一句。

轮次发送内容缓存情况
第1轮[系统指令] + "问题A"全部走输入价
第2轮[系统指令] + "问题A" + [AI回答1] + "问题B"和第一轮完全相同的前缀 → 缓存价;新增部分 → 输入价
第3轮[系统指令] + [历史1-2全部] + "问题C"更长前缀 → 更多缓存命中;新增部分 → 输入价
……聊越久,缓存 hit 越多

所以同一个框连聊 20 轮,从第 2 轮起前面绝大部分都是缓存价,真正按输入价算的只有最新一句。

Transformer 推理最贵的步骤是 self-attention 的 KV 矩阵计算。如果 prefix 相同,上一轮算好的 KV cache 直接复用,跳过计算,只剩后面新增 token 的增量计算。服务商 GPU 成本大头被消除,所以定价极低。

  • 第一次请求:按输入价全额计费
  • 后续请求(前缀相同):前缀部分按缓存价,新增部分按输入价
  • AGENTS.md / 项目 context 只有第一次会话贵,之后近乎免费

不同模型的缓存定价差异很大:

  • DeepSeek V4 Pro:缓存 ¥0.02 → 是输入价的 1/147
  • Qwen3.7 Plus:缓存 ¥0.27 → 是输入价的 1/10
  • 缓存折扣越大,说明该模型在长对话/大 context 场景越划算

相关内容