切换深浅色
缓存读取为什么便宜
缓存读取,是这次请求里和前面请求开头完全相同的那部分内容(系统提示、工具定义、前面的对话)。模型服务已经处理过并存了下来,这次直接读,所以单价远低于普通输入: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) | |
|---|---|---|---|
| 没有命中缓存 | 100K | 0 | 100K |
| 命中缓存(缓存读取 0.1 倍) | 2K | 98K | 2K + 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%」怎么算。
