Codex 省钱配置指南:让强模型思考,让轻模型执行
我是安徽最忧郁程序员无隅

用 Codex 写代码,最直观的感受往往是:确实好用,但复杂任务一跑久,模型调用量也会跟着上去。
很多人会直接把默认模型换成更便宜的型号。这样做虽然能降低单次调用价格,却可能让规划变差、工具往返变多,最后用更多时间和 Token 完成同一个任务。
更有效的做法不是把所有模型一起降级,而是按照任务职责分配模型:强模型负责关键判断,轻模型承担高频、边界清楚的工作。
本文基于当前 Codex 官方配置文档,讲清楚这套分工如何配置,以及什么时候不该为了省钱强行使用轻模型。
一、先说结论:省钱靠分工,不是全换便宜模型
一次 Codex 任务并不等于一次模型调用。
主线程需要理解需求、规划任务和汇总结果;子 Agent 会独立搜索代码、修改文件或运行测试;执行 /review 时,还可以使用单独的 Review 模型。每个子 Agent 都会产生自己的模型与工具调用,因此多 Agent 工作流通常比单 Agent 消耗更多 Token。
问题在于,这些工作对模型能力的要求并不相同。
- 主模型面对的信息最不完整,需要处理歧义、拆分任务并决定下一步,应该优先保证质量;
- Review 的目标相对清楚,但仍要识别逻辑错误和边界风险,适合质量与成本更均衡的模型;
- 子 Agent 如果只负责搜索、测试或一个局部修改,可以使用更便宜的模型;
- 上下文压缩可以调整触发阈值,但当前公开配置中没有单独的
compact_model字段。
因此,更稳妥的分工不是“主模型用 Sol,其他全部 Luna”,而是:
Sol 负责模糊且关键的判断,Terra 负责通用执行与 Review,Luna 只接边界清楚、结果容易验证的窄任务。
按照本文写作时 OpenAI 官方模型页列出的价格,GPT-5.6 Sol 每百万输入/输出 Token 分别为 4 美元和 20 美元,Terra 为 2 美元和 12 美元,Luna 为 0.2 美元和 1.2 美元。价格差距很明显,但最终能省多少,还取决于任务路由、缓存命中、返工次数和实际输出长度。
二、看懂 Codex 的四段调用链

1. 主模型:决定任务会不会跑偏
主模型是整条链路的协调者。它要理解用户真正想解决的问题,判断需要读取哪些内容,决定是否拆分子任务,并在多个结果之间做最终取舍。
这里如果判断错了,后面的执行越快,偏离目标也可能越远。因此,主模型通常是最不适合激进降级的位置。
2. 子 Agent:最适合按任务粒度降级
子 Agent 接到的任务通常比主线程具体,例如“扫描认证模块的异常处理”“运行测试并总结失败原因”或“只修改这个配置文件”。任务边界越清楚,对全局推理能力的依赖就越低。
不过,子 Agent 并不是免费并行。官方文档明确说明,每个子 Agent 都会执行自己的模型和工具工作,所以会增加 Token 消耗。只有当任务能够独立并行,或者能把大量噪声挡在主线程之外时,子 Agent 才真正划算。
3. Review:可以换模型,但只影响 /review
review_model 是 Codex 的正式配置项,但它的作用边界需要说清楚:它覆盖的是 /review 使用的模型,不会自动接管所有你口头描述为“代码审查”的子 Agent。
Review 要检查逻辑、边界条件和潜在回归,通常比简单搜索更依赖判断。预算敏感时可以尝试 Luna,但更稳妥的默认选择是 Terra,并给它较高的 reasoning effort。
4. Compact:目前不能单独指定模型
上下文持续增长后,Codex 会进行自动压缩。公开配置提供了 model_auto_compact_token_limit,可以控制触发压缩的 Token 阈值,但当前配置参考中没有单独的 compact_model。
也就是说,我们可以先优化调用量更大的子 Agent 和 /review,不要编造一个并不存在的压缩模型配置。
三、推荐配置:主模型、Review 和子 Agent 怎么分
1. 稳妥版:Sol 规划,Terra 执行和 Review
打开用户级 Codex 配置文件:
- macOS / Linux:
~/.codex/config.toml - Windows:
C:\Users\<用户名>\.codex\config.toml
加入下面的配置:
model = "gpt-5.6-sol"
model_reasoning_effort = "high"
review_model = "gpt-5.6-terra"
[agents]
default_subagent_model = "gpt-5.6-terra"
default_subagent_reasoning_effort = "medium"
这套配置适合大多数项目:主线程保留较强的规划和综合能力,通用子 Agent 使用 Terra,/review 也交给 Terra。
如果任务主要是常规开发,而不是跨模块重构或复杂故障定位,也可以先把主模型的 reasoning effort 从 high 调到 medium,再通过实际任务比较质量和耗时。reasoning effort 越高,通常意味着更多时间和 Token,不应该无条件拉满。
2. 激进版:给窄任务单独准备 Luna Worker
如果你经常处理格式整理、定向搜索、简单测试或批量替换,可以定义一个专门的低成本 Worker,而不是让所有子 Agent 都使用 Luna。
先在 config.toml 中声明这个角色:
[agents.worker]
description = "处理边界清楚、结果容易验证的执行任务"
config_file = "agents/worker.toml"
然后创建 ~/.codex/agents/worker.toml:
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
这里有一个容易忽略的细节:只创建 worker.toml 不够,还要在 [agents.worker] 中通过 config_file 声明这个角色。
使用时,应明确让 Codex 把窄任务交给 worker。涉及架构决策、复杂调试或大范围写入时,仍然使用主模型或 Terra 子 Agent。

