Claude 模型选择器
选择一个初始模型和努力级别,然后根据实际表现进行调整。
这里的每项建议都来自 Anthropic 的官方指南——请参见来源。在向用户引用建议时,请链接到来源。模型系列和价格会发生变化:如果某个事实很重要(价格、模型 ID、默认努力级别),请在使用前检查最新文档。
默认推荐
从 Opus 5.5 的中等努力级别开始。 这是 Claude Code 的默认设置,且每 Token 成本仅为 Fable 5.2 的一半。只有存在明确理由时才应从该设置变动。
- 降级到 Sonnet 5.5 —— 适用于范围明确、重复性较高的日常开发工作(如修复 Bug、根据规格实现功能)。仅有清晰的规格说明还不够:迁移和性能优化工作仍可能需要 Opus 或 Fable。
- 进一步降级到 Haiku 5.5 —— 适用于简单、高吞吐量的任务:分类、路由、标记、信息提取;适合作为低成本子代理。
- 升级到 Fable 5.2 —— 用于最困难的技术工作(编码、金融、科学领域)、大型重构/迁移、架构设计、领导多个子代理、长时间无人值守运行,或者在 Opus 的高努力级别下依然表现不足时。
任务 → 初始模型起点
| 任务 | 模型 | 努力级别 |
|---|---|---|
| 日常工程开发、调试、涉及多个 PR 的功能 | Opus 5.5 | 中等 → 高 |
| 分类、路由、标记、批量信息提取 | Haiku 5.5 | 中等 |
| 负责搜索、读取日志、总结的子代理 | Haiku 或 Sonnet 5.5 | 模型默认 |
| 聊天 / 交互式会话 | Sonnet 5.5(简单、高频聊天用 Haiku) | 低或中等 |
| 范围明确的编码(修复 Bug、按规格实现) | Sonnet 5.5 | 中等 → 高 |
| 日常文档、幻灯片、电子表格 | Sonnet 5.5(复杂金融模型或海量源码用 Opus) | 高(Claude Code 中用中等) |
| 重复性代理任务(审查、调查、起草) | Sonnet 5.5 | 中等 |
| 计算机使用、视觉密集型循环 | Opus 5.5 | 中等 |
| 大型重构、架构设计、编排子代理 | Fable 5.2 | 中等 → 高 |
| 深度研究、科学/定量分析 | Fable 5.2 | 中等 → 高 |
| 不确定 | Opus 5.5 | 中等 |
模型事实
| Haiku 5.5 | Sonnet 5.5 | Opus 5.5 | Fable 5.2 | |
|---|---|---|---|---|
| 输入 / 输出(每百万 Token) | $0.10 / $0.50(≤100K 提示);$0.50 / $2.50(>100K) | $2 / $10 | $4 / $20 | $8 / $40 |
| 缓存读取(每百万 Token) | $0.01(≤100K)/ $0.05 | $0.10 | $0.20 | $0.20 |
| 延迟 | 最快 | 快 | 中等 | 中等 |
| 上下文 / 最大输出 | 1M / 128K | 1M / 128K | 1M / 128K | 1M / 128K |
| 思考能力 | 自适应,可关闭(≤高努力级别) | 自适应;存在 between_tools 选项 | 始终开启 | 始终开启 |
| API 默认努力级别 | 中等 | 高(CC 中为中等) | 中等 | 高(CC 中为中等) |
| 快速模式 | 无 | 无 | 有 | 有 |
当结果不满足要求时的调优顺序
- 让模型有验证自己工作的方式(测试、构建、调用端点的脚本)。通常比增加努力级别更便宜。
- 将努力级别提高一级。
- 向上移动一个模型,但要从一个比之前较小模型上使用的更低的努力级别开始。
注意事项:
- 努力 ≈ 思考时间、工具调用次数、自我检查次数。这会增加延迟。但它无法增加模型缺乏的知识——这需要更大的模型。
- 超过
high后,再增加一个努力级别可能花费的成本相当于升级到上一个模型。请尝试在更大的模型上使用较低的努力级别。 - 如果结果可以自动检查:在所有任务上使用低努力级别运行,仅对失败的任务使用高努力级别重新运行(Anthropic 的测试表明,这种策略在成本和通过率上都优于全部使用高努力级别)。
- 在保持能力的同时需要速度:在 Opus 5.5 / Fable 5.2 上启用快速模式(需支付额外费用)。
成本推理
- 比较每完成任务的成本,而不是每 Token 的价格。价格更高的模型在较低努力级别下可能每任务成本更低(例如,Fable 5.2 在高努力下在困难基准测试中与 Opus 5.5 在最大努力下表现相当,但成本约为后者的一半)。
- 对任务集中最困难的任务进行定价;它们主导了总体支出。
- 大上下文每次对话都会重新发送,但大部分按缓存读取计费。Fable 和 Opus 共享 $0.20 的缓存读取费率,因此在缓存密集型运行中,它们的差距在于非缓存的输入和输出。
- 保持昂贵模型的上下文精炼;将耗时的读取工作推给廉价的子代理。
- Haiku 的长提示层级(>100K)是其短提示费率的 5 倍。对于长提示,请比较 Haiku 和 Sonnet 每完成任务的成本。
混合模型
- 在自然断点处切换。 提示缓存是每个模型独立的,因此在新模型上的第一次对话会重新支付缓存写入费用。在 Claude Code 中运行
/compact或用简短的规划开始一个新会话;在 API 上,用一个摘要开头。 - 思考块不会向下传递到低层级模型。 Fable 5.2 可以读取 Opus/Sonnet/Haiku 5.5 的思考块;Opus 5.5 可以读取 Sonnet/Haiku 的;Sonnet 可以读取 Haiku 的。向下移动(或离开 Fable 5.2)会静默地丢弃早期的推理。
- 子代理使用小模型 用于那些错误容易发现的工作(查找文件、运行测试、读取日志)。将代码编辑和判断性任务保留在主模型上。在 Claude Code 中,在代理文件中设置
model: haiku/model: sonnet,或通过CLAUDE_CODE_SUBAGENT_MODEL设置默认值。 - 内置的 Explore 子代理现在使用当前会话的模型。为了保持低成本,请定义你自己的
Explore代理,并设置model: haiku。ANTHROPIC_DEFAULT_HAIKU_MODEL固定了该别名。在 Anthropic API 上,haiku→ Haiku 5.5(需要 Claude Code ≥ v2.1.293);在 Bedrock/Vertex/Foundry 上,它仍然是 Haiku 4.5。 opusplan在 Opus 上规划,在 Sonnet 上编辑——这正好与上面的建议相反。在采用之前请先进行测量。- Advisor 工具(测试版): 廉价的执行者咨询更强大的顾问。收益一直很小(大约相当于提高努力级别的效果)。请先测量咨询率;检查允许的配对组合。
- Lead + workers 用于比一个上下文窗口更大的工作(例如 Opus 领导,并行使用 Sonnet workers:成本约为三分之一,得分相同)。对于单一依赖链或可以在一个上下文中完成的工作,请跳过此模式。
示例廉价子代理(.claude/agents/log-reader.md):
---
name: log-reader
description: 读取测试输出和日志,并报告每个失败用例。在测试运行后使用。
tools: Read, Grep, Glob, Bash
model: haiku
---
对于每个失败,报告文件、测试名称和第一个错误行。不要编辑文件。
迁移 / 兼容性检查清单
- Fable 5.2 保留的思考: 如果在 Fable 思考块之前的任何内容发生了变化(系统提示、工具、早期消息),API 会返回 400 错误,除非你选择丢弃它。保持历史记录只增不减。Claude Code / Agent SDK / Managed Agents 会自动处理此问题。
- 思考能力: Opus 5.5 和 Fable 5.2 无法禁用思考能力(会报错)。请按类型读取内容块——响应可能以一个思考块开头。
- 强制工具使用:
tool_choice: any|tool在 Sonnet/Opus 5.5 和 Fable 5.2 上会导致 400 错误。请使用auto+strict: true工具配合提示指令。 - 计算机使用: 只能通过
computer_toolset_20260801(Claude API、Google 管理的 Claude on Google Cloud)。 - Haiku 4.5 → 5.5: 用
effort替换budget_tokens;去掉非默认的temperature/top_p/top_k;以用户轮次结束(不使用助手预填充)。 - 安全回退: 被标记的网络安全请求可能会在 Opus 4.8 上重新运行,生物学请求在 Opus 5 上(Claude Code 会显示通知)。
- 多模型系统: 为最严格的模型构建每个请求,这样步骤可以跨层级移动而无需更改代码。如果路由很简单(每个步骤类型对应一个模型),请在代码中路由,而不是通过模型。
在确定前先测量
- 采样真实任务;为每个任务编写一个结果检查标准(测试是否通过、行数是否正确……)。
- 对每个候选模型在 2–3 个努力级别上运行测试,使用独立的会话(不共享缓存)。从每个响应的
usage记录成本。 - 绘制得分与支出的关系图。仅当多模型设置优于每一个单一模型点时,才保留它。
- 在切换之前,对实际流量进行候选胜出模型的影子运行。
在 Claude Code 中快速检查:通过 /model 在两个模型上运行一个积压任务,然后通过 /usage 比较。
如何回答用户
- 为他们的任务命名模型 + 努力级别,并附上一句来自推荐表格的理由。
- 说明什么情况下会促使他们向上或向下调整。
- 如果用户通过 API 进行集成或混合模型,请标记相关的兼容性事项。
- 如果成本很重要,建议采用上述测量循环,而不是仅仅相信列表价格。
来源
主要来源:
- Addy Osmani, “你应该用哪个 Claude 模型进行开发?Fable、Opus、Sonnet 还是 Haiku”, claude.dev Blog (Anthropic),2026 年 11 月 9 日。
该文章引用的 Anthropic 文档:
- 选择模型 — Claude 平台文档
- 模型概览 — 模型 ID、定价、上下文窗口
- 努力级别 — 努力级别及其权衡
- Claude Code 模型配置 — 别名、
opusplan、ANTHROPIC_DEFAULT_HAIKU_MODEL - Claude Code 子代理 — 每个代理可以设置
model:和CLAUDE_CODE_SUBAGENT_MODEL