本页目录7
- 模型选择决定的是「固定权重」,即模型的整体能力范围;effort 等级决定的是 Claude 在这个能力范围内投入多少工作量。
- 模型权重在训练时就已固定,推理阶段只读;上下文可以「引导」输出,但不能给模型注入训练时不存在的知识。
- effort 不只是「思考时间」,还包括读多少文件、用多少工具、验证多彻底、任务做到多完整——高 effort 下 Claude 生成的 token 量可能是低 effort 的约 7 倍。
- 诊断失败原因很关键:如果是「问题太难、模型不懂」就换更大的模型;如果是「模型没有尽力去做」(漏读文件、没跑测试、半途而废)就调高 effort。
- 官方把 Fable/Opus/Sonnet 分别比作「有独特解题思路的专才」「经验丰富的专家」「能力全面的通才」,effort 决定这三者中任何一个具体干活有多细致。
- 常规、可精确描述的机械性改动适合小模型+低 effort;复杂多步骤任务用大模型虽然单 token 更贵,但因为迭代次数少,总成本反而可能更低。
本文是对 Anthropic 官方文章的中文要点摘要,完整内容以原文为准:https://claude.com/blog/claude-model-and-effort-level-in-claude-code
两个独立的旋钮:模型 和 Effort
文章的核心框架是把「用 Claude Code 干活」拆成两个可以独立调节的维度:
- 模型选择:决定的是「固定权重的集合」,也就是模型整体的能力上限。
- Effort 等级:决定 Claude 在这个能力范围内,针对当前这个请求投入多少工作量。
原文强调,effort 不等于「多想一会儿」,而是控制 Claude 整体做了多少事——读了多少文件、用了多少工具、验证做得多彻底、任务推进到多完整的程度。二者互相独立,调错维度往往是「模型换了但没用」或「effort 加了但还是不会」这类困惑的根源。
模型选择的原理:权重是只读的
每个模型的权重在训练阶段就已经固定,「发请求的时候,这些权重就是只读的」。也就是说:
- 上下文(文档、代码、说明)只能引导模型的预测方向,不能改变它底层已经学到的知识。
- 如果某个库是在模型训练完之后才出现的,给它再多文档也不会让模型「学会」这个库,只是在做引导,不是在教学。
- 每生成一个输出 token,都要重新走一遍模型权重矩阵的完整计算。
这意味着:当 Claude 因为「不知道」而做错时,换更大或更新的模型往往比堆上下文更有效。
Effort 等级的原理:控制的是整体工作量
Effort 会作为输入直接告诉模型当前该多「较真」,进而影响:
- 读多少相关文件
- 验证结果的严格程度
- 多步骤任务要推进到什么完成度才算「做完」
文中提到,更高的 effort 通常会让 Claude 生成大约 7 倍的 token 量,用于换取更高的确定性和更完整的答案;但对简单任务,Claude 并不会为了「显得认真」而人为堆量。
什么时候调模型,什么时候调 Effort
官方给出的诊断思路很直接:Claude 做错了,先判断是「不会」还是「没尽力」。
| 症状 | 应该调整 |
|---|---|
| 微妙的 bug、不熟悉的领域、架构决策、问题本身含糊不清 | 换更大的模型 |
| 可以精确描述的修改、机械性的常规改动 | 用更小的模型 |
| Claude 漏读了文件、没跑测试、任务做一半就停了 | 调高 effort |
| 任务本身很常规、且一直都能稳定做对 | 调低 effort |
简言之:模型对应「问题是否超出了它的能力范围」,effort 对应「它是否在能力范围内尽力去做了」。
三个比喻:专才、专家、通才
文章用一个类比来区分 Fable、Opus、Sonnet 三个模型:
- Fable——像一个有着独特、罕见解题思路的专才。
- Opus——像一个经验深厚的专家。
- Sonnet——像一个能力全面的通才。
关键点在于:无论选了哪一个,effort 决定的是「这个人这次干活有多仔细、多彻底」,模型和 effort 是两条正交的轴,不要混为一谈。
Effort、模型与 Token 消耗/成本的关系
- 对常规任务,小模型每个任务的花费通常更低。
- 对复杂、多步骤的任务,大模型单 token 价格更贵,但因为往往能用更少的迭代次数解决问题,总成本反而可能比小模型反复试错更低。
这提示了一个实用判断标准:不要只看单价,要看「解决这个任务实际要花几轮」。
小结:先用默认值,再动旋钮
文章最后建议的实践顺序是:先用默认的模型和 effort 设置,遇到问题时再针对性调整,而不是一上来就手动配置。遇到 Claude 表现不如预期时,先诊断是「不懂」还是「没尽力」,再决定是换模型还是调 effort,这样调整更精准,也更省成本。