本文记录一次真实排查过程:CC Switch 已经把 Codex 默认模型配置为 gpt-5.6-sol,终端也能识别该模型,但 Trae 编辑器中的 Codex 插件模型下拉菜单仍然只显示 GPT-5.5、GPT-5.4 等旧模型。

最终确认,问题不在中转站配置,也不在模型名称,而是 Trae 中的 Codex 扩展使用了自己打包的旧版 CLI。将扩展切换到新版全局 Codex CLI 后,gpt-5.6-sol 成功显示并可正常使用。

一、问题现象

使用环境:

  • macOS Apple Silicon
  • Trae 编辑器
  • 官方扩展:Codex - OpenAI's coding agent
  • CC Switch 管理 Codex 中转站配置
  • 中转站兼容 OpenAI Responses API
  • 目标模型:gpt-5.6-sol

CC Switch 中的 config.toml 已经包含:

model_provider = "custom"
model = "gpt-5.6-sol"
disable_response_storage = true
model_reasoning_effort = "medium"

[model_providers.custom]
name = "your-relay"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://your-relay.example/v1"

但是打开 Trae 的 Codex 面板后,模型菜单中没有 GPT-5.6 Sol

与此同时,在 Trae 终端运行下面的命令:

codex -m gpt-5.6-sol

终端却可以正常识别:

model: gpt-5.6-sol medium

这说明模型名称和全局配置大概率没有问题,问题发生在 Trae 扩展内部。

二、核心原因

很多人会认为 IDE 插件直接调用终端里的 codex 命令,其实不一定。

Trae 中的官方 Codex 扩展通常会自带一份 Codex CLI:

~/.trae/extensions/openai.chatgpt-版本号-darwin-arm64/
└── bin/
    └── macos-aarch64/
        └── codex

因此,系统里可能同时存在两份 CLI:

  1. 通过 npm 安装的全局 Codex CLI,供终端使用。
  2. Codex 扩展目录中自带的 CLI,供 IDE 面板使用。

本次排查中的版本是:

终端全局 CLI:codex-cli 0.144.3
Trae 扩展内置 CLI:codex-cli 0.142.0-alpha.1

全局 CLI 已支持 gpt-5.6-sol,但扩展内置的旧版 CLI 还没有该模型,所以出现了以下现象:

  • 终端可以识别 gpt-5.6-sol
  • IDE 面板仍显示 GPT-5.5、GPT-5.4 等旧模型。
  • 反复修改 CC Switch 配置也无法让模型出现在下拉菜单中。

三、先确认全局 CLI 是否支持 GPT-5.6 Sol

1. 查看终端使用的是哪一份 CLI

which codex

示例输出:

/Users/你的用户名/.npm-global/bin/codex

记录这个路径,后面需要填写到 Trae 设置中。

2. 查看 CLI 版本

codex --version

如果版本太旧,先升级:

npm install -g @openai/codex@latest

升级后再次检查:

codex --version

3. 直接指定模型进行测试

codex -m gpt-5.6-sol

进入 Codex 后发送一个简单请求,例如:

请回复当前使用的模型名称,并输出 hello。

需要真正收到模型响应,才能同时证明以下内容正常:

  • 模型 ID 正确。
  • API Key 有效。
  • 中转站已给当前账号开放该模型。
  • 中转站兼容 /v1/responses

仅仅看到 CLI 启动并显示模型名称,只能证明本地 CLI 接受该模型 ID,不能完全证明远程请求成功。

四、检查 Trae 扩展内置 CLI 版本

先查找扩展目录:

find ~/.trae/extensions -maxdepth 1 -type d -name 'openai.chatgpt-*'

然后执行扩展内置 CLI:

~/.trae/extensions/openai.chatgpt-版本号-darwin-arm64/bin/macos-aarch64/codex --version

也可以使用下面的命令自动选择一个扩展目录:

EXT_DIR=$(find ~/.trae/extensions -maxdepth 1 -type d -name 'openai.chatgpt-*-darwin-arm64' | sort | tail -1)
"$EXT_DIR/bin/macos-aarch64/codex" --version

