Anthropic Prompt Caching 定价拆解:5 分钟 vs 1 小时
Anthropic 两档 cache:5 分钟(1.25x 写入, 0.1x 读取)和 1 小时(1.5x 写入, 0.1x 读取)。Agent 场景怎么选,含费用对比。
先说结论 — Anthropic prompt cache 分两档:5 分钟(写入 1.25×、读取 0.1×)和 1 小时(写入 1.5×、读取 0.1×)。两档读取都省 90%。5 分钟写入便宜、适合几分钟内完成的 agent 循环。1 小时写入贵 20%、但对长 session 和多轮对话省得更多。看你的 agent 一次任务活多久。
Prompt caching 是 2026 年 Anthropic 模型最大的单一成本优化。如果你的 agent 每次调用都发同样的系统提示、加载的文档或对话前缀——几乎肯定是这样——caching 把 Opus 5 的 $15/M input tokens 变成 $1.50/M。90% 的成本直接砍掉。
但 Anthropic 不是一刀切的 cache。他们分成两档,经济学不一样。大部分开发者选了一个就没想过另一个。这篇拆清楚什么时候哪档省钱、什么时候反而多花。
两档对比
| 维度 | 5 分钟 cache | 1 小时 cache |
|---|---|---|
| TTL | 5 分钟 | 60 分钟 |
| 写入成本 | 1.25× 基础 input 价 | 1.5× 基础 input 价 |
| 读取成本 | 0.1× 基础 input 价 | 0.1× 基础 input 价 |
| 读取节省 | 90% | 90% |
| 写入溢价 | +25% | +50% |
| 回本调用数 | 2 次 | 2 次 |
两档读取价一样(都是 0.1×)。区别全在写入:5 分钟 cache 写入便宜 20%,但只活 5 分钟。
回本计算
以 Claude Sonnet 5($3/M input)为例,缓存 10,000 tokens 的系统提示:
5 分钟 cache:
- 写入:10K × $3/M × 1.25 = $0.0375
- 每次读取:10K × $3/M × 0.1 = $0.003
- 不缓存每次:10K × $3/M = $0.03
- 节省/次读取:$0.03 - $0.003 = $0.027
- 回本:写入溢价 $0.0075 ÷ 节省 $0.027 = 0.28 次 → 第 2 次调用就回本
1 小时 cache:
- 写入:10K × $3/M × 1.5 = $0.045
- 每次读取:$0.003(一样)
- 写入溢价:$0.015
- 回本:$0.015 ÷ $0.027 = 0.56 次 → 第 2 次调用也回本
两档都在第 2 次调用就回本。区别是第 1 次的代价:1 小时 cache 多花 $0.0075(对 10K tokens)。
什么 Agent 模式选哪档
选 5 分钟 cache
| Agent 模式 | 典型行为 | 为什么 5 分钟够 |
|---|---|---|
| 快速 tool-use 循环 | 3-8 轮工具调用,2 分钟内完成 | 全部在 TTL 内 |
| 单次分析任务 | 读文档 → 分析 → 输出,1 分钟 | 只需缓存一次 |
| 流水线 agent | 连续处理 10 个 item,每个 30s | 系统提示跨 item 复用 |
| 用户对话(活跃) | 用户快速来回,30s/轮 | 5 分钟内 10 轮 |
选 1 小时 cache
| Agent 模式 | 典型行为 | 为什么需要 1 小时 |
|---|---|---|
| 长研究任务 | agent 跑 20-40 分钟做深度分析 | 5 分钟早过期了 |
| 间歇性对话 | 用户隔 5-10 分钟回复一次 | 5 分钟 cache 在用户思考时过期 |
| 批量处理(慢节奏) | 每 item 2-3 分钟,50 item 队列 | 系统提示需要在整批存活 |
| 多 agent 共享 context | 多个 agent 读同一份文档 | 不同 agent 在不同时间读 |
费用对比:真实场景
场景 A:对话 agent,20 轮,每轮 30 秒
系统提示 5,000 tokens,模型 Claude Sonnet 5:
| 方案 | 总 input 费用 | 节省 |
|---|---|---|
| 无 cache | 20 × 5K × $3/M = $0.30 | — |
| 5 分钟 cache | $0.019 (write) + 19 × $0.0015 = $0.048 | 84% |
| 1 小时 cache | $0.023 (write) + 19 × $0.0015 = $0.051 | 83% |
差距只有 $0.003。这个场景两档几乎一样——因为 20 轮在 10 分钟内完成,5 分钟 cache 够用。
场景 B:研究 agent,15 分钟任务,8 轮
系统提示 20,000 tokens + 加载文档 50,000 tokens = 70K cacheable:
| 方案 | 总费用 | 节省 |
|---|---|---|
| 无 cache | 8 × 70K × $3/M = $1.68 | — |
| 5 分钟 cache | $0.263 (write) + 2 × hit + 5 × full (cache 过期后) = $1.35 | 20% |
| 1 小时 cache | $0.315 (write) + 7 × $0.021 = $0.462 | 72% |
这里差距巨大:5 分钟 cache 省 20%,1 小时省 72%。因为 15 分钟任务里 5 分钟 cache 过期了 2-3 次,每次过期都要重写。
决策规则
如果 agent 任务 < 5 分钟:选 5 分钟 cache(写入便宜)
如果 agent 任务 5-60 分钟:选 1 小时 cache(避免多次重写)
如果 agent 任务 > 60 分钟:选 1 小时 cache + 设计 session 拆分
SandBase 上怎么用
通过 SandBase 调 Anthropic 模型时,cache 行为由 Anthropic SDK 层面控制。你的调用走 SandBase 的 /v1/messages 端点:
from anthropic import Anthropic
# SandBase 透传 Anthropic 协议,含 cache_control
client = Anthropic(
base_url="https://api.sandbase.ai/v1",
api_key="sk-..."
)
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=4096,
messages=[{
"role": "user",
"content": [
{
"type": "text",
"text": large_document, # 50K tokens
"cache_control": {"type": "ephemeral"} # 5 分钟 cache
},
{
"type": "text",
"text": "根据以上内容回答..."
}
]
}]
)
常见误区
误区 1:“cache 总是省钱”
不一定。如果你只调一次(写入后不再读),cache 写入比不缓存还贵 25-50%。只有第 2 次及以后的调用才开始省。单次任务不要开 cache。
误区 2:“1 小时 cache 一定比 5 分钟好”
如果任务 2 分钟内完成,1 小时 cache 写入多花 20%($0.0075/10K tokens)而 TTL 优势用不上。选匹配你 agent 节奏的 TTL。
误区 3:“cache 只对长 prompt 有用”
短 prompt(1K tokens)也有用——省的比例一样(90%)。只是绝对金额小:1K tokens 省 $0.0027/次。但高频 agent(500 次/天)算下来也是 $40/月。
FAQ
两档的 read 价格一样?
是的。两档 read 都是 0.1× 基础价。唯一区别在 write 成本和 TTL。
cache 过期后下一次调用会自动重写吗?
是的。过期后的调用被视为新的 cache write,按 write 价格收费。
能在同一个 session 里混用两档吗?
可以。不同的 cache_control 块可以有不同 TTL。比如系统提示用 1 小时,对话历史用 5 分钟。
Opus 5 和 Sonnet 5 的 cache 价格一样吗?
比例一样(1.25×/1.5× write, 0.1× read),但基础价不同。Opus 5 的 cache read 是 $1.50/M(0.1× $15),Sonnet 5 是 $0.30/M(0.1× $3)。Opus 的绝对节省金额更大。
LLM 全面定价看 定价指南。Sonnet 5 详解看 Claude Sonnet 5。
要点
- 两档 cache 读取都省 90%,区别在写入成本和 TTL
- 5 分钟 cache:写入便宜 20%,适合快速循环(<5 分钟任务)
- 1 小时 cache:写入贵但避免多次重写,适合长 session(5-60 分钟)
- 两档都在第 2 次调用回本——单次调用不要开 cache
- 决策规则简单:看 agent 任务时长选 TTL


