在 Claude Code 中选择 Claude 模型与努力程度
Choosing a Claude model and effort level in Claude Code
- 分类:Claude Code
- 产品:Claude Code
- 日期:2026 年 7 月 7 日
- 阅读时间:5 分钟
- 分享链接:https://claude.com/blog/claude-model-and-effort-level-in-claude-code
核心要点:
- Claude 模型选择决定了模型固定的权重集,即模型的整体能力范围。虽然可以为模型提供上下文或进行引导,但模型的整体知识库和能力是固定的。
- 努力程度(Effort)不仅仅是“思考时间”。它控制着 Claude 为你的请求所做的总工作量,包括读取的文件数量、使用的工具数量,以及在向你反馈之前所执行的步骤数量。
- 对于常规任务,选择较小的模型;对于更复杂或模糊的任务,选择较大的模型。从每个模型的默认努力程度开始,根据你从事的工作类型(而非逐任务)将其调整为一个通用偏好。
- 如果 Claude 拥有所有相关上下文,明确尝试后仍然出错,这表明需要选择一个能力更强的模型。如果 Claude 因跳过文件、未运行测试或中途放弃重构而出错,则应选择更高的努力程度。
Claude Code 的努力程度与模型选择
Claude Code effort levels and model selection
Claude Code 提供了两个看似能“让答案更好”的设置:模型设置和努力程度。你可能会认为,像 Claude Fable 5 这样更大的模型会比 Claude Sonnet 提供更智能的输出,而更高的努力程度意味着 Claude 在回答前会思考更久。
第一个假设是准确的。根据行业标准基准测试,我们最大的模型能力更强。
但努力程度不仅仅是“思考时间”。努力程度控制着 Claude 为你的请求所做的总工作量。这确实包括模型思考的时间,但也包括:
- 它读取了多少文件;
- 它进行了多少验证;
- 以及在向你反馈之前,它在多步骤任务中推进了多远。
在更高的努力程度下,Claude 在向你反馈之前会采取更多此类行动(例如,读取文件、运行测试和复核)。在较低的努力程度下,它宁愿向你询问更多上下文,也不愿花费 token 自行解决问题。
未找到项目。0/5获取 Claude Code 或阅读文档尝试 Claude Code尝试 Claude Code开发者文档开发者文档电子书
模型选择的工作原理
How model selection works
当你按下回车键时,Claude Code 会将你的消息与系统提示(system prompt)、工具定义、你的 CLAUDE.md 文件、对话历史记录以及上下文中的任何文件组合在一起。所有这些内容作为一个请求发送到 API。

然而,模型永远不会将其视为纯文本。在服务器上发生的第一件事是分词(tokenization);文本被分割成片段,每个片段被映射到模型训练时使用的固定词汇表中的一个整数。const 可能映射到 1978,await 可能映射到 4293。从此以后,你的提示(prompt)就是一个整数数组。

模型的任务是获取该数组并预测下一个 token 是什么。它通过计算其词汇表中每个 token 的概率并从顶部选择来实现这一点。在 const x = await 之后,一个训练有素的模型会将高概率放在 fetch(非常可能)上,而将接近零的概率放在 banana(几乎不可能)上。

将你的输入 token 转化为这些概率的是权重(weights,也称为参数)。这些是组织成大型矩阵的数十亿个数字。为了预测一个 token,模型通过那些矩阵运行你的输入,这是一长串矩阵乘法,并在最后读取概率。权重是模型“知道”的一切所在。
每个模型的权重在训练期间设置,当你发送请求时,它们是只读的。 你的提示、你的 CLAUDE.md 或你的上下文中的任何内容都不会改变它们。(如果你遇到过“推理”(inference)这个词,这就是它的全部含义:在训练完成后使用模型,权重是固定的。)

Claude 所知道的关于 TypeScript、流行框架、地道 Go 语言或任何其他通用编程知识的一切,都在训练时被编码到了这些权重中。
你的提示和上下文仍然可以引导(steer)预测(将你的真实代码放在 Claude 面前就是引导,而且效果很好),但它们不会向权重本身添加任何内容。
如果某个库在模型训练时不存在,那么它就不在权重中。你可以将文档放在上下文中,Claude 会使用它们,但那是引导,而不是教学。Claude 的响应只会对该请求产生影响;底层模型并未保留该信息。
因此,当 Claude 自信地调用一个不存在的 API(即幻觉)时,那是权重根据训练模式产生了一个看起来合理的 token 序列,而不是一次失败的查找。
那么,改变模型实际上做了什么?它交换了哪组冻结的权重来处理你的请求。
模型不会一次性生成整个答案。它预测一个 token,将其附加到序列中,然后再次运行整个计算以获取下一个 token。一个 200 token 的响应需要 200 次独立的权重传递。这个循环是你大部分等待时间和输出成本的来源。