如果扩展内置 CLI 明显低于终端中的全局 CLI,就基本可以确认问题原因。

五、解决方法一:升级或切换预发布版扩展

这是优先推荐的方法,因为扩展和内置 CLI 的版本由发布方一起测试。

操作步骤:

  1. 打开 Trae 的扩展管理页面。
  2. 搜索 Codex - OpenAI's coding agent
  3. 确认发布者为 openai,扩展标识符为 openai.chatgpt
  4. 如果存在更新,先升级到最新稳定版。
  5. 如果稳定版仍不支持,点击“切换到预发布版本”。
  6. 安装完成后完全退出 Trae。
  7. 重新启动 Trae。
  8. Cmd+Shift+P,执行“开发人员: 重新加载窗口”。
  9. 关闭旧 Codex 对话并新建对话。

如果新版扩展已经打包支持 gpt-5.6-sol 的 CLI,模型会直接出现在菜单中。

如果最新版扩展仍使用旧 CLI,可以继续使用下面的方法。

六、解决方法二:让 Trae 扩展使用全局新版 CLI

Codex 扩展提供了 chatgpt.cliExecutable 设置,可以指定扩展启动哪一个 Codex CLI。

需要注意:扩展将该选项标记为开发用途,官方提示手动指定后部分功能可能无法正常工作。因此,它适合作为扩展正式更新前的临时解决方案。

1. 打开用户设置 JSON

在 Trae 中按:

Cmd+Shift+P

搜索并执行:

首选项: 打开用户设置 (JSON)

一定要修改“用户设置”,不要只修改当前项目的工作区设置,因为 chatgpt.cliExecutable 是应用级配置。

  1. 设置新版 CLI 路径

如果配置中已经存在:

"chatgpt.cliExecutable": "",

直接替换为空字符串中的内容:

"chatgpt.cliExecutable": "/Users/你的用户名/.npm-global/bin/codex",

路径应以 which codex 的实际输出为准,不要机械照抄示例。

完整示例:

{
  "workbench.colorTheme": "Deep Blue",
  "files.autoSave": "afterDelay",
  "chatgpt.cliExecutable": "/Users/你的用户名/.npm-global/bin/codex"
}

JSON 中前后配置项之间必须有英文逗号,否则设置文件会报语法错误。

3. 重新加载扩展

保存设置后执行:

  1. 完全退出 Trae。
  2. 重新打开 Trae。
  3. Cmd+Shift+P
  4. 执行“开发人员: 重新加载窗口”。
  5. 关闭已有的 Codex 会话。
  6. 新建一个 Codex 会话。
  7. 打开模型菜单检查 GPT-5.6 Sol

旧会话可能保留创建时的模型设置,所以必须新建会话验证。

七、CC Switch 配置示例

如果中转站使用自定义 provider,并且支持 Responses API,可以参考下面的结构:

model_provider = "custom"
model = "gpt-5.6-sol"
disable_response_storage = true
model_reasoning_effort = "medium"

[model_providers.custom]
name = "your-relay"
wire_api = "responses"
requires_openai_auth = true
base_url = "https://your-relay.example/v1"

注意事项:

  • model 必须是中转站实际支持的精确模型 ID。
  • wire_api = "responses" 表示使用 Responses API。
  • base_url 通常以 /v1 结尾,具体以中转站文档为准。
  • API Key 建议由 CC Switch 写入 Codex 的认证配置,不要明文写入公开文章。
  • 修改配置后应重启 Trae,并使用新会话验证。

如果只是把内置 OpenAI provider 指向兼容的代理,也可以使用:

model = "gpt-5.6-sol"
model_reasoning_effort = "medium"
disable_response_storage = true
openai_base_url = "https://your-relay.example/v1"

具体使用自定义 provider 还是 openai_base_url,应以中转站的认证方式和兼容说明为准。

八、这些配置为什么没有作用

1. chatgpt.customModels

有些旧插件或第三方插件使用过类似配置:

"chatgpt.customModels": [
  "gpt-5.6-sol"
]

当前官方 openai.chatgpt 扩展的模型菜单不是通过该设置生成的。模型列表主要由扩展所连接的 Codex 后端返回,所以只往数组中添加模型通常无效。

2. tui.model_availability_nux

Codex 配置中可能出现:

[tui.model_availability_nux]
"gpt-5.6-sol" = 1

这只是 TUI 对“新模型提示是否已展示”的状态记录,不是模型注册表。修改它不会向 IDE 菜单添加模型。

3. MCP 环境中的 `CODEX_CLI_PATH

例如:

[mcp_servers.node_repl.env]
CODEX_CLI_PATH = "/Applications/Codex.app/Contents/Resources/codex"

该变量只会传给 node_repl MCP 进程,不会改变 Trae 扩展启动的 CLI。要改变扩展使用的 CLI,应该设置:

"chatgpt.cliExecutable": "/实际的/codex/路径"

九、常见错误与排查方法

1. 设置后模型仍然不显示

依次检查:

which codex
codex --version
codex -m gpt-5.6-sol

然后确认:

  • chatgpt.cliExecutable 使用的是 which codex 返回的完整路径。
  • 设置写在用户设置中,而不是工作区设置中。
  • JSON 没有漏逗号或多余逗号。
  • 已完全退出并重启 Trae。
  • 已新建 Codex 会话。

2. 返回 model not found

这通常表示:

  • 中转站没有提供该模型。
  • 当前 API Key 没有模型权限。
  • 中转站使用了不同的模型映射名称。
  • 请求实际发到了另一个 base_url

应在中转站控制台或文档中确认准确模型 ID。

3. 返回 /responses 404

当前 Codex 自定义 provider 使用 Responses API。如果中转站只兼容 /chat/completions,即使能调用普通聊天模型,也不能直接供当前 Codex 使用。

需要中转站正确实现:

POST /v1/responses

以及流式响应和工具调用等 Codex 所需能力。

4. 指定外部 CLI 后扩展无法启动

可能是外部 CLI 和扩展前端协议不兼容。可以暂时删除:

"chatgpt.cliExecutable": "/Users/你的用户名/.npm-global/bin/codex"

或者恢复为空:

"chatgpt.cliExecutable": ""

重新加载窗口后,扩展会恢复使用内置 CLI。

5. 终端能用,IDE 不能用

这种情况优先比较两份 CLI:

终端:which codex
IDE:~/.trae/extensions/openai.chatgpt-*/bin/macos-aarch64/codex

不要因为终端测试成功,就默认 IDE 面板使用的是同一个可执行文件。

十、不要直接覆盖扩展目录中的 CLI

不建议把全局 CLI 手动复制到以下目录:

~/.trae/extensions/openai.chatgpt-*/bin/macos-aarch64/codex

原因包括:

  • 扩展更新后会被覆盖。
  • 可能破坏扩展包完整性。
  • 新 CLI 与旧扩展前端协议可能不兼容。
  • 出现问题后不容易判断是配置问题还是文件被替换导致的问题。

优先使用新版扩展;确实需要临时切换时,使用 chatgpt.cliExecutable 更容易恢复。

十一、最终结论

当 CC Switch 已配置 gpt-5.6-sol,终端也能识别,但 Trae 的 Codex 插件菜单中没有该模型时,最常见原因不是中转站配置错误,而是:

Trae 扩展内置 CLI 版本 < 终端全局 CLI 版本

推荐处理顺序:

  1. 更新 Codex 扩展。
  2. 尝试扩展预发布版本。
  3. 升级全局 Codex CLI。
  4. 使用 chatgpt.cliExecutable 让扩展临时调用新版 CLI。
  5. 重启 Trae 并新建会话。
  6. 发送真实请求,验证中转站的 Responses API 与模型权限。

本次问题最终通过下面的用户设置解决:

"chatgpt.cliExecutable": "/Users/你的用户名/.npm-global/bin/codex"

设置后重启 Trae,gpt-5.6-sol 成功出现在模型列表中。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