3. 第三方 Provider:分工逻辑不变
Codex 支持自定义模型 Provider。Provider 需要配置 base_url、密钥对应的环境变量和 wire_api = "responses",然后通过 model_provider 选择它。
model = "<强模型 ID>"
review_model = "<均衡模型 ID>"
model_provider = "your-provider"
[model_providers.your-provider]
name = "Your Provider"
base_url = "<Responses API 地址>"
env_key = "YOUR_PROVIDER_API_KEY"
wire_api = "responses"
[agents]
default_subagent_model = "<轻量模型 ID>"
default_subagent_reasoning_effort = "medium"
第三方服务的模型名称、接口地址和密钥类型可能随套餐变化,必须以对应厂商的最新文档为准。不要把密钥直接写进 config.toml,只填写环境变量名称。
另外,官方文档说明子 Agent 默认继承父 Agent 的 Provider。选择子 Agent 模型时,需要确认该 Provider 确实提供对应模型。
四、三个容易踩的坑
1. 轻模型便宜,不代表整个任务更省
如果 Luna 因为判断能力不足而重复搜索、反复修改,或者最终需要主模型返工,那么单价优势很快会被额外调用抵消。
判断是否适合 Luna,可以看两个条件:任务能否用一句话描述清楚,以及结果能否通过测试、Diff 或固定规则快速验证。只要其中一个条件不满足,就优先使用 Terra。
2. 并行子 Agent 可能省时间,但通常不会省 Token
多个子 Agent 同时扫描不同模块,可以缩短等待时间,也能减少主线程中的日志污染。但每个 Agent 都有独立的上下文和工具调用,总 Token 往往会上升。
所以不要为了“看起来更 Agent”而拆分任务。只有相互独立、可以并行、返回结果能够被压缩汇总的工作,才适合交给多个子 Agent。
3. Review 不应该一味追求最低价
Review 是代码进入下一步之前的质量门。如果审查模型漏掉高风险问题,后续修复成本可能远高于模型差价。
默认使用 Terra 更均衡;只有在审查规则非常固定,例如检查格式、约定或简单变更时,再考虑 Luna。安全、并发、数据一致性和复杂业务逻辑审查,应该提高模型和 reasoning effort。
五、省钱之后,怎么验证没有把效率省没了
模型分工不是一次配置后永远正确。最可靠的方法,是选择几类自己经常执行的任务,分别跑原配置和新配置,然后比较:
- 任务是否一次完成;
- 总耗时有没有明显增加;
- 工具调用和返工次数是否上升;
- 测试是否通过;
- Review 能否发现预先埋入的问题;
- 总 Token 或实际费用是否下降。
不要只看单个模型的价格,也不要只看某次任务的 Token。真正需要优化的是“完成一个合格任务的总成本”,其中既包括模型费用,也包括等待时间和人工返工。
我的建议是先从稳妥版开始:Sol 负责主线程,Terra 负责通用子 Agent 和 /review。运行一段时间后,再把最重复、最容易验证的任务交给 Luna Worker。
最终的省钱原则可以压缩成一句话:
关键决策不要省,重复执行按边界降级;轻模型失败后的返工成本,不能超过它省下来的模型差价。
参考资料
葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。
更多推荐

所有评论(0)