Claude 为什么这么贵?Token 费用怎么算
Claude API 输出 token 价格是输入的5倍,而且每轮都会重读完整上下文。用一次真实会话算清账单,并介绍4种降低成本的方法。
Claude 为什么昂贵?简短答案
Claude 昂贵有 4 个原因,而且这些原因会叠加。输出 token 的价格是输入 token 的 5 倍。API 不会保存对话记忆,因此每轮都会重新发送完整历史记录,并再次计费。智能体会将一个问题转换为几十次 API 调用,而每次调用都会携带不断增长的历史记录。此外,前沿模型的定价依据是其处理任务的难度,而不是运行小型模型的成本。
token 是一段文本。粗略来说,1 个 token 约等于 4 个字符,或约等于 0.75 个英文单词。价格按每百万个 token 报价,单位写作 MTok(million tokens)。以下所有价格均为截至 2026 年 8 月公布的 Claude API 价格。
大多数意外账单都来自上述第 2 和第 3 个原因。人们通常认为,真正产生费用的是 Claude 生成的答案。在智能体会话中,生成文本的费用通常不到总账单的十分之一。
已发布的费率,先统一数字
The data behind this chart
[
{
"label": "Haiku 4.5",
"input_usd": 1,
"output_usd": 5,
"cache_read_usd": "0.10"
},
{
"label": "Sonnet 5, to Aug 31 2026",
"input_usd": 2,
"output_usd": 10,
"cache_read_usd": "0.20"
},
{
"label": "Sonnet 5, from Sep 1 2026",
"input_usd": 3,
"output_usd": 15,
"cache_read_usd": "0.30"
},
{
"label": "Opus 5",
"input_usd": 5,
"output_usd": 25,
"cache_read_usd": "0.50"
}
]请关注费率的比例,而不是绝对数值。每个模型的输出费率都正好是输入费率的 5 倍。Opus 5 的输入费率为每百万个输入 token 5 美元,输出费率为 25 美元。Haiku 4.5 的费率分别为 1 和 5 美元。因此,最便宜模型与最昂贵模型之间相差 5 倍,读取与写入之间也相差 5 倍。
Sonnet 5 在 2026 年 8 月 31 日之前采用入门费率,每百万个 token 的输入和输出费率分别为 2 和 10 美元。从 2026 年 9 月 1 日起,费率调整为 3 和 15 美元。费率会随模型版本发布而变化,因此在据此编制预算前,请先确认当前费率。
最后一列是缓存读取费率。大多数账单由它决定。完成算术计算后,再回头查看这一列。
为什么输出 token 的成本是输入 token 的5倍?
读取和写入所需的工作量不同。输入 token 只需处理一遍。模型会一次读取完整提示词,处理过程可在各部分之间并行执行。因此,读取60000 token 的提示词,并不会比读取1000 token 的提示词耗时60000倍。
输出 token 会逐个生成。每个新 token 都需要单独经过模型处理,并且需要将此前的所有 token 作为上下文。生成1000个 token 意味着连续执行1000次处理。此类串行工作无法像读取那样并行,因此每个输出 token 占用硬件的时间更长。
因此,“让回答更短”这一方法的效果低于很多人的预期。它只能减少代理服务账单中较小的一部分。
为什么每一轮都会再次为整段对话计费?
Claude API 是无状态的。Anthropic 端没有一段持续保存、只需追加一条消息的对话。每次请求都会携带完整的消息历史,模型会先读取全部内容,再生成回复。因此,第 30 轮也会按第 1 至第 29 轮的内容计费。
这意味着,对话成本的增长速度会高于对话长度。第 1 轮只需处理较小的上下文。第 40 轮则需要处理较大的上下文。将全部 40 轮相加后,您支付的 token 数量可能是实际生成内容的许多倍。
The data behind this chart
[
{
"turn": 1,
"context_tokens": "20,000"
},
{
"turn": 5,
"context_tokens": "32,000"
},
{
"turn": 10,
"context_tokens": "45,000"
},
{
"turn": 15,
"context_tokens": "55,000"
},
{
"turn": 20,
"context_tokens": "64,000"
},
{
"turn": 25,
"context_tokens": "74,000"
},
{
"turn": 30,
"context_tokens": "84,000"
},
{
"turn": 35,
"context_tokens": "92,000"
},
{
"turn": 40,
"context_tokens": "100,000"
}
]上面的会话从 20,000 个 token 开始,其中包括系统提示、工具定义,以及代理首次打开的文件。到第 40 轮时,上下文已包含 100,000 个 token。将这 40 轮取平均后,每次请求读取的 token 数约为 60,000。
为什么 agent 的费用远高于聊天?
聊天中,每个问题对应一次请求。agent 中,每个步骤对应一次请求。读取文件是一个步骤。运行测试是一个步骤。读取测试输出是一个步骤。编辑文件是一个步骤。使用 coding agent 完成一个任务通常需要40个步骤。
工具调用还会带来两项额外成本。工具定义会在每次请求中作为输入 token 发送,因为模型每次都必须获知可用的工具。Anthropic 发布了这部分开销:在 tool_choice 设置为 auto 时,Opus 5 的工具调用系统提示占286个 token,此外还要加上您自己的工具 schema 所占的 token。部分服务端工具还会单独收费。Web search 的费用为每1,000次搜索$10,结果消耗的 token 另行计费。
每个工具结果也会永久保留在上下文中。某条命令输出3,000行后,这3,000行会在本次会话的后续每个请求中持续占用上下文。Claude Code 报告的每个会话 token 用量可以直观显示这一点:在执行输出量较大的命令后,观察输入 token 数量立即增加。
一次真实会话中的计算
下面是一小时使用 Opus 5 进行代理式编码的真实示例。共发送 40 次 API 请求。上下文从 20,000 个 token 增长到 100,000 个 token,因此每次请求平均包含约 60,000 个 token。模型每次请求生成约 700 个 token,其中包括简短的工具调用和几段较长的代码。
Requests in the session: 40
Average context per request: 60,000 tokens
Total input tokens billed: 40 x 60,000 = 2,400,000
Input cost on Opus 5: 2,400,000 x $5 / 1,000,000 = $12.00
Total output tokens: 40 x 700 = 28,000
Output cost on Opus 5: 28,000 x $25 / 1,000,000 = $0.70
Session total = $12.70The data behind this chart
[
{
"label": "Input, context re-read",
"billed_tokens": "2,400,000",
"cost_usd": "12.00"
},
{
"label": "Output, code and tool calls",
"billed_tokens": "28,000",
"cost_usd": "0.70"
}
]查看费用构成。读取费用为 12.00 美元,写入费用为 0.70 美元,因此您实际读到的输出约占总费用的 5%。模型生成了 28,000 个 token,但读取费用按 2,400,000 个 token 计费。没有人输入 2.4 million 个 token。同样的 100,000 个 token 被反复读取。
方法 1:提示缓存,这是影响最大的一项
提示缓存会存储提示词稳定前缀的已处理形式。下一个请求会直接从缓存读取此前缀,而不是再次处理。写入缓存的费用为输入价格的 1.25 倍(五分钟缓存),或 2 倍(一小时缓存)。从缓存读取的费用为输入价格的 0.1 倍。在 Opus 5 上,缓存读取价格为每百万个 token 0.50 美元,而不是 5 美元。
将此规则应用到上面的会话。随着对话增长,100,000 个 token 中的每个 token 都只写入缓存一次。其余 2,300,000 个输入 token 都会作为缓存读取。
Tokens written to cache: 100,000
Cache write at 1.25x input: 100,000 x $6.25 / 1,000,000 = $0.63
Tokens read from cache: 2,300,000
Cache read at 0.1x input: 2,300,000 x $0.50 / 1,000,000 = $1.15
Output cost, unchanged = $0.70
Session total = $2.48使用 cache_control 字段标记可缓存部分。将断点放在不会随轮次变化的内容之后:系统提示词和工具定义之后。需要反复引用的长文档也应放在同一个稳定区块中。
{
"model": "claude-opus-5",
"system": [
{
"type": "text",
"text": "<long, stable instructions>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [{"role": "user", "content": "..."}]
}现在,提示词的顺序会直接影响费用。缓存命中要求提示词从开头开始完全匹配,因此每次请求都会变化的内容必须放在所有不变内容之后。如果在系统提示词顶部放置时间戳,每一轮都会破坏缓存:整个前缀都会缓存未命中,系统需要再次写入该前缀,费用为输入价格的 1.25 倍。
响应会告诉您缓存是否生效。发送请求并读取 usage 区块。
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Hello"}]
}'每个响应都会包含类似下面的 usage 对象:
{
"usage": {
"input_tokens": 105,
"cache_creation_input_tokens": 7345,
"cache_read_input_tokens": 7123,
"output_tokens": 239
}
}如果重复请求仍在 cache_read_input_tokens 中显示 0,说明缓存未命中。通常原因是断点之前的某些内容发生了变化。五分钟缓存也会过期,因此六分钟后发送的请求会缓存未命中,然后重新写入缓存。
杠杆 2:将简单回合分配给更小的模型
代理会话中的大多数回合都不复杂,例如打开文件、运行格式化工具或查看差异。这些任务不需要使用前沿模型。将它们路由到 Haiku 4.5,可将输入费率从每百万 5 美元降至 1 美元。
The data behind this chart
[
{
"label": "Opus 5, no caching",
"session_cost_usd": "12.70"
},
{
"label": "Opus 5, cached",
"session_cost_usd": "2.48"
},
{
"label": "Sonnet 5, cached",
"session_cost_usd": "0.99"
},
{
"label": "Haiku 4.5, cached",
"session_cost_usd": "0.50"
}
]同一个会话在不使用缓存的 Opus 5 上需要 12.70 美元;在使用缓存的 Opus 5 上需要 2.48 美元;在使用缓存的 Sonnet 5 上需要 0.99 美元;在使用缓存的 Haiku 4.5 上需要 0.50 美元。仅使用缓存就能将费用降低约百分之八十。选择合适的模型可以进一步消除剩余的大部分费用。
但需要明确一点。更便宜的模型如果给出错误答案,可能会让您重新付出整个会话的成本,还会浪费您自己的时间。应根据任务难度进行路由,而不是根据价格。在 Opus、Sonnet 和 Haiku 之间进行选择详细说明了每个模型适合处理哪些任务。
方法 3:上下文管理
上下文中保留的每个 token 都会在后续每一轮计费,因此越早删除 token,收益越大。在 40 轮会话的第 5 轮直接粘贴一个包含 5,000 个 token 的文件,之后还会被读取 35 次。这会额外产生 175,000 个输入 token。对于 Opus 5,一次不加筛选的粘贴几乎会增加 1 美元的成本。
以下 4 个习惯可以降低这一数字:
- 开始新任务时创建新的会话,不要继续使用昨天的会话。
- 在命令输出到达模型前,使用类似
head -50的方式过滤噪声,而不是事后再过滤。 - 只请求所需的那个函数,不要请求整个文件。
- 长会话停止推进时,请模型先生成摘要,然后从摘要开始新的会话。摘要只有几百个 token,而完整记录可能有十万个 token。
杠杆 4:将所有非交互任务批量处理
Batch API 会异步处理请求,并将输入和输出的费用都降低 50%。如果任务不需要在下一秒内得到响应,就应使用批处理。这适用于分类、提取、积压内容摘要和评估运行。批处理折扣可与提示缓存叠加。交互式会话不适用此折扣,因为交互式会话无需等待处理。
我是不是被宰了?
这才是“为什么 Claude 这么贵”背后真正的问题,所以这里直接回答。费率已经公开,在标准套餐中对所有人都相同,并且按 token 计费。账单中的费用没有任何可酌情调整的部分。费率表无法告诉您是否获得了相应价值,因为它按 token 定价,而您关心的是结果。
因此,应按结果评估成本。上面的会话未命中缓存时花费了 12.70 美元。如果它交付了一个原本需要您花 1 小时完成的功能,这个价格就很低。如果它连续 40 轮原地打转,那么同样的 12.70 美元什么也没买到,问题从来不在费率。
请记住这一点:账单金额随 token 数量增长,而不是随价值增长。长度相同的高效会话和无效会话,成本也相同。这就是四个调节因素比费率表更重要的原因:您无法协商每个 token 的价格,但可以决定任务需要多少 token。
因此,应跟踪每个已完成任务的美元成本,而不是每月的美元支出。如果您优化缓存和路由后,该数值下降,即使月度总额上升,配置也在改善,因为总额增加是由于完成了更多工作。
不会降低费用的做法
一些常见建议几乎没有效果。要求模型“简洁”只会减少输出,而在示例账单中,输出仅占 5%。缩短您自己的问题,只能在 60,000 token 的上下文中少用几百个 token。关闭扩展思考功能,只有在思考 token 确实占输出较大比例时才有帮助;使用量明细会直接显示这一点,无需您自行猜测。
更大的上下文窗口本身也不会增加费用。在 Claude 4.6 及更高版本中,完整的 1,000,000 token 窗口按标准的每 token 费率计费,因此,900,000 token 请求与 9,000 token 请求的单 token 价格相同。窗口大小不会决定价格。决定价格的是您放入窗口的内容。
另外两件事应纳入规划,而不是在单次会话中处理。如果您每天进行交互式使用,请比较按 token 付费和固定套餐:API 与订阅费用对比会完成这项计算。如果代理在服务器上无人值守运行,请先设置硬性支出上限,再调整其他设置;VPS 上 AI 代理的费用控制介绍了相关方法。若只想了解大致规模,1,000,000 个 Claude token 实际能完成什么会将费率表换算为文本页数。
FAQ
为什么开始使用 agent 后,我的 Claude 账单会突然增加?
因为 agent 会针对一个问题发送许多请求,而每个请求都会携带截至当前的完整对话内容。聊天每个问题只发送一个请求。代码 agent 每个步骤发送一个请求,而一个任务执行 40 个步骤很常见。每个请求都会按完整上下文计费,因此一个最终达到 100,000 个 token 的会话,输入 token 总量可能超过 2,000,000。查看 API 响应中的 input_tokens 和 cache_read_input_tokens,即可直接确认这一点。
prompt caching 真的能大幅降低账单吗?
在示例中,会话费用从 12.70 美元降至 2.48 美元,因为读取缓存的费用是输入费率的十分之一。节省金额完全取决于缓存命中率。使用 5 分钟缓存时,只要成功读取一次就能收回成本,因为写入费用是输入费用的 1.25 倍,而读取费用是输入费用的 0.1 倍。如果每个请求都会修改提示词开头附近的内容,则完全不会命中缓存,还会白白支付写入溢价。确认 cache_read_input_tokens 后,再判断它是否正常工作。
我是否应该所有任务都使用 Haiku?
不应该。Haiku 4.5 的输入费用为每 1,000,000 个输入 token 1 美元,而 Opus 5 为 5 美元。因此,在分类和路由等简单的大批量任务中,节省金额确实可观。但在复杂任务中,错误答案带来的成本可能高于模型节省的费用,因为还需要支付重试费用,以及您投入的额外时间。实际可行的模式是混合使用:机械性步骤使用小型模型,需要判断的步骤使用前沿模型。
API 是否比 Claude 订阅更便宜?
这取决于您的使用量是否稳定。订阅是固定月费,但附带使用上限。API 按 token 计费且没有上限;使用量较少或集中在短时间内时,API 更便宜,而在每个工作日都大量使用时,API 更贵。根据用量部分计算您每天的平均 token 数量,按所用模型的费率计算费用,然后将结果与套餐价格比较。