使用笔记 · 模型选型手册

四款 Claude 模型, 到底该用哪一个

Fable 5、Opus 4.8、Sonnet 5、Haiku 4.5——名字一串,价格差 10 倍。这篇把 一条选型主线讲透:日常默认 Opus 4.8,轻量小活降 Sonnet 5, 子代理归 Haiku 4.5,只有 Opus 4.8 都啃不动的最苛刻长程任务才召唤 Fable 5。再顺带把 thinking / effort、输出与上下文这三个省钱杠杆一次说清。

Opus 4.8 Fable 5 Sonnet 5 effort 档位 省 token
向下阅读
01

四款模型:定位与定价

先把四款模型的价格和定位摆在一起看。价格单位是每百万 token,输入 / 输出分开计——记住一件事:输出永远比输入贵得多,省钱的重点在少产出(第四、六节细讲)。

Claude Fable 5
claude-fable-5
最强、最贵。只面向 Opus 4.8 都啃不动的最苛刻推理与长程 agentic。
上下文 1M
输入
$10
输出
$50
Claude Opus 4.8日常默认
claude-opus-4-8
高自主 agentic、复杂编码、知识工作、记忆——不确定用什么就用它。
上下文 1M
输入
$5
输出
$25
Claude Sonnet 5
claude-sonnet-5
近 Opus 质量的编码 / agentic,Sonnet 成本。明确的轻量小活交给它。
上下文 1M
输入
$3
输出
$15
Claude Haiku 4.5
claude-haiku-4-5
最快最省。是子代理的默认模型(系统自动唤起),一般不用手动指定。
上下文 200K
输入
$1
输出
$5

关系要厘清:谁是日常默认,谁是攻坚兜底

  • Opus 4.8 是日常默认($5 / $25):高自主 agentic、复杂编码、知识工作、关键推理都默认用它。
  • Fable 5 不是日常选择——它是最强的广泛发布模型,但定价高于 Opus 层,只面向 Opus 4.8 都啃不动的最苛刻长程自主任务。

Tokenizer 提醒(迁移必看):Sonnet 5 用了新 tokenizer,同样一段文本比 Sonnet 4.6 多约 30% token——单价没变,但等价请求的成本上升了。迁移后先用 count_tokens 重新基线,别沿用旧模型的 token 预算。Fable 5 与 Opus 4.8 / 4.7 同 tokenizer,从它们迁来 token 数基本不变。

Fable 5 有一批「与众不同」的 API 行为

如果你真的要直调 Fable 5,下面这些坑要先知道(用 Claude Code、走中转分组时多数由客户端替你处理,但心里有数不吃亏):

行为说明
思考恒开 不能传 thinking,传 disabled 会 400(Opus 4.8 / 4.7 传 disabled 反而合法)
思维链不返回 原始 CoT 永不返回,只能拿 display:"summarized" 摘要(此规则现已扩展到 Sonnet 5 / Opus 4.8·4.7,新模型默认 display:"omitted":思考字段为空,只回 signature);同模型续聊时思考块要原样回传,换模型会被静默丢弃且不计费
可能返回 refusal 安全分类器可能拒绝良性相邻任务。新代码默认开服务端 fallback:beta 头 server-side-fallback-2026-06-01 + fallbacks:[{"model":"claude-opus-4-8"}],被拒后同一次调用内由 Opus 4.8 重跑
要求 30 天数据保留 ZDR / 保留期不足的组织,所有请求都 400

fallback 计费规则:输出前被拒完全不计费;流式中途被拒只计已流出部分(应丢弃);fallback 重跑按 Opus 4.8 自己的价格计费。

02

任务与场景选型

核心原则只有一句:日常默认 Opus 4.8。Sonnet 5 仅用于轻量小任务;Haiku 4.5 是子代理的默认模型(系统自动唤起,无需手动选);Fable 5 只在 Opus 4.8 不够时攻坚。

模型定位典型适用任务
Opus 4.8 日常默认 高自主 agentic、复杂编码、知识工作、关键推理——不确定用什么就用它
Sonnet 5 轻量小任务 简单改写、总结、格式化、批处理等明确的小活
Haiku 4.5 子代理默认 系统唤起子代理时自动使用,一般不用手动指定
Fable 5 攻坚 最苛刻的长程自主运行、一次做对且错误代价极高的关键推理、多模态硬任务

一句话判断法(照着走就行)

