AI 入门指南
推理 effort 与思考 token:为什么思考成本更高
思考 token 作为输出计费。effort 级别意味着什么,max_tokens 该设多少才不会截断答案,以及如何估算账单。

本页内容
你的请求只是一个事实性问题。答案只有三行。输出计数器却显示数千个 token。这不是 bug:在回答之前,许多模型会在隐藏的草稿区中思考,而这些思考 token 会作为输出 token 计费。effort 设置决定了其中有多少思考会发生,而 max_tokens 必须为它留出空间,否则你会得到被截断或空的回答。
模型在回答之前做了什么#
想想考试。你可以直接写出答案,也可以先写满一页草稿。草稿通常能在难题上带来更好的结果,但纸不是免费的。推理就是那份草稿,它和其他一切一样按 token 计费。
Anthropic 的扩展思考文档(2026 年 10 月 23 日查阅)指出,思考 token 是计费输出 token 的一部分,响应会告诉你数量:usage.。假设一个响应返回了这样的 usage 块(示例数字):
"usage": {
"input_tokens": 480,
"output_tokens": 2150,
"output_tokens_details": { "thinking_tokens": 1900 }
}你会为 2,150 个输出 token 付费。其中思考占了 1,900 个,所以你实际读到的文本是 2,150 − 1,900 = 250 个 token。即使思考文本没有返回给你,情况也一样:它仍然会被计入。如果你想先弄清楚输入和输出之间的区别,请从 输入 token 与输出 token 开始。
Effort:思考的旋钮#
在 Claude 的 API 中,这个旋钮是 output_。Anthropic 的 effort 页面(2026 年 10 月 23 日查阅)列出了五个级别:low、medium、high、xhigh、max。对初学者来说,有三个细节很重要:
- 它影响每一个输出 token,而不仅仅是思考:文本、工具调用和思考都包括在内。
- 它是一种行为信号,而不是严格的预算。较低的 effort 意味着更少的 token,代价是损失一些能力;在低 effort 下,Claude 在简单问题上可能完全跳过思考。
- 在 Claude Opus 5.5 和 Claude Haiku 5.5 上默认是
medium,在大多数其他支持该参数的模型上默认是high。显式设置默认值与省略它是一样的。
级别会按模型重新校准,所以一个模型上的 high 与另一个模型上的 high 并不代表相同数量的思考,而且并非每个模型都接受每个级别。在一个已发布的视频中,有人对同一个动态图形任务运行了 Claude Opus 5.5 的每个 effort 级别,并比较了图片。这是了解更多思考能带来什么的好方法。它不会告诉你你的账单,因为你的任务不是他们的。
一个简单问题的请求,调低了 effort:
{
"model": "claude-opus-5-5",
"max_tokens": 4000,
"output_config": { "effort": "low" },
"messages": [
{ "role": "user", "content": "What is the capital of Australia?" }
]
}空回答陷阱:思考会计入 max_tokens#
问题是这样发生的。你期望一个两句话的回答,所以把 max_tokens 设为 300。模型开始思考,把 300 花在草稿上,达到限制后停止。你会得到空回复,或者一个在词中间结束的句子,停止原因显示为 max_tokens。
文档说得很明确:max_tokens 是总输出(思考加响应文本)的硬限制,而且即使思考内容没有返回,它也会被计入。在 high effort 及以上,Anthropic 建议设置一个较大的值。
在实践中:
- 取你想要的答案长度。
- 为思考留出充足空间。对于任何高于
low的情况,几千个 token 是一个合理的起点。 - 在最初几次运行后检查停止原因。如果它仍然显示
max_tokens,就提高限制。如果答案完整,你可以降低它。
截断本身,连同 finish_reason 和上下文窗口,在 为什么 AI 回答会在句子中间停止 中有介绍。
长推理对账单的影响#
假设你运行一个每天处理 2,000 张工单的支持机器人。每张工单输入约 500 个 token。简短直接的回答输出约 400 个 token。同一张工单如果进行长时间隐藏推理,输出约 4,000 个 token。这些是示例假设;要了解你自己的数字,请参阅 一个请求使用多少 token。
每天就是 2,000 × 500 = 1,000,000 个输入 token,以及 2,000 × 400 = 800,000 个输出 token 或 2,000 × 4,000 = 8,000,000 个输出 token。无论哪种方式,工单的读者看到的都是同样的两行。唯一变化的是输出量,而输出正是推理会膨胀的那一侧。
在任何对隐藏推理计费的模型上,算术都是一样的:输出 token × 输出价格。对于 DeepSeek-V4-Flash,该价格是每 1M 输出 token $0.10,其输出侧比 OpenRouter 的参考价格更便宜。它还能一次回答最多 32,768 个 token,上下文为 380K,所以较大的 max_tokens 也能容纳。价格按模型固定,没有高峰时段,上表会根据实时价格列表重新计算。所有价格都在 定价页面 上;DeepSeek 页面 有模型详情。
这里有一个可以自己发送的请求。这是一个普通的摘要任务,所以你不需要长推理,而且限制留出了充足空间:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"max_tokens": 2000,
"messages": [
{"role": "user", "content": "Summarize in one sentence: A token is a small piece of text that a model reads and writes, and APIs bill by the token."}
]
}'在回复中,usage. 是你在输出侧付费的内容,而 finish_reason 应该是 stop。如果它显示 length,说明限制截断了答案。获取密钥和第一次调用:文档。
哪种工作用哪个 effort#
- 一个事实、一行摘要、一个标签。 最低 effort。这就是文章开头的情况:你不需要草稿。
- 日常写作、简短解释、简单编辑。 模型的默认值。只有在看到答案的成本后再更改它。
- 棘手的 bug、多步计划、数学问题。
high或以上,以及较大的max_tokens。在这里,额外的思考才是重点。
不确定时,用两个级别运行同一个提示,比较答案,并比较 output_tokens。如果更便宜的答案一样好,你就找到了自己的级别。
迁移旧请求:400 错误#
较旧的代码用 token 预算来控制思考。在 Claude 4.7 及更高版本的模型(Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable 5.1)上,这种形式会被拒绝并返回 400 错误。你要切换到自适应思考,并用 effort 设置深度:
// before: returns 400 on newer models
"thinking": { "type": "enabled", "budget_tokens": 8000 }
// after
"thinking": { "type": "adaptive" },
"output_config": { "effort": "medium" }
还有一个陷阱:在 Opus 5.5 上,自适应思考始终开启,thinking: { "type": "disabled" } 在每个 effort 级别都会返回 400。Haiku 5.5 允许在 high effort 或以下禁用思考。如果你想在 Opus 5.5 上减少思考,请降低 effort,而不是关闭它。
智能体和长对话:选一个级别并保持#
如果你的提示被缓存,在请求之间更改顶层 effort 会使该对话的缓存断点失效。对于智能体循环或长对话,请提前选择一个级别。一些模型在 beta 中提供按消息的 effort,可以保持缓存,在基础打好之后值得一看。长对话还有第二个成本驱动因素,在 为什么长对话成本更高 中有介绍。
在你自己的请求上试试#
- 发送你的真实提示一次,并阅读
usage:有多少输出 token,其中有多少是思考。 - 将 effort 降低一级,再次发送。比较答案和计数。
- 将
max_tokens设置为想要的答案加上思考空间,并检查停止原因。
然后把你自己的 token 计数放入 定价页面 上的实时价格表,你就有了月度估算。



