claude.dev 解读
PlaybooksAddy Osmani2026-11-09约 15 分钟阅读原文 ↗

Which Claude model should you build with? Fable, Opus, Sonnet, or Haiku

先让结果可验证,再调投入与模型,以完成质量和任务总成本定档。

主张
6
审视
7
遗漏
2
  1. 01作者建议从 Opus 5.5 的 medium 起步,但真正值得学的是选型顺序:先让结果可验证,再调 effort,仍缺能力才换模型,最后用自己任务的完成质量与总成本决定。
  2. 02便宜模型适合输出容易核查的局部工作;上下文、重跑、误读返工和切换模型后的状态损失,都可能吃掉 token 单价带来的节省。
怎么读这篇
作者主张 · Addy Osmani我们的审视
01

模型定能力,投入调深浅

模型与 effort 调的是不同东西:前者决定能力范围,后者调整投入,不能互相完全替代。

机制拆解

原文把 Opus 5.5 的 medium 作为多数编码和知识工作的起点,把范围清楚的日常任务下放给 Sonnet,把简单批量任务下放给 Haiku,把最难技术任务和长时间无人值守运行交给 Fable。关键边界是:规格清楚不等于任务简单,迁移和性能优化仍可能需要更强模型;提高 effort 能增加思考、工具调用和自查,却不能补出模型欠缺的知识或技能。因此,超过 high 之前应比较更强模型的较低档位,而不是沿同一模型无限加档。

“It's a finer dial for both cost and capability.” ¶9

数字口径

模型与 effort 必须一起读:Fable 5.2 的 high 与 Opus 5.5 的 max 接近,只支持该基准下这组配置的比较。另一个例子中,Opus 的 xhigh 相对 high 多约 1.4 个得分点,却花费 2.5 倍,也不能套用到 gpt-6.1-sol。

自己验证对每次运行记录实际模型、effort、计费渠道、输入输出与缓存用量,费用按实际渠道核算;在同一任务集上画质量与费用关系,并单独检查支出最高的任务。
02

按任务算账,难题也入预算

选型的经济单位是完成任务,而不是单个 token;难题尾部也必须进入预算。

机制拆解

在 FrontierCode 2.0 上,Fable 5.2 的 high 与 Opus 5.5 的 max 得分接近,分别为 45.3% 和 45.5%,前者每任务费用约为后者的一半。这说明 token 更贵的模型,在特定难题和 effort 组合下仍可能更省。另一个搜索基准包含 20 道题,其中两题贡献 43% 的支出。推断:只测典型短任务,可能选出平时便宜、遇到难题却反复消耗的配置;评测应同时保留常见任务和高成本任务。

“for roughly half the cost per task” ¶15

这一点暂无对应的审视。

03

先能自验证,再给失败升档

可执行的自验证应当先于升档;失败可识别时,才有条件把高成本集中在失败项上。

机制拆解

作者给出的顺序是先提供测试、构建或端点检查,再提高 effort,最后更换模型。在同一 SWE-bench Pro 子集上,low 失败后重跑 high 的方案约通过 97%,每任务约 $0.17;全部使用 high 约通过 95.3%,每任务约 $0.29。机制是让容易完成的任务停在便宜路径,只让失败任务消费更高档位。推断:若检查器漏掉错误,错误结果就不会触发重跑;这套策略首先依赖验收器,而不是依赖模型自称完成。

“re-run only the failures at a high one” ¶25

数字口径

low 加失败重跑的收益来自特定 SWE-bench Pro 子集;原文未交代重跑上限、完整计费分母和重复运行波动。约 97% 的结果也不能证明这条策略在其他任务上更准确。

自己验证保留全部尝试和失败费用,同时报告总费用除以提交任务数、总费用除以验收通过任务数;重复运行相同样本,并用已知错误结果检查验收器是否会错误放行。
04

子代理分工要易查、减负

子代理省钱的前提是边界清楚、结果易查,同时让主模型少读冗长材料。

机制拆解