1
默认就选它
不用纠结,主任务直接给 Opus 4.8。
2
任务明显轻量简单?
改写 / 总结 / 格式化 / 批处理小活 → 降到 Sonnet 5。
3
Opus 4.8 跑过仍不够,且是最苛刻长程自主任务?
才召唤 Fable 5 攻坚。

别做「先小后大逐档试错」。主任务直接给 Opus 4.8,避免用便宜模型返工——返工反而更贵。Haiku 4.5 归子代理自动用,你基本不用管它。

03

你是在用 Claude Code,还是直调 API?

再往下几章会讲一堆参数——thinking、effort、max_tokens、task_budget、上下文管理、缓存前缀……但你到底关不关心它们,取决于你走哪条路。先把两种使用场景分开看清楚,再决定要不要往下读。

场景 A

在 Claude Code 里

你只需要挑模型,其他全交给客户端。这也是我们主推 Claude 系列的核心理由——把最强模型的推理上限直接交到手里,不用为参数细节分心。

  • 模型:/model opus(日常主力)· /model sonnet(轻量小活)· /model fable(攻坚)
  • 思考深度(effort):Opus 4.8 / Sonnet 5 / Fable 5 默认 high,Opus 4.7 默认 xhigh——我们推荐直接拉到 /effort xhigh:用 Claude 就是为了推理上限,档位给拉满
  • 思维链:Claude Code 客户端自动处理签名回传与显示;界面里可 Ctrl+O 展开思考摘要
  • 其它参数:thinking / max_tokens / 缓存 / 上下文压缩 / 结构化输出——全部由客户端自适应管理,不用你手动传
  • 单轮想更深挖:prompt 里加 ultrathink 关键词即可
要做的事 只挑模型 + 选 effort 档位,剩下的忘掉
场景 B

直调 API(含走 VibeAPI 中转)

每个参数都要自己传对。不同模型的写法差异、思维链的取回方式、上下文的编辑压缩规则——都得亲自管,一处不对就是 400 或者悄悄浪费 token。

  • 思维链现在统一不返回明文了:新模型(Fable 5 / Sonnet 5 / Opus 4.8 / 4.7)默认 display: "omitted"——响应里 thinking 字段为空,只回一个加密 signature;想让用户看到得显式传 display: "summarized" 拿摘要(依然不是原始 CoT)
  • 多轮续聊:signature 要原样回传,否则思考状态丢失;换模型时 signature 被静默丢弃
  • 参数写法因模型而异:Fable 5 不能传 thinking、旧模型才用 budget_tokens、新模型采样参数会 400(详见 04 章)
  • 输出 / 上下文 / 缓存:都得你自己算预算、自己压缩、自己维护缓存前缀(详见 05-07 章)
  • 计费仍按完整思考 token:omitted 只是不传输,钱照收
要做的事 读完 04-07 章,把每个参数一次配对

怎么判断自己在哪个场景?命令行跑 claude、VS Code / JetBrains 的 Claude Code 扩展、桌面 App、web 版 claude.ai/code——都是场景 A;自己写代码 POST https://api.anthropic.com/v1/messages、或 POST https://api.vibeapi.cn/...(走 VibeAPI 中转分组)——都是场景 B。

一个常见误解:「走 VibeAPI 中转」不等于「用 Claude Code」。中转分组只帮你转发请求、不动参数——所以只要是你自己写代码调 API,就属于场景 B,参数得自己写对。Claude Code 客户端本身也可以配 ANTHROPIC_BASE_URL 指向 VibeAPI 中转——那种用法仍然属于场景 A,客户端还是替你管所有参数。

04

最影响质量与成本的一对参数

本章面向直调 API场景 · Claude Code 用户可跳过(客户端已自动处理)

选好模型只是第一步。真正决定「这次调用花多少钱、答得多好」的,是 thinking(思考) 和 effort(努力度) 这对参数。新模型已经废弃固定的 budget_tokens,改用自适应思考 + effort 档位。

thinking 怎么设:每款模型写法不同

模型正确写法说明
Fable 5 不传 thinking 思考恒开;传 disabled 会 400(传 adaptive 合法但多余)
Opus 4.8 / 4.7 {"type":"adaptive"} 省略则不思考,需显式开;disabled 合法
Sonnet 5 省略即自适应 省略默认就是 adaptive(与 4.6 相反——迁移时留意 max_tokens 要给思考留余量)
旧模型 (≤4.5) {"type":"enabled","budget_tokens":N} N 必须 < max_tokens,最小 1024

