Skip to content

缓存读取为什么便宜 ​

缓存读取,是这次请求里和前面请求开头完全相同的那部分内容(系统提示、工具定义、前面的对话)。模型服务已经处理过并存了下来,这次直接读,所以单价远低于普通输入:Claude 模型一般是输入单价的 1/10,Claude Opus 5.5 和 Sonnet 5.5 是 1/20,Claude Fable 5.1 是 1/40。每个模型的具体单价见 价格表。

1. 一次请求里的输入分三种 ​

价格表里的项是什么相对输入单价
输入既不是缓存读取、也不是缓存写入的内容1 倍
缓存写入第一次把内容存进缓存(Claude 模型)5 分钟缓存 1.25 倍,1 小时缓存 2 倍
缓存读取命中了之前存下的内容Claude 模型一般 0.1 倍,以价格表为准

Claude 的这几个倍数来自 Anthropic 官方的缓存说明。GPT 模型的缓存由 OpenAI 自动处理,不收缓存写入费,价格表里也没有这一项;缓存读取同样单独标价。

2. 为什么长对话特别省 ​

Claude Code、Codex 每发一条消息,都会把整段对话连同系统提示、工具列表一起再发一遍,真正新增的只有最后一小段。只要开头没变,前面那一大段都按缓存读取计价。

下面的数字只是示意:对话已经有 100K tokens,这次新增 2K(为简单起见,不计缓存写入)。

按输入计价的部分按缓存读取计价的部分输入侧费用(以输入单价为 1)
没有命中缓存100K0100K
命中缓存(缓存读取 0.1 倍)2K98K2K + 9.8K = 11.8K

同一条消息,输入侧的费用约是不命中时的 12%。

3. 怎样让缓存多命中 ​

  • **同一个任务在同一个对话里做完。**新开对话,开头的内容要重新写入缓存。
  • **对话开头的内容别反复改。**系统提示、CLAUDE.md 或 AGENTS.md、工具和 MCP 列表一改,后面的缓存就要重新写。缓存要求开头逐字相同。
  • **中途别换模型,也别改推理强度或思考设置。**这些设置也算在开头里,改了缓存会从头开始。
  • **Claude 的缓存默认保留 5 分钟,每次命中会续期。**停下来超过 5 分钟再发,这一次要重新写入。GPT 模型(GPT-5.6 起)的缓存默认保留约 30 分钟,开头至少 1,024 tokens 才会缓存(OpenAI 官方说明)。
  • **Claude 模型用 Claude Code 或 Anthropic 格式接入。**Claude 的缓存要在请求里带缓存标记,Claude Code 会自动带上,接入地址填 https://xxapi.ai(见 Claude Code 教程)。用 OpenAI 兼容格式(/v1/chat/completions)调 Claude 模型时,请求里一般没有这个标记,缓存读取通常是 0。

4. 在哪里看命中了多少 ​

打开 使用日志,每条请求的 读缓存 / 写缓存 一列写着缓存读取和写入的 token 数,下面一行是缓存命中率。长对话里命中率一直很低时,按上一节检查。

实际扣费以使用日志为准。不同分组的价格比例,见 「约官方价 X%」怎么算。

回到价格表

从第一步,到第一次成功使用。