子代理拥有独立上下文,按自身模型费率计费,只向主模型交回摘要;这能减少主模型后续每轮携带的材料。原文把找文件、跑测试和读日志列为小模型候选,把代码修改与判断留给主模型,并提醒误读搜索结果会让主模型沿错误文件继续花费。上下文长度也会改变经济性:Haiku 5.5 的提示超过 100K tokens 后,输入费率升至短提示档的五倍。推断:批量委派应比较整个流程的成本,不能只比较子代理自身的单价。

“Keep code edits and judgment calls on the main model.” ¶39

可复现性

廉价子代理的实际身份与输入长度都需要核对。原文称内置 Explore 使用会话模型,haiku 别名在不同接入渠道可能指向不同模型;Claude Code 被标记的请求还可能改由旧模型重跑,不能只按配置名给结果归因。

自己验证在实际渠道用小样本确认 CLI 版本、别名解析和最终运行模型,核对转录中的回退通知,并记录输入长度与计费。若计划使用 Haiku 5.5,再比较 100K 阈值两侧的真实任务费用,不能把较长输入截短后仍视为同一任务。
05

换模成功也可能丢失推理

切换模型涉及缓存与推理状态迁移,请求成功不等于前序推理完整保留。

机制拆解

原文说明缓存归写入它的模型所有,换模型后的首轮要为整段对话支付缓存写入费用;先 /compact 或用简短书面计划开启新会话,可缩小这笔开销。推理块还存在方向性的兼容边界:降档会失去上层模型的推理,部分其他切换也会丢失,而 API 仍可成功返回。因此应把关键决策写成新模型可读的摘要。自行构造多模型 API 请求时,还需遵循追加历史、tool_choice: auto、strict 工具与按 type 解析内容块等兼容约束;原文明确说明 Claude Code 等封装已处理 Fable 相应的历史兼容要求。

“the API drops them and the request still succeeds.” ¶35

可复现性

迁移风险不止接口报错,还包括推理块被静默丢弃。原文也要求自行构造的多模型请求满足更严格的历史、工具与内容块契约;这些要求不应未经检查就套到现有 Jev 调用入口。

自己验证若未来使用文中的 Claude API 组合,在隔离测试中分别验证模型切换、历史修改、thinking 设置、工具选择和响应解析;同时记录错误、usage 与上下文摘要后的任务表现。对 Claude Code 使用转录中的实际模型通知核对切换,API 成功只作为接口通过的证据。
06

多模型须实测胜过单模型

多模型路由必须通过真实任务评测证明价值,编排本身不构成收益。

机制拆解

作者要求从真实任务抽样,为每项写完成检查,在独立会话中比较候选模型的不同 effort,记录 usage,再把得分与支出放到同一张图上;多模型组合只有优于单模型候选才值得保留,切换前还应影子运行。独立会话在本文实验设计中的作用是避免共享缓存干扰比较。类似地,只有任务超过一个上下文且能拆分时,廉价 workers 才可能抵消规划与合并开销;单条依赖链或一个上下文能容纳的工作,原文建议继续用单代理。

“Plot score against spend.” ¶59

遗漏

advisor 与批量 workers 的收益证据有限。批量 workers 的省钱例子来自超大代码缺陷搜索,也不能证明内容研究任务值得并行。

自己验证先测单模型基线,再分别增加 advisor 或 workers,记录咨询是否发生、是否纠正错误、规划合并成本与最终验收结果;只有组合在同等质量下带来可重复的收益才保留,不把调用了更强模型或更多代理本身计为成功。

作者没有直接谈到这一点。

厂商视角

从 Opus 起步、最难任务升到 Fable,是作者对自家产品的推荐。文中依据包含厂商运行的公开基准和内部基准,没有提供跨厂商结果,不能据此认定应替换快照中的 Codex 默认模型。

自己验证用同一批实际研究与编码任务,固定输入、工具、权限和完成判据,比较当前配置与候选配置的验收结果、总成本和耗时;把不能取得原始运行记录的厂商结论保留为待验证假设。

作者没有直接谈到这一点。

遗漏

技能列表也没有提供技能正文。已有台账不能替代这些文件的当前状态。