所以,模型设置决定了哪些权重处理你的请求,也决定了每个输出 token 的成本。
它没有决定的是生成多少个 token。对于相同的提示,这个数字可能会有很大差异,具体取决于 Claude 决定做多少工作。
这就是努力程度所控制的:Claude 决定为每个轮次(turn)做多少工作。
努力程度的工作原理
How effort works
当 Claude Code 处理任务时,它生成的 token 分为几类:
- 思考(Thinking):你在操作之前和之间看到的流式推理。
- 工具调用(Tool calls):命名工具(如 Read 或 Edit)及其参数的结构化块,然后由 Claude Code 解析和执行。
- 给你的文本(Text to you):计划、进度更新、最后的总结。
这些都是来自同一循环的普通输出 token,按相同费率计费。例如,思考 token 的生成方式与其他输出 token 完全相同,并且在该轮次的剩余时间内保留在上下文中。
当 Claude 继续编写代码时,它之前的推理是输入的一部分,就像它读取的文件一样。

努力程度如何改变这一切?努力程度作为请求的一部分,与你的提示一起发送给模型。模型经过训练,能够理解在每个努力程度下应该如何表现,并且这种习得的行为被固化在冻结的权重中。
当你的请求到达时,努力程度是模型响应的另一个输入,就像它响应你的提示文本一样。这设定了 Claude 的行为,即它在认为任务完成之前需要达到的彻底性和确定性程度。
这在每个轮次都会被考虑,并导致生成更多 token 以产生更高置信度的答案。

在更高的努力程度下,Claude 通常从制定计划开始,努力程度会影响该计划的深度和广度。然而,计划并非一成不变。当 Claude 从其行动中获得结果时,它会更新已取得的进展以及它对累积结果的确定程度。
因此,当一个包含三个假设的调试计划的第一步找到了 bug 时,“调查假设 2 和 3”可能不再是必要的行动。Claude 通常会明确说明这一点,“第一次检查找到了它,因此不需要进行其余检查”,然后跳过。当任务列表在运行中被修改时,你会在 Claude Code 中看到这种情况发生。
在更高的努力程度下,Claude 更倾向于复核额外的假设或验证正确性,但对于简单的任务,它通常不会在更高的努力程度下人为地增加使用量。事实上,我们的团队在模型训练期间非常关注“过度思考”(overthinking),因为它会降低效率。
选择努力程度
Picking an effort level
我们的指导是,对于大多数任务,你应该使用模型的默认努力程度。默认级别是 Claude 会根据大多数人愿意在任务上花费的 token 量来调整其 token 使用量的级别。
将努力程度视为一个手动覆盖开关,用于调整 Claude 工作的努力程度和时长。当你基于你的领域或工作类型对彻底性或速度有强烈偏好时,有意识地选择它。将其视为一种通用偏好,而非逐任务决策。
以下是一些可能有助于指导你的实用见解,在 Claude Opus 4.8 发布后:在我们的测试中,我们发现,当你在同一任务上使用 Opus 4.8 的默认努力设置时,与使用 Opus 4.7 的默认努力设置相比,它会在大约相同数量的 token 下产生更好的结果。
当 Claude 出错时该更改什么
What to change when Claude gets it wrong
当 Claude 出错时,你的第一反应不应该是调整旋钮,而是检查你提供的上下文。你的提示是否过于模糊?Claude 是否连接了正确的工具?是否配备了正确的技能?
如果你正在为一个不应该需要它的任务增加努力程度,那么修复通常在上游,在你的上下文、你的 CLAUDE.md 或任务的范围界定中。
但是,假设你提供了清晰的上下文,而 Claude 仍然出错,那么你需要问自己的问题是:它是没有足够努力,还是它知识不够?

