Claude Code 模型选择策略
最后核验:2026-07-16。 Claude Code 的具体模型名称、版本、默认值和套餐可用性会变化。
/model是你账户当前可用模型的实时准确信息;本文刻意使用长期稳定的模型别名,不硬编码容易过期的版本号。
Claude Code 不需要为每个任务都选择“最强模型”。更实用的默认策略是:Sonnet 做多数编码,Opus 处理真正困难的推理和架构决策,Haiku 完成快速机械任务。
先用 /model,不要相信静态模型列表
在任何会话中运行:
/model模型选择器会显示当前账户、套餐、组织策略和提供商实际允许使用的选项。官方明确提醒,精确模型名称、版本和可用性会变化,所以旧文章里的固定 model ID 不应继续作为当前配置依据。
你也可以直接切换到稳定别名:
/model sonnet
/model opus
/model haiku别名会解析为当前提供商推荐的对应模型版本,避免把某个会淘汰的版本号写死在个人工作流里。
会话中切换模型不会清除对话上下文。新模型仍能看到已有讨论和计划,因此可以先用 Opus 解决难点,再切回 Sonnet 执行。
Sonnet:多数编码任务的默认选择
官方把 Sonnet 作为绝大多数编码工作的合适选择:能力、速度与用量效率比较平衡。
适合:
- 常规功能开发;
- 编写和修复测试;
- 已知范围的 bug 修复;
- 常见重构和代码审查;
- 文档、脚手架和日常维护。
如果你不确定该选哪个,先用 Sonnet。只有当任务明确暴露出更高推理难度或纯机械性质时,再向上或向下切换。
Opus:复杂推理、困难调试与架构决策
Opus 更适合需要深层推理的任务,例如:
- 大范围、跨模块的重构;
- 多轮仍无法定位的复杂故障;
- 架构方案、关键权衡和迁移计划;
- 高风险代码路径的深入分析;
- 需要综合大量相互制约条件的决策。
Opus 通常会明显消耗更多套餐容量或 API 成本。更经济的做法是需要时切入,而不是所有日常任务都保持 Opus。
Haiku:快速、机械和高吞吐任务
Haiku 适合对深度推理要求不高、结果容易验证的工作:
- 批量重命名、简单替换;
- 添加日志、注释或样板代码;
- 快速查询代码位置;
- 解释简单正则或配置项;
- 高吞吐的脚本化小任务。
如果任务涉及隐蔽业务约束、安全边界或跨模块推理,不要只因速度快就坚持使用 Haiku;可切回 Sonnet 或 Opus。
实用决策表
| 任务 | 建议起点 | 何时切换 |
|---|---|---|
| 功能、测试、已知 bug、常见重构 | Sonnet | 连续推理失败或影响面很广时切 Opus |
| 架构、困难调试、跨系统决策 | Opus | 方案确定、进入机械执行后切 Sonnet |
| 重命名、日志、样板、简单查询 | Haiku | 出现业务歧义或复杂依赖时切 Sonnet |
这不是评分或 benchmark,只是官方当前给出的粗略任务分工。最终效果还取决于提示质量、上下文和验收方式。
用 opusplan 让 Opus 规划、Sonnet 执行
Claude Code 当前支持:
/model opusplan这个别名会在 Plan Mode 中使用 Opus,在批准计划进入执行阶段后切到 Sonnet。它适合“规划确实需要深推理,但实现大多是机械工作”的任务。
切换不会丢失对话,所以 Sonnet 可以继续使用 Opus 形成的计划。仍需注意:opusplan 是模型路由策略,不会自动替你进入 Plan Mode,也不等同于 Auto Mode。
启动时和环境变量配置
只为本次启动指定模型
使用官方 CLI 的 --model 参数和稳定别名:
claude --model sonnet
claude --model opus
claude --model haiku通过环境变量指定
官方支持 ANTHROPIC_MODEL=<alias|name>。如果不需要锁定某个服务商版本,优先使用别名:
ANTHROPIC_MODEL=sonnet claude若要在 shell 配置中长期设置,可以导出同一变量;但这样会影响之后启动的会话。组织通过 Bedrock、Vertex AI 或 Foundry 固定具体模型时,应由管理员按当前官方 model configuration 配置提供商对应的完整名称,不要复制本文或旧文章中的静态 ID。
--model 的优先级高于 ANTHROPIC_MODEL,而会话内 /model 可以立即切换当前模型。想恢复账户推荐默认值时,直接打开 /model 选择 Default,并以选择器显示为准。
模型选择如何影响用量
模型不是唯一消耗因素,但通常 Opus 每轮比 Sonnet 更重,Sonnet 又比 Haiku 更重。会话历史、已读项目文件、CLAUDE.md、effort、工具和连接器也都会影响实际消耗。
建议把模型选择与上下文管理一起做:
- 新任务用
/clear,不要携带旧任务的无关历史; - 同一长任务用
/compact压缩已有对话; - 用
/context查看上下文构成; - 订阅用户用
/usage查看当前限制; - API 用户用
/cost查看当前会话花费。
更多细节见 Claude Code 用量限制说明 和 上下文管理。
三个常见误区
“当前最强模型”适合所有任务
不适合。机械工作使用更重模型会更快消耗容量,却未必带来有意义的质量提升。
模型切换会丢掉前文
不会。官方明确支持在会话中切换且保留对话上下文,这正是 Opus 规划、Sonnet 执行模式能够成立的基础。
网上列出的 model ID 可以长期复制
不可靠。版本和可用性会变化;个人用户用 /model 和稳定别名,企业固定版本则按当前提供商文档配置并定期复核。