自己验证后续取得相关配置的只读快照,再逐项核对实际模型、effort、验收命令、计费渠道和任务状态,并与台账去重;在此之前,不给未见文件指定具体改动或假设旧建议已经实施。
01

机制聚焦

只为失败任务升档

自动核验能识别失败,才有条件把高档投入集中到失败任务。

  1. 01准备自验证配好测试、构建或调用端点的脚本
  2. 02低档执行所有任务先以 low 运行
  3. 03自动核验检查结果,识别失败任务
  4. 04失败升档仅将失败任务以 high 重跑
依据原文 ¶25 ↗
02

核心观点

01

模型定能力,投入调深浅

模型与 effort 调的是不同东西:前者决定能力范围,后者调整投入,不能互相完全替代。

机制拆解

原文把 Opus 5.5 的 medium 作为多数编码和知识工作的起点,把范围清楚的日常任务下放给 Sonnet,把简单批量任务下放给 Haiku,把最难技术任务和长时间无人值守运行交给 Fable。关键边界是:规格清楚不等于任务简单,迁移和性能优化仍可能需要更强模型;提高 effort 能增加思考、工具调用和自查,却不能补出模型欠缺的知识或技能。因此,超过 high 之前应比较更强模型的较低档位,而不是沿同一模型无限加档。

It's a finer dial for both cost and capability.¶9 ↗

02

按任务算账,难题也入预算

选型的经济单位是完成任务,而不是单个 token;难题尾部也必须进入预算。

机制拆解

在 FrontierCode 2.0 上,Fable 5.2 的 high 与 Opus 5.5 的 max 得分接近,分别为 45.3% 和 45.5%,前者每任务费用约为后者的一半。这说明 token 更贵的模型,在特定难题和 effort 组合下仍可能更省。另一个搜索基准包含 20 道题,其中两题贡献 43% 的支出。推断:只测典型短任务,可能选出平时便宜、遇到难题却反复消耗的配置;评测应同时保留常见任务和高成本任务。

for roughly half the cost per task¶15 ↗

03

先能自验证,再给失败升档

可执行的自验证应当先于升档;失败可识别时,才有条件把高成本集中在失败项上。

机制拆解

作者给出的顺序是先提供测试、构建或端点检查,再提高 effort,最后更换模型。在同一 SWE-bench Pro 子集上,low 失败后重跑 high 的方案约通过 97%,每任务约 $0.17;全部使用 high 约通过 95.3%,每任务约 $0.29。机制是让容易完成的任务停在便宜路径,只让失败任务消费更高档位。推断:若检查器漏掉错误,错误结果就不会触发重跑;这套策略首先依赖验收器,而不是依赖模型自称完成。

re-run only the failures at a high one¶25 ↗

04

子代理分工要易查、减负

子代理省钱的前提是边界清楚、结果易查,同时让主模型少读冗长材料。

机制拆解

子代理拥有独立上下文,按自身模型费率计费,只向主模型交回摘要;这能减少主模型后续每轮携带的材料。原文把找文件、跑测试和读日志列为小模型候选,把代码修改与判断留给主模型,并提醒误读搜索结果会让主模型沿错误文件继续花费。上下文长度也会改变经济性:Haiku 5.5 的提示超过 100K tokens 后,输入费率升至短提示档的五倍。推断:批量委派应比较整个流程的成本,不能只比较子代理自身的单价。

Keep code edits and judgment calls on the main model.¶39 ↗

05

换模成功也可能丢失推理

切换模型涉及缓存与推理状态迁移,请求成功不等于前序推理完整保留。

机制拆解

原文说明缓存归写入它的模型所有,换模型后的首轮要为整段对话支付缓存写入费用;先 /compact 或用简短书面计划开启新会话,可缩小这笔开销。推理块还存在方向性的兼容边界:降档会失去上层模型的推理,部分其他切换也会丢失,而 API 仍可成功返回。因此应把关键决策写成新模型可读的摘要。自行构造多模型 API 请求时,还需遵循追加历史、tool_choice: auto、strict 工具与按 type 解析内容块等兼容约束;原文明确说明 Claude Code 等封装已处理 Fable 相应的历史兼容要求。

