SSD Nodes Learn 🎉 VPS $4.99/月起
指南 Matt Connor作者: Matt Connor

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 生成的答案。在智能体会话中,生成文本的费用通常不到总账单的十分之一。

已发布的费率,先统一数字

ChartPublished Claude API rates, US dollars per million tokens, August 2026
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 的费率分别为 15 美元。因此,最便宜模型与最昂贵模型之间相差 5 倍,读取与写入之间也相差 5 倍。

Sonnet 5 在 2026 年 8 月 31 日之前采用入门费率,每百万个 token 的输入和输出费率分别为 210 美元。从 2026 年 9 月 1 日起,费率调整为 315 美元。费率会随模型版本发布而变化,因此在据此编制预算前,请先确认当前费率。

最后一列是缓存读取费率。大多数账单由它决定。完成算术计算后,再回头查看这一列。

为什么输出 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 数量可能是实际生成内容的许多倍。

ChartContext size at each turn of a 40 turn agent session
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.70
ChartWhere the money went in one 40 turn Opus 5 session, no caching
The 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 美元。

ChartThe same 40 turn session under four setups, US dollars
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_tokenscache_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 数量,按所用模型的费率计算费用,然后将结果与套餐价格比较。