- Published on
Codex 终极省 Token 方法:我实际跑过的一套配置
- Authors

- Name
- Pony Ma
用 Codex 写代码,最明显的感受就是:好用,但烧 Token。
我之前一直用 gpt-5.6-sol + xhigh。难题挺稳,问题是改个小配置、搜几处代码也全程满功率,额度掉得比活儿快。
看完那篇讲模型分流的公众号文章,我照着改了一遍,又把 RTK、Ponytail 和 Caveman 都跑了跑。下面这套就是最后留下来的。
一、先看懂 Codex 的 Token 花在哪
很多人只盯着主模型。其实一条任务跑下来,主线程、/review、子 Agent、Shell 输出和 MCP 塞进来的上下文,都会吃 Token。
主线程决定日常开销;/review 只有手动调用才会跑;子 Agent 能省时间,但每个 Agent 都有自己的上下文,总 Token 往往更高。日志、JSON、搜索结果如果整段灌进对话,也很容易把上下文撑胖。
所以我现在的思路是:模型先分工,命令输出先压缩,代码能少写就少写。Caveman 这种更激进的方案,跑完对照再决定。
二、Codex 终极省 Token 方法
第一步:配置主模型和 Review
先改 ~/.codex/config.toml:
model = "gpt-5.6-sol"
model_reasoning_effort = "high"
review_model = "gpt-5.6-terra"
主线程还是 Sol,只把默认推理从 xhigh 降到 high。日常开发够用,碰到复杂任务再临时拉高。
review_model 只管 /review,不会自动给每个任务加一轮审查。官方配置文档就是这么定义的。
service_tier、自动压缩阈值和自定义 provider 我都没动。只嫌回答太长,可以先试 Codex 原生选项:
codex -c 'model_verbosity="low"'
改配置前先备份,改完跑检查:
cp ~/.codex/config.toml ~/.codex/config.toml.bak
codex doctor --summary --no-color --ascii
我这里 config、auth、state 和 threads 都通过了。MCP、网络警告要单独看,配置加载成功不等于整个环境全绿。
另外,我用的是 ChatGPT 登录。这里说的省 Token,主要是少占上下文、少撞限额、少等模型长考,不能直接拿 API 价目表换算省了多少钱。
第二步:配置子 Agent
[agents]
max_concurrent_threads_per_session = 3
default_subagent_model = "gpt-5.6-terra"
default_subagent_reasoning_effort = "medium"
子 Agent 默认用 Terra Medium,并发最多 3 个。它省的是单个 Agent 的开销,总 Token 通常还是会上升,因为每个 Agent 都要单独推理、读文件、跑工具。OpenAI 的子代理文档也提醒了这一点。
第三步:用 RTK 压缩命令输出
RTK 专门压缩 Shell 输出。测试只展开失败项,git status 只留有用状态,搜索结果按文件分组,重复日志直接折叠。原命令照常执行,排错时还能回看完整输出。
安装并接入 Codex:
brew install rtk
rtk init -g --codex --dry-run
rtk init -g --codex
rtk init --show --codex
Codex 里的 RTK 依赖 AGENTS.md + RTK.md 指令,让模型主动使用 rtk git status 这类命令。当前这条接入路径没有透明 Hook 强制改写。RTK 的说明也标注为 prompt-level guidance。
我机器上目前记录了 559 条命令:原始输出估算 753.1K Token,过滤后 466.7K,少了 286.8K,显示 38.1%。
这个比例只代表命令输出,而且是 bytes / 4 估算。我这份数据还被几次超长 ps 和 git pull 拉高了。它能证明 RTK 确实删掉了大量噪声,证明不了 Codex 总开销下降 38.1%。
平时看看这两个就够:
rtk gain
rtk discover --all --since 7
后一个会找出还在裸跑的 find、curl、git log 等命令。
第四步:用 Ponytail 少写代码
Ponytail 管的是 AI 最后写进仓库的代码。
需求只要日期选择,AI 很容易装组件库、包组件、加样式。Ponytail 会先查现有代码、标准库和平台原生能力。浏览器的 <input type="date"> 够用,就停在这里。
它不会为了少几行代码删掉输入校验、安全处理或无障碍,也要求 Bug 尽量从公共入口修。
Codex 安装:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
重启后去 /hooks 检查它的 Hook。Codex 中这样用:
@ponytail lite
@ponytail full
@ponytail-review
我会先用 lite,合拍以后再开 full。ultra 适合专门清理过度设计,不适合长期全局开。
它的公开 benchmark 用 Claude Code、Haiku 4.5 跑了 12 个功能任务,报告平均少写 54% 代码、少用 22% Token。完整报告
这数字很吃任务。日期选择器这种容易造轮子的需求收益大,已经很短的 CRUD 几乎没变化。自己用时看 git diff、依赖数量和返工次数。
不合适就卸掉:
codex plugin remove ponytail
第五步:Caveman 先测再开
Caveman 现在有三块:缩短回答的 Skill、压输入的本地代理,以及分析历史用量的 learn。
我会先装 CLI,只跑 learn:
npm install -g @caveman-ai/cli
caveman telemetry off
caveman setup --install
caveman status
caveman learn
learn 会在本地只读扫描 Codex 等工具的历史,先告诉你上下文肥在哪里。想让 Codex 根据报告提修改方案,再运行:
caveman learn implement codex
回答压缩 Skill 的安装方式是:
npx skills add JuliusBrussee/caveman --skill '*' -a codex --yes
但 Caveman 自己的 Honest Numbers 写明,这个 Skill 每轮大约增加 1~1.5K 输入 Token。原本回答就很短时,它可能越省越贵。先试 model_verbosity="low",再决定要不要装。
本地代理这样启动:
caveman codex
caveman trial -- codex
caveman trial report
找一个固定 commit 和固定任务,分别用直接 Codex、caveman codex 跑新会话。比较正确性、轮数、恢复调用、总 Token 和时间。
Caveman 仓库公布的 33.2% 输入减少,来自 Claude Code 和几组固定的大型工具输出。报告里有一个 HTML 用例反而多用了 9.9%,原始运行产物也没公开,目前无法独立复现。报告原文
当前仓库不同文档对 Codex 命令压缩的接入方式还有出入,所以启动成功以后仍要看 status 和实际命令结果。
许可证也要留意:Skill、CLI 等部分是 MIT;Engine、Proxy、Browse、MCP 等运行时是 BSL-1.1,变更日期前属于 source-available。
第六步:关掉暂时用不到的 MCP
不用的 MCP 我没有删除,只是先关掉:
[mcp_servers.example]
enabled = false
需要时再开。某个 MCP 只用得到几个工具,就配 enabled_tools 白名单。
子代理也一样。小任务不开;大仓库里确实有两三条独立调查线,才交给 Terra Medium 并行。这样主要省时间,总 Token 多半会上升。
三、我现在实际怎么用
- 普通任务:
Sol high + RTK。 - 容易过度设计:加 Ponytail
lite/full。 - 超长日志和 JSON:先 RTK,仍然太大再试 Caveman。
- 高风险改动:测试后手动
/review。 - 大仓库探索:最多 2~3 个 Terra Medium 子代理。
别一次把所有东西打开。固定同一个任务,每次只增加一个变量,先看任务做对没有,再看 Token、时间、代码量和返工次数。
我会长期保留模型分流和 RTK。Ponytail 按任务用,Caveman 等自己的对照数据说话。
省 Token 最怕走到最后,先装出一套比 Codex 还复杂的系统。
本文核验于 2026-08-25。相关版本:Codex 0.147.0、RTK 0.45.0、Ponytail 4.9.0。