Codex CLI 省 Token 真功夫:把那条火爆的"三招"扒到底(2026)
TL;DR — 最近社区疯传一条”Codex CLI 省 token 第一招:设 Process_narration=false”。我去 openai/codex 仓库 grep 了三种命名,零命中——这条是讹传。真正能省 token 的官方参数有名有姓:model_reasoning_effort 降档、model_reasoning_summary = "none"、model_verbosity 收紧,三件套叠加日常省 30-50% 输出 token。“让 Codex 当协调者”方向是对的,但 Codex CLI 早就原生支持 spawn_agent 工具派子智能体,不用靠 prompt 哄。下面把每条参数对到源码、给出可抄的 config.toml 模板。
为什么要写这篇
最近团队群里有人转了一张图,说 Codex CLI 三招省 40% token,已自用。我看了一眼:
第一招:设
Process_narration=false第二招:让 Codex 当协调者,不当苦力,用并行 agents 做研究和执行
第一招我直接卡住了——Process_narration 这个字段我从来没在 Codex 文档里见过。打开 openai/codex 仓库做了一轮 gh search code:
Process_narration— 0 命中process_narration— 0 命中processNarration— 0 命中
仓库零证据。这是条讹传,疑似把别的工具的参数(也可能是某个本地 fork、某个 wrapper 脚本)混过来了。
但讹传背后的需求是真的:Codex CLI 跑 GPT-5 系列推理模型,reasoning token 按 output 计费,长会话一天烧几十刀很正常。问题是要找对真旋钮。下面按”省 input token / 省 output token / 省整体上下文”三类分别给出官方参数。
真三件套:把”碎碎念”按住
Codex CLI 的 config.toml 里直接控制模型输出量的参数有三个,全都在 codex-rs/config/src/config_toml.rs 能查到定义。
1. model_reasoning_effort — 推理深度
# ~/.codex/config.toml
model_reasoning_effort = "low" # none | minimal | low | medium | high | xhigh
这是最被低估的省钱开关。Responses API 的 reasoning token 是按 output 计费的,effort 越高模型内部 CoT 越长。实测对照:
| effort | 简单 bug 修复 | 跨文件重构 | 适用场景 |
|---|---|---|---|
minimal | 省 60-70% reasoning token | 经常漏改 | 改文案、格式化、加注释 |
low | 省 40-50% | 偶尔漏改 | 单文件 bug、加测试 |
medium | 基线 | 基线 | 默认值,日常 80% 任务够用 |
high | 多花 30% | 少返工 | 架构重构、跨服务调试 |
xhigh | 多花 60%+ | 显著好 | 复杂算法、性能调优 |
默认是 medium。如果你 70% 的时间在做单文件改动,全局降到 low,复杂任务临时 codex -c model_reasoning_effort=high "..." 提一档,比反过来省得多。
已知坑:openai/codex#17436 报了一个 bug,CLI 启动时
config.toml里写的model_reasoning_effort会被”上次会话最后一次手动改的值”覆盖。如果你发现配的low没生效,TUI 里按/reasoning手动确认一次。
2. model_reasoning_summary — 关掉摘要输出
model_reasoning_summary = "none" # auto | concise | detailed | none
Responses API 会在最终回答前返回一段”reasoning summary”,详细解释模型刚才想了什么。这段也是 output token。日常单步任务里这段几乎没用——直接看回答就行。设 none 完全不返回摘要,设 concise 只返回精简版。
省多少?对照单次 修这个 NPE 任务:
detailed:摘要 ~280 tokenconcise:~90 tokennone:0 token
结合 effort = "low" 一起设,效果叠加。
3. model_verbosity — 收紧回答长度
model_verbosity = "low" # GPT-5 系列专属
这是 GPT-5 系列模型才认的参数,直接传给 API 控制最终回答的详细程度。如果你常被”为了改一行代码模型给我返回三段教学解释”困扰,调成 low 立竿见影。
反例:hide_agent_reasoning 一分钱不省
这个参数和 show_raw_agent_reasoning 经常被混进”省 token 教程”,要点出来:
hide_agent_reasoning = true # ❌ 这不是省钱开关
这是个纯 TUI 显示开关,控制终端要不要把推理过程渲染给你看。模型该消耗的 reasoning token 一个也不少,只是你看不到罢了。省 token 看 effort 和 summary,不看 hide。
第二招翻译:spawn_agent 才是真协调者
原帖第二招”让 Codex 当协调者,用并行 agents 做研究和执行”——方向对的,但说法不到位。Codex CLI 原生就有子智能体机制,不需要靠 prompt 哄模型自己拆分。
仓库 codex-rs/core/src/tools/handlers/multi_agents/ 下定义了五个给模型用的工具:
| 工具 | 作用 |
|---|---|
spawn_agent | 派一个子智能体,可指定 model / instruction |
send_message | 给指定子智能体发消息 |
wait | 等待子智能体完成 |
close_agent | 关闭子智能体 |
list_agents | 列出当前活跃的子智能体 |
默认行为:子智能体继承父级的 model(来自 multi_agents_spec.rs:“Spawned agents inherit your current model by default”),可在 spawn_agent 调用里 override。并发上限由 max_concurrent_threads_per_session 控制。
怎么触发模型用 spawn_agent
最干净的方式是写 AGENTS.md,告诉主 agent 什么时候该拆活:
# AGENTS.md
## 协作原则
当任务包含多个相互独立的子任务(比如"调研三个库的 API + 写迁移方案"),
你应该用 `spawn_agent` 拆成并行子智能体,每个子智能体只关注一个子任务,
返回结构化结果给主 agent 汇总。
## 子智能体建议 model
- 调研/搜索类:gpt-5.4-mini(便宜、快)
- 代码生成类:gpt-5.3-codex
- 主 agent(你自己):gpt-5.5(统筹)
省 token 原理:主 agent 用旗舰 model 做统筹(少量 token),子 agent 用 mini model 做苦力(大量 token 但单价便宜),同时并行还能省墙钟时间。这是真省钱的玩法,比单个 agent 用旗舰干所有事便宜 60% 不止。
实战 prompt 模板
[在 codex TUI 里]
帮我调研 Stripe、PayPal、PayID19 三个支付平台的 webhook 签名验证机制,
对每个平台分别开一个子智能体(用 gpt-5.4-mini),让它们查文档、给出
最小 Python 示例,最后你汇总成对比表。
这条 prompt 在配了 AGENTS.md 之后,主 agent 会真的调 spawn_agent 派三个子智能体并行跑,而不是自己串行查三遍。
AGENTS.md 三层 precedence 与瘦身
AGENTS.md 在 Codex 里是 官方文档 定义的项目级上下文,每个 session 加载一次,三层优先级(最近覆盖最先):
~/.codex/AGENTS.md # 全局,给所有项目
<git root>/AGENTS.md # 仓库根,给该项目
<cwd>/AGENTS.md # 当前子目录,最高优先级
默认上限 project_doc_max_bytes = 32768(32 KiB)。臃肿的 AGENTS.md = 每个 session 都多塞几 KB input token,长期烧得不少。
瘦身原则(来自官方建议 “keeping global guidance minimal and delegating specialized rules to subdirectories”):
- 全局 AGENTS.md 只放跨项目的人格设定、协作风格
- 项目级 AGENTS.md 放该项目的架构约定、命令清单
- 子目录 AGENTS.md 放该模块的特有规则(如
frontend/AGENTS.md放 React 规范)
控工具输出:tool_output_token_limit
tool_output_token_limit = 6000 # 默认 12000
这个参数限制每次 shell 工具调用结果在对话历史里最多存多少 token。日常跑 pnpm test、tree -L 5、cat 大日志 这种命令,单次输出动辄上万 token,全部塞回历史里——下一轮对话还要带着这堆原文一起发给模型,反复烧 input。
调到 6000 一般够用,配合 prompt 引导模型提取关键信息(“只看 FAIL 的测试名”),既省 token 又不丢精度。
长会话救火:/compact 和 /new
两个官方 slash 命令记牢:
/compact— 摘要压缩当前会话,释放 token 继续聊。适合同一任务但聊太长的场景。Codex 0.130+ 支持 remote compaction,压缩走 API 端不占本地资源。/new(或/clear)— 完全开新会话,清空所有上下文。适合切换任务。
判断标准:看 /usage,上下文用到 60% 以上就该 /compact;任务彻底换了,无脑 /new。
一份能直接抄的省钱 config.toml
# ~/.codex/config.toml
# —— 省 token 优化版 ——
# 模型选择:日常 mini,复杂任务用 /model 切到 5.5
model = "openai/gpt-5.4-mini"
model_provider = "ofoxai"
# 推理深度:默认低档,需要时临时拉高
model_reasoning_effort = "low"
# 摘要:关闭
model_reasoning_summary = "none"
# 回答长度:低档
model_verbosity = "low"
# 工具输出截断:6000 token
tool_output_token_limit = 6000
# 并发子智能体上限
max_concurrent_threads_per_session = 4
# Web search:按需开启,关闭可省搜索结果塞上下文
web_search = "disabled" # disabled | cached | live
# —— Provider 定义 ——
[model_providers.ofoxai]
name = "OfoxAI"
base_url = "https://api.ofox.ai/v1"
env_key = "OFOXAI_API_KEY"
把上面贴到 ~/.codex/config.toml,环境变量 export OFOXAI_API_KEY=sk-...(在 OfoxAI 控制台 创建),重启 codex 即可生效。
OfoxAI 接入:国内零代理跑 Codex
Codex CLI 默认走 OpenAI 官方 endpoint,国内多数环境直连不稳。OfoxAI 提供 OpenAI 兼容协议的镜像,模型清单与 OpenAI 官方同步(GPT-5.5、GPT-5.4-mini、GPT-5.3-codex 全在),支付宝/微信付款,国内电信/移动/联通直连。
- 完整配置流程:Codex CLI 进阶配置:自定义 API、多模型切换
- 真实工作流(包括省 token 之外的效率技巧):Codex CLI 真实编程工作流
- 基础环境搭建:Codex CLI 入门教程(5 分钟零基础版)
如果你同时也在用 Claude Code,对照阅读:Claude Code Token 优化 2026:把账单砍 60-90%。两个工具省 token 的思路相通,但具体旋钮各家不一样。
一句话总结
社区流传的”Process_narration=false”是讹传,但 Codex CLI 真有省 token 的官方旋钮,而且不止一个。把 model_reasoning_effort / model_reasoning_summary / model_verbosity 三件套配齐,再用 AGENTS.md 触发 spawn_agent 让主模型当协调者派 mini 子智能体干苦力,日常账单压到原来一半以下不难。hide_agent_reasoning 不省钱,别再被那条假参数带歪。


