如果你是走中转站,然后 codex 用不了工具,或者一言不合就去 computer use。应该是遇到我和我一样的问题了。
分析了大半天,就是下面这一段,让 Codex 改用标准顶层 tools 通道下发工具,不再依赖中转服务无法转发的 additional_tools 字段。改完即可恢复终端与文件能力。。
config.toml 中新增的关键一行:
model_catalog_json = “$HOME/.codex/models-custom.json”
具体问题如下:
Codex 无法调用工具、无法读取代码 排查报告
总结
日期:2026-09-25
环境:Codex 桌面端(codex 0.155.0-alpha.16.4)
模型通道:第三方中转服务(自定义 provider,Responses API)
一、现象
会话仅暴露协作类工具(spawn_agent、send_message、list_agents、wait 等),没有 shell、exec、apply_patch 与文件读取能力,因此无法获取未提交的代码变更,也无法读取项目文件;派生出的子代理同样无法访问文件系统。
已排除权限因素:沙箱策略为 danger-full-access,审批策略为 never,项目的 trust_level 为 trusted,shell 快照亦可正常创建。故不属于权限或代码权限问题。
二、根因
模型目录中 use_responses_lite 为 true 的模型,Codex 会把 exec、shell、apply_patch 等工具放入请求的 input[].additional_tools 字段,而不是 Responses API 标准的顶层 tools 字段。
中转服务只转发顶层 tools 字段,additional_tools 被丢弃,模型因此收不到这些工具。协作类工具不走该通道,所以最终只剩下“协作与等待工具”。
本机模型目录实测情况:
| 模型 | use_responses_lite | 结果 |
|---|---|---|
| gpt-6-* 系列 | true | 无工具(受影响) |
| gpt-5.6-* 系列 | true | 无工具(受影响) |
| gpt-5.5 / gpt-5.4 | false | 正常 |
三、修复
| 序 | 动作 | 路径 |
|---|---|---|
| 1 | 备份原配置 | ~/.codex/config.toml.before-lite-fix |
| 2 | 导出本机真实模型目录 | ~/.codex/models-custom.json |
| 3 | 将目录中 use_responses_lite 为 true 的条目全部改为 false | 同上 |
| 4 | 在 config.toml 中指向该目录 | ~/.codex/config.toml |
config.toml 中新增的关键一行:
| model_catalog_json = “$HOME/.codex/models-custom.json” |
|---|
原理:让 Codex 改用标准顶层 tools 通道下发工具,不再依赖中转服务无法转发的 additional_tools 字段。改完即可恢复终端与文件能力。
四、验证
| 检查项 | 结果 |
|---|---|
| 模型目录生效情况 | 全部条目 use_responses_lite 为 false |
| 实际执行 git 读取命令 | exec 调用成功(0ms),返回真实结果:当前分支名与变更文件清单 |
五、注意事项
1. 修改后需完全退出并重新启动桌面端,并新建会话;旧会话可能仍然缓存修改前的模型目录。
2. 回滚方式:将 config.toml.before-lite-fix 恢复为 config.toml,并删除 models-custom.json。