the API drops them and the request still succeeds.¶35 ↗

06

多模型须实测胜过单模型

多模型路由必须通过真实任务评测证明价值,编排本身不构成收益。

机制拆解

作者要求从真实任务抽样,为每项写完成检查,在独立会话中比较候选模型的不同 effort,记录 usage,再把得分与支出放到同一张图上;多模型组合只有优于单模型候选才值得保留,切换前还应影子运行。独立会话在本文实验设计中的作用是避免共享缓存干扰比较。类似地,只有任务超过一个上下文且能拆分时,廉价 workers 才可能抵消规划与合并开销;单条依赖链或一个上下文能容纳的工作,原文建议继续用单代理。

Plot score against spend.¶59 ↗

03

批判性审视

厂商视角

从 Opus 起步、最难任务升到 Fable,是作者对自家产品的推荐。文中依据包含厂商运行的公开基准和内部基准,没有提供跨厂商结果,不能据此认定应替换快照中的 Codex 默认模型。

自己验证用同一批实际研究与编码任务,固定输入、工具、权限和完成判据,比较当前配置与候选配置的验收结果、总成本和耗时;把不能取得原始运行记录的厂商结论保留为待验证假设。
数字口径

模型与 effort 必须一起读:Fable 5.2 的 high 与 Opus 5.5 的 max 接近,只支持该基准下这组配置的比较。另一个例子中,Opus 的 xhigh 相对 high 多约 1.4 个得分点,却花费 2.5 倍,也不能套用到 gpt-6.1-sol。

自己验证对每次运行记录实际模型、effort、计费渠道、输入输出与缓存用量,费用按实际渠道核算;在同一任务集上画质量与费用关系,并单独检查支出最高的任务。
数字口径

low 加失败重跑的收益来自特定 SWE-bench Pro 子集;原文未交代重跑上限、完整计费分母和重复运行波动。约 97% 的结果也不能证明这条策略在其他任务上更准确。

自己验证保留全部尝试和失败费用,同时报告总费用除以提交任务数、总费用除以验收通过任务数;重复运行相同样本,并用已知错误结果检查验收器是否会错误放行。
可复现性

廉价子代理的实际身份与输入长度都需要核对。原文称内置 Explore 使用会话模型,haiku 别名在不同接入渠道可能指向不同模型;Claude Code 被标记的请求还可能改由旧模型重跑,不能只按配置名给结果归因。

自己验证在实际渠道用小样本确认 CLI 版本、别名解析和最终运行模型,核对转录中的回退通知,并记录输入长度与计费。若计划使用 Haiku 5.5,再比较 100K 阈值两侧的真实任务费用,不能把较长输入截短后仍视为同一任务。
可复现性

迁移风险不止接口报错,还包括推理块被静默丢弃。原文也要求自行构造的多模型请求满足更严格的历史、工具与内容块契约;这些要求不应未经检查就套到现有 Jev 调用入口。

自己验证若未来使用文中的 Claude API 组合,在隔离测试中分别验证模型切换、历史修改、thinking 设置、工具选择和响应解析;同时记录错误、usage 与上下文摘要后的任务表现。对 Claude Code 使用转录中的实际模型通知核对切换,API 成功只作为接口通过的证据。
遗漏

advisor 与批量 workers 的收益证据有限。批量 workers 的省钱例子来自超大代码缺陷搜索,也不能证明内容研究任务值得并行。

自己验证先测单模型基线,再分别增加 advisor 或 workers,记录咨询是否发生、是否纠正错误、规划合并成本与最终验收结果;只有组合在同等质量下带来可重复的收益才保留,不把调用了更强模型或更多代理本身计为成功。
遗漏

技能列表也没有提供技能正文。已有台账不能替代这些文件的当前状态。

自己验证后续取得相关配置的只读快照,再逐项核对实际模型、effort、验收命令、计费渠道和任务状态,并与台账去重;在此之前,不给未见文件指定具体改动或假设旧建议已经实施。
本篇未覆盖(2)
风格