三个「会 400」的旧习惯,现在必须改掉:

  • budget_tokens 在 Fable 5 / Opus 4.8·4.7 / Sonnet 5 上会 400(Opus 4.6 / Sonnet 4.6 上是 deprecated 但仍可用,仅作迁移过渡)。
  • 采样参数 temperature / top_p / top_k 在 Fable 5 / Opus 4.8·4.7 上会 400,Sonnet 5 上非默认值也会 400——删掉它们,改用提示词引导风格与多样性。
  • 想给用户展示推理过程,加 display:"summarized";否则默认 omitted,思考块文本为空,流式看起来像长时间卡顿(这是从 4.6 默认 summarized 的静默变更)。

effort 档位:默认 high,别反射式上 max

通过 output_config: {effort: ...} 设置。档位越高越聪明也越贵——但新模型智力上限更高,high 常是甜点,不要一上来就顶格。

low 分类、简单查询、延迟敏感且非智力密集;子 agent 最省
medium 成本敏感、需降 token 又要一定质量(Sonnet5 medium ≈ Sonnet4.6 high) 平衡偏省
high 默认——大多数智力敏感工作,质量 / 成本甜点 推荐
xhigh 最难的编码 / agentic(仅 Fable5 / Opus4.7+ / Sonnet5 支持) 偏质量
max 正确性 >> 成本、不介意延迟;可能过度思考、收益递减 最贵

支持范围注意:effort 在 Haiku 4.5 / Sonnet 4.5 上会报错(不支持);max 需 Fable5 / Opus4.6+ / Sonnet5 / Sonnet4.6。

省 token 不只靠降质量。effort 越低 = 更少更集中的工具调用、更少前言、更简短确认。先在自己的评测集上扫 medium / high / xhigh 再定档;子任务 / 简单任务用 low,长程 agentic 用 high / xhigh 并把完整任务规格一次说清。

05

输出控制:省钱的第一杠杆

本章面向直调 API场景 · Claude Code 里 max_tokens / task_budget / streaming 全由客户端管

输出比输入贵得多——Fable 5 输出 $50 vs 输入 $10,整整 5 倍。所以省钱的重点从来不是「少喂」,而是少产出。

max_tokens:别定太低,也别裸奔大值

场景建议值原因
非流式常规请求~16000保持在 SDK HTTP 超时之下
流式请求~64000无超时顾虑,给模型空间
分类 / 短输出~256明确限制产出
缓存预热0max_tokens:0 只预热不产出(不能与 stream / 结构化输出 / 强制 tool_choice / Batch 同用)

撞上限会从半句截断并需重试,别一味压低。max_tokens 是思考 + 正文的总上限:Sonnet 5 省略 thinking 默认自适应思考,预算太紧会出现「几乎全是思考 + 截断答案」。另外 128K 输出(Fable5 / Opus4.6+ / Sonnet5·4.6;Haiku 4.5 上限 64K)必须走 streaming,否则 HTTP 超时——用 .stream() + .get_final_message()。

压缩输出:最直接的省产出手段

  • 明确要求「只给结论 / 只给代码 / 限定字数」;positive 示例比「不要啰嗦」更有效。
  • effort 降档也会减少前言与确认(见上一节)。
  • 新模型(Opus 4.8 / Sonnet 5)默认叙述更多——加一句「工具调用间默认沉默,只在有发现 / 换方向 / 受阻时说一句」可显著减产。

结构化输出:减少无效 token 与重试

  • 用 output_config: {format: {type:"json_schema", schema:...}} 约束响应,别用已废弃的 output_format。
  • 强制工具参数合规:工具定义上加 strict:true(配 additionalProperties:false + required)——注意放在工具上,不是 tool_choice 上。

prefill 技巧要弃用了:Fable5 / Opus4.6+ / Sonnet4.6 / Sonnet5 不支持 assistant 前缀填充(会 400;Sonnet 4.5 及更早仍支持)。用结构化输出或系统提示替代旧的 prefill。唯一例外:Fable 5 fallback credit 重试时回显被拒响应的 prefill claim 是被接受的。

task_budget:让模型自己优雅收尾(beta)

适用 Fable5 / Sonnet5 / Opus4.8·4.7。写法 output_config: {task_budget: {type:"tokens", total:N}}(beta 头 task-budgets-2026-03-13,最小 20000)。

max_tokens
模型看不见的硬上限
撞到就硬截断、从半句停
需要你重试
task_budget
模型知情的整轮软预算
看到倒计时自我节流
优雅收尾,不被硬砍

迁移时别乱设 task_budget——预算值要么实测、要么问用户,别猜。

06

上下文与长任务管理

