https://claude.com/resources/articles/claude-model-and-effort-level-in-claude-code 讲一下这个blog
回复 群友 7645 这篇是 Anthropic Claude Code 团队 Lydia Hallie 写的《Claude Code 里的模型选择与 effort 级别》。核心意思是:模型选的是“有多懂”,effort 选的是“有多较真”,两个旋钮管两件事。 先说“模型”设置。你按下回车时,Claude Code 会把系统提示、工具定义、你的 CLAUDE.md、历史对话和上下文文件拼成一个请求发给 API,服务器先把它切成 token,再交给模型。模型“知道”什么全存在权重里;权重在训练时就定死了,推理时只读不改。所以换模型,本质上是换一套冻结的权重来处理你的请求,它同时决定输出 token 的价格。你的 prompt 和上下文只能“引导”(steering)这次预测,不能“教学”,它不会让模型真正记住新知识;模型会一本正经地调用不存在的 API,是因为权重在根据训练规律生成看似合理的 token。 再说 effort。很多人以为它只是“思考时间”,但文章纠正的是:effort 控制这一轮整体做多少工作,包括读多少个文件、做多少验证、在回来找你之前能推进多远。它作为请求的一部分发给模型,模型训练时就学过各级 effort 下该怎么表现。文章里有一张对比图:同一个 prompt,高 effort 大约生成 7 倍 token 才达到更高置信度。不过高 effort 不会给简单任务刻意注水,Anthropic 团队在训练时反而很在意“过度思考”,因为它会降低效果。 然后是经常被混在一起的一层:effort 决定 Claude 愿意沿曲线走多远,不代表它一定需要走那么远。计划也不是写死的,跑到一半发现第一个假设就命中 bug,它会明确说“剩下的不用查了”,直接跳过。系统里真正的硬上限只有 max_tokens,撞到就直接截断;这是给 API 开发者用的粗暴手段,比较柔和的控制是任务预算、在 prompt 里要求简短这类引导。 实际怎么选,文章给了个挺好用的判断:出问题时先从上下文查起,prompt 是不是太糊、工具接对没有、技能给够没有。上下文都没问题还是错,再问自己一句——它是没想透彻,还是压根不会。 不会,也就是问题太难、太模糊,或者小模型给了再多上下文也自信地答错,就换更大的模型。大模型在歧义场景下更能自己拿主意,小模型更适合明确指令加例行工作:你能精确描述的修改、机械改动、问已经在上下文里的代码。那句“没理由为任务不需要的能力付费”是它反复强调的。 没想透彻,也就是跳过了文件、没跑测试、重构做到一半撂挑子,就调高 effort。注意文章提到,如果是把已经低于默认值的 effort 再往回调,那意义不大;大部分任务建议就用模型默认的 effort,把 effort 当成整体偏好来调,而不是每单任务一个设置。 它给了个我很喜欢的类比:Fable 是见过极少数人才碰到的难题的专家,Opus 是资深行家,Sonnet 是很好的通才;effort 决定这三个人在你这个任务上花多少时间。所以 Opus 低 effort 等于只请专家看五分钟,知识独到但只是快扫一眼;Sonnet 高 effort 等于让通才干一下午,他会把你这套具体代码摸很清楚,缺的是那种“我正好见过这个坑”的直觉。 成本那节有个反直觉的点值得记住:例行活上,大模型在同 effort 下靠额外验证步骤烧更多 token,单价还贵,所以降到小模型能实省;但真正难的多步任务,小模型得死磕到能力极限、烧一堆迭代,大模型几步就到同一质量线,单任务总成本反而可能更低;更关键的是有些任务小模型顶到最高 effort 也做不了。 最后一句总结:平时别想这两个旋钮,默认就好;只有结果不达预期时,才判断是“不懂”还是“不使劲”,再调。