模型:问题太难了
Model: The problem was too hard
当问题确实困难时,选择更大的模型。例如,像微妙的 bug、不熟悉的领域或架构决策这样的问题。在较小的模型无论你提供多少上下文都自信地出错的情况下,更大的模型会有所帮助。
更大的模型也更擅长处理模糊性,而对于较小的模型,具体的执行指令是成功的更好方法。
当工作是常规性的时,选择较小的模型。例如,你可以精确描述的编辑、机械性的更改,或关于已在上下文中的代码的问题。没有理由为任务不需要的能力付费。
如果 Claude 拥有所有相关上下文,明确尝试后仍然出错,这表明需要选择一个更大的模型。如果你正在使用更大的模型,并且工作已经常规化了一段时间,降级到较小的模型将提高速度并通常降低成本,而不会影响输出质量。
努力程度:Claude 不够努力
Effort: Claude didn’t try hard enough
如果 Claude 因跳过文件、未运行测试或未复核其工作而出错,请选择更高的努力程度。如果你选择的努力程度低于模型的默认值,这一点最为相关。
Fable vs. Opus vs. Sonnet:专家中的专家、专家与通才
我喜欢思考这两个设置关系的一种方式:Fable 是一个见过几乎没人见过的问题的专家中的专家,Opus 是专家,而 Sonnet 是一个非常优秀的通才。努力程度决定了他们中任何一个在你的任务上花费的时间。
低努力程度的 Opus 就像与一位对你这类问题有深厚经验的专家交谈五分钟。他们带来了你代码库中不存在的知识:他们以前见过的模式、他们知道要检查的陷阱,只有解决过大量类似问题才能获得的那种东西。但只给他们五分钟意味着快速阅读你的代码,而不是仔细阅读。
高努力程度的 Sonnet 就像给一个非常优秀的通才整个下午的时间。他们会阅读所有内容,运行东西,复核他们的工作,最终彻底理解你的特定代码。他们较少带来的是那种“我以前确切见过这个”的识别能力。
即使是低努力程度的 Fable,也是那个专家中的专家瞥一眼其他人都在纠结的问题,仍然能发现别人发现不了的东西。这种识别能力是你付出最多代价所获得的,所以值得把它留给真正需要它的任务。
这些都不是普遍更好的。模型设置大致是能力有多强;努力程度设置大致是有多彻底。大多数实际任务都需要两者兼备。
努力程度、模型与 token 消耗
Effort, model, and token consumption
那么模型选择、努力程度和 token 消耗是如何相互作用的呢?这取决于任务。
在相同努力程度下的常规工作中,两个模型通常都能正确完成。更大的模型以更高的每 token 价格消耗更多 token,用于额外的验证步骤。这就是为什么在常规工作中降级到较小的模型可以节省实际费用,而不会牺牲质量。

在更困难、多步骤的工作中,情况就不同了。较小的模型必须费力地接近其能力极限,消耗大量迭代,而较大的模型可以用更少的步骤达到相同的质量水平。
你为更大的模型支付了更高的每 token 价格,但在那些真正让较小模型吃力的任务上,每个任务的总成本可能会更低。而且,更重要的是,更大的模型可以完成较小的模型即使在最高努力程度设置下也无法完成的任务。
这一点在 Fable 上最为明显。在长时间、多步骤的工作中,它领先得最多。在我们的测试中,它完成了 Opus 和 Sonnet 在任何努力程度下都无法达到的工作。它的每 token 成本也最高,这是将其保留给需要它的工作的另一个原因。

上面图表中的关键点是,努力程度决定了 Claude 愿意沿着曲线走多远,但同样,这并不意味着 Claude 需要走那么远才能完成任务。
另一个细微差别是:努力程度塑造了 token 消耗,但并不限制它。系统中唯一的硬性上限是 max_tokens,它会在响应中途截断它。这是一个生硬的工具,主要与 API 开发者相关。更柔性的控制,如任务预算或在提示中要求 Claude 保持简洁,是更有用的工具。它们作为模型被训练遵循的指导——如果接近限制,它会寻求结束任务——而不是它撞上的墙。
从默认值开始,然后调整旋钮
Start with the defaults, then reach for the dials
大多数时候,你不应该考虑这两个设置。当结果不理想时,问自己:“是 Claude 知识不够,还是它不够努力?”然后根据需要调整。
本文由 Claude Code 团队的技术成员 Lydia Hallie 撰写。
常见问题解答
未找到项目。
相关文章
Related posts
探索更多产品新闻和团队使用 Claude 构建的最佳实践。
2026 年 7 月 7 日
将 Claude Code 和 Claude Cowork 引入政府
Bringing Claude Code and Claude Cowork to government
产品公告将 Claude Code 和 Claude Cowork 引入政府
2026 年 6 月 2 日
为每项任务提供框架:Claude Code 中的动态工作流
A harness for every task: dynamic workflows in Claude Code
Claude Code为每项任务提供框架:Claude Code 中的动态工作流
2026 年 4 月 30 日
从构建 Claude Code 中汲取的经验教训:提示缓存至关重要
Lessons from building Claude Code: Prompt caching is everything
Claude Code从构建 Claude Code 中汲取的经验教训:提示缓存至关重要
2026 年 6 月 18 日
引导 Claude Code:CLAUDE.md 文件、技能、钩子、规则、子代理等
Steering Claude Code: CLAUDE.md files, skills, hooks, rules, subagents and more
Claude Code引导 Claude Code:CLAUDE.md 文件、技能、钩子、规则、子代理等
改变您的组织使用 Claude 的方式
Transform how your organization operates with Claude
查看定价查看定价联系销售联系销售
获取开发者新闻通讯
产品更新、操作指南、社区亮点等。每月发送到您的收件箱。
谢谢!您已订阅。抱歉,您的提交出现问题,请稍后重试。