第三篇讲的是在聊天框里选模型。到了 agent 这儿,事情变了:一个任务要转很多圈,每一圈都在烧 token,选错了不是多等几秒,而是几十倍的账单差距。

而且你手上有两个旋钮,不是一个:选哪个模型,以及让它使多大劲。这篇讲怎么调。

素材主要来自 Anthropic 官方教程里的两篇,怎么选模型和怎么选 effort,写得很实在,推荐去看原文。例子是 Claude 的,但Codex 的文档讲的是同一个道理,后面放了对照表。

一、两个旋钮,管的不是一回事

这个区分是全篇的核心,官方教程说得很清楚:

  • 模型决定能力上限:它有多聪明,见过多少,能不能想明白这件事。
  • effort 决定使多大劲:它愿意调用多少次工具、花多少 token、转多少圈,要不要回头检查。

effort 不会改变模型知道什么。打个比方:模型是你雇了本科生还是博士,effort 是你跟他说“随便看看”还是“今晚加班搞定”。博士随便看看,可能不如本科生认真干;本科生加班到天亮,也解不出博士才能解的题。

二、第一个旋钮:模型

官方教程给的方法只有三步,很朴素:先想好什么样的结果算有用,再选匹配的模型,最后按这件事的重要程度决定检查多细。快速查个东西看一眼就行,要拿去做决定的分析就得仔细核对。

各档的定位(第三篇有价格):

ClaudeOpenAI 对应适合例子
HaikuGPT-6 Luna简单、要快、量大总结文章、提取信息、分类
SonnetGPT-6.1 Terra万金油,拿不准先用它日常改 bug、写作、一般分析
OpusGPT-6.1 Sol复杂推理,你来我往地迭代分析复杂论文、架构决策
FableGPT-6 Astra最大的项目,长时间自主干活从一个粗略想法做出整个项目

右边的对应是我按定位和价格对的,不是官方说法,两家也没有一一对应的义务。

两个容易忽略的点:

  • Opus 和 Fable 的区别不只是强弱。教程说 Opus 适合你在旁边盯着、来回迭代、在意速度的场合;Fable 慢,适合你把结果描述清楚,让它自己规划、自己跑。一个是副驾,一个是外包。
  • 官方自己的建议也分场合。第三篇说过开发者文档建议从 Opus 开始,而这篇面向普通用户的教程说拿不准从 Sonnet 开始。不矛盾,前者面向的是写程序调 API 的人,后者是聊天和日常使用。

换模型的规则很简单:Sonnet 吃力了换 Opus,Opus 吃力了换 Fable;任务简单就往下换,省额度。

三、第二个旋钮:effort

Claude 的 effort 分这几档(文档):

档位含义适合
low用最少的工作量达到目标,省很多 token,能力有些损失改名字、加注释、简单查询
medium平衡。Opus 5.5 和 Haiku 5.5 的默认值大部分日常任务
high该花多少花多少,追求好结果。其他模型的默认值有一定难度的开发
xhigh为长时间任务准备大重构、多步骤任务
max不设限,要多少资源用多少真的搞不定时才用

不是每个模型都支持全部档位,具体看文档。另外同一个档位在不同模型上不等于同样的工作量,换模型之后别把上一个模型的档位带过来,先回到默认。

调错了有什么后果?两边都有坑:

  • 调太低:它提前收工,交给你一个半成品。你得找出它停在哪,再补一轮提示词,算下来可能比一开始设对还贵。
  • 调太高:费 token,慢,而且会想太多,甚至自己给自己加戏,做一堆你没要的事。

第二条很多人想不到,以为 max 总归更好。不是的,官方明确说默认值是按模型调好的,大多数任务用默认就行。

四、出问题了调哪个

结果不满意的时候,别急着换最贵的模型。按症状来:

症状诊断动作
该做的步骤跳了,没验证就说完成会但没认真升 effort
东西对,但想太多、改太多、自己加需求太用力降 effort
升了 effort 还是想不明白能力不够换更强的模型,effort 回默认
都对,就是又慢又费额度大材小用换便宜的模型或降 effort

顺序是:先调 effort,调不好再换模型。调 effort 不用换东西,最便宜。

五、具体怎么设置

Claude Code 和 Codex 对照:

做什么Claude CodeCodex
会话里切模型/model/model
启动时指定模型claude --model <名字>codex -m gpt-6.1-sol
会话里调力度/effort 或 /effort low/model 里一起选
只这一次claude --effort low启动参数指定
写进配置设置文件的 effortLevelconfig.toml 的 model_reasoning_effort
恢复默认/effort auto重新选默认
拆给多个 agentUltracode(不是 effort 档位)Ultra 模式

几个细节:Claude Code 里 /effort 设的档位下次会话还在,想只用一次就用 --effort;max 默认只在当前会话有效,防止你忘了关。Skill 和子 agent 也能单独设 effort,比如让跑批的子任务用 low。Codex 那边可选的值取决于模型,包括 none、minimal、low、medium、high、xhigh、max,文档的建议一样:从默认开始,任务需要更深的规划再往上加。

聊天框里也有这两个旋钮,只是藏得深一点。Claude 在模型选择器里,ChatGPT 则体现为即时和推理模型。

六、动手做个实验

看十篇文章不如自己试一次。官方教程里有两个小实验,我转述一下,你用自己的任务也行。

实验一:这件事配用什么模型

挑一份你读过的报告,在轻量模型和主力模型的两个新对话里,都发同一句话:

用五条要点总结这份报告,然后指出其中你最想找第二个来源核实的一个说法。

比较两边哪里不一样,别比长度。如果轻量模型抓到了你自己也会标出来的地方,这类活就交给它;只有轻量模型漏掉重要东西的时候,才值得上更大的模型。

实验二:effort 到底买到了什么

建三个空文件夹,分别用不同档位启动,给同一个任务:

claude --effort low
claude
claude --effort max

任务用一个小脚本就行,比如把 CSV 转成 JSON,拿一个样例文件测一下。每次结束时运行 /usage 记下 token 总量。

你会发现 token 从 low 到 max 一路上涨,而三个文件夹里的脚本都能用。这时候再去比代码,看 max 多花的钱到底买到了什么:多了错误处理?多了测试?还是一堆你没要的东西?这一眼比任何文章都管用,以后你就知道什么活值得加钱。Codex 用户把命令换成对应的就行。

七、几个习惯

  • 从默认开始,一次只动一档。两个旋钮一起动,你就不知道是谁起的作用。
  • 简单活试着往下调,一档一档降,直到发现质量掉了,再回一档。
  • 长任务、你没法自己验证的活,往上调。这类活最怕它半途收工。
  • 换模型后回到默认。
  • 新模型出来后重新试一遍。新模型可能用更低的 effort 就能达到同样的效果,之前的设置就过时了。以前做不了的大任务也值得再试一次。
  • 小活别烧旗舰。这不只是省钱,模型越重响应越慢,额度也掉得越快。

说到底就一句话:模型选能力,effort 选力度,先默认,看结果,再调一档。

下一篇

下一篇回到这个博客的老本行:隐私。你跟 AI 说的话去了哪,默认会不会拿去训练,agent 读过的文件又去了哪,分别怎么关。