本章面向直调 API场景 · Claude Code 里上下文编辑、压缩、缓存都由客户端管

1M 上下文不等于该把整库塞进去——喂得越多越慢越贵。三种机制配合用,按场景挑。

机制何时用做什么成本
控制上下文长度 首选,任何时候 只喂必要片段;用 RAG 检索代替整库塞入;及时裁剪历史 最省
上下文编辑
context editing
多轮后旧工具结果 / 思考块变陈旧 清除旧 tool_result 或 thinking 块(不总结) 省
压缩
compaction
会话逼近上下文窗口上限 服务端总结早期上下文为压缩块 中

一句话分清「编辑」和「压缩」:编辑是「删」陈旧轮次,压缩是「近上限时总结」。二者都在会话内;跨会话持久化要靠记忆(memory)。长程 agent 常三者并用。

关键 API 细节(易踩坑)

压缩(beta,compact-2026-01-12):必须把 response.content 整个追加回 messages——压缩块要靠它替换被压缩的历史。只取文本字符串追加会静默丢失压缩状态。

上下文编辑(beta,context-management-2025-06-27):用 context_management.edits,类型 clear_tool_uses_20250919 或 clear_thinking_20251015——不是 compact_20260112(那是压缩,别混)。二者都走 client.beta.messages.*。

提示缓存由 Claude Code 客户端默认管理,无需手动配置——仅当自己直调 API 构建长程 agent 时,才需要关心缓存前缀问题。

07

成本优化策略(速查)

把前面几节的省钱手段汇成一张速查表——记住哪一招省在「输入侧」、哪一招省在「输出侧」,用起来就有的放矢。

手段做法省在哪
压缩输出只给结论 / 代码、限字数、降 effort(见 04)输出侧
控制上下文RAG 代替整库、裁剪历史、context editing(见 05)输入侧
批处理(Batch)可容忍延迟的任务走批量接口全 token 5 折
明确降档明确的轻量小活交给 Sonnet 5,别占用 Opus避免大材小用
结构化输出JSON schema / strict 工具约束,减少重试减无效 token
监控预算对 Fable 5 / Opus 单独计量,设 token 上限或 task_budget防长任务失控
省钱三招

限输出降 effort + 控住上下文(RAG / 编辑 / 压缩)+ 明确小活降档 Sonnet —— 这就是最大的省钱杠杆。

08

分工方案:谁打主力,谁攻坚

把四款模型当成一支队伍:Opus 打主力、Sonnet 干小活、Haiku 归子代理、Fable 攻坚。不做「先小后大逐档试错」——主任务直接给 Opus 4.8,避免便宜模型返工反而更贵。

Opus 4.8日常默认主力
高自主 agentic、复杂编码、知识工作、关键推理。日常任务默认它,不确定就用它。
Sonnet 5轻量小任务
任务明确轻量(改写、格式化、批处理小活)才交给它,为主力腾出预算。
Haiku 4.5子代理默认
系统唤起子代理时自动使用,无需手动指定或管理,放手交给它。
Fable 5攻坚兜底
Opus 4.8 跑过仍不够的最苛刻长程自主任务才召唤;也可只做关键审校,用少量顶配 token 保住质量。

一个进阶用法:让 Fable 5 / Opus 4.8 只做关键审校——主体用便宜模型跑,最后用少量顶配 token 把一遍质量关,比全程顶配更划算。

09 · 总结

一条主线:日常默认 Opus 4.8,其余按需增减。

明确的轻量小活降到 Sonnet 5;Haiku 4.5 留给子代理自动用;
只在 Opus 4.8 都不够的最苛刻长程任务,才召唤 Fable 5。
Claude Code 里只挑模型,其他忘掉;直调 API 才要每个参数亲自写对。

✅ 日常默认 Opus 4.8:高自主 agentic、复杂知识工作、跨会话记忆、日常复杂编码——不确定就用它 ✅ 该上 Fable 5:最苛刻长程自主、一次做对且错误代价极高的关键推理、多模态硬任务 ✅ 降到 Sonnet 5:明确的轻量小活(改写、总结、格式化、批处理) ✅ Haiku 4.5 不用管:子代理默认模型,系统自动调用 🎯 Claude Code 场景:只挑模型 + 拉 /effort xhigh,思考 / 缓存 / 上下文全交给客户端 🔧 直调 API 场景:思维链只回 signature 不回明文,每个参数亲自写对(04-07 章) 💰 省钱三招(API 侧):限输出降 effort + 控住上下文(RAG / 编辑 / 压缩)+ 明确小活降档 Sonnet