跳到正文
docai.cc

DOCAI · 概念 · L3

缓存命中率是什么,怎么算

一句话定义

命中缓存的输入 token 占总输入的比例;它由「前缀是否完全一致」决定,不由你希望它命中决定。

专业更新 2026-11-13核验 2026-11-13 · docai 编辑部

命中率怎么算

命中率 = 命中缓存的输入 token ÷ 总输入 token

它是输入侧的指标,和输出无关。一次请求里,系统提示、工具定义、 历史对话、用户问题加起来是输入;其中只有前缀部分可能命中。

多数服务的计费规则是:命中部分按折扣价(通常是原价的十分之一到一半, 各家不同),未命中的按原价,写入缓存的部分可能略贵于原价。

为什么命中率总是上不去

缓存匹配的是前缀,要求逐字节一致。以下任一情况都会让缓存失效:

  • 系统提示里塞了当前时间、用户名、随机 ID;
  • 工具定义的顺序每次都变;
  • 历史对话从第一条开始就被改写(比如每次重新摘要);
  • 请求间隔超过缓存的存活时间(各家不同,通常是分钟到小时级);
  • 前缀长度没达到最低门槛(短提示本来就不缓存)。

最常见的错误是把变化的内容放在最前面。比如把用户问题拼在系统提示开头, 后面跟着几万字资料——前缀每次都不同,后面再长也命中不了。

正确的前缀顺序

[不变] 系统提示 → 工具定义 → 长期参考资料
[可变] 历史对话 → 本轮用户问题

原则:越稳定的越靠前,越易变的越靠后。这样同一份参考资料在多次请求之间 才能被复用。

一个估算例子

假设系统提示加资料共 8,000 token,用户问题 200 token,一天 1,000 次请求:

  • 不命中:每次 8,200 token 按原价;
  • 命中:8,000 按折扣价,200 按原价。

命中率 97.6% 时,输入成本大约降到原来的两成到三成(取决于折扣比例)。 具体数字以你所用服务的价目表为准。

常见误解

  • 「开了缓存就会命中」:服务只是提供能力,命中取决于你的前缀是否稳定。
  • 「命中率越高越好」:如果为了命中把变化的内容全塞到后面,可能让模型看不到关键信息。
  • 「缓存能省输出钱」:不能,输出 token 每次都要重新生成。

下一步

来源

定义与事实以以下来源为准;表述与取舍是本站整理的。
  1. [1]Anthropic · Prompt caching
  2. [2]OpenAI · Prompt caching

相邻概念