让 Codex 使用 Claude、Gemini 或只提供 Chat Completions 的中转#
ThinkWatch Lite 把 Codex 接到本机的网关上,网关接收 OpenAI Responses API,这也是 Codex 对自定义服务商使用的唯一格式。网关在 Responses 与上游的格式之间双向转换请求和回答:Claude 用 Anthropic Messages,Gemini 用 Google Gemini,只提供 OpenAI Chat Completions 的中转用 Chat Completions。使用哪个模型,在 Codex 的配置中指定,或由路由规则改写。
准备#
- 已安装 ThinkWatch Lite。
- Codex 已至少运行过一次:Codex 命令行,或 ChatGPT 桌面版中的 Codex 均可。
- Anthropic、Google Gemini 或中转站的 API 密钥。
步骤#
-
在「上游」页点击「新建上游」,选择「服务类型」:Claude 选「Anthropic」,Gemini 选「Google Gemini」,接口地址和接口协议会自动填入。中转站选「自定义」,「接口地址」填它的 Base URL(不含
/chat/completions等接口路径),「接口协议」选「OpenAI Chat Completions」;例如 GLM 填https://api.z.ai/api/paas/v4,GLM Coding Plan 填…/api/coding/paas/v4。以自带版本号结尾的地址(如/v4、火山方舟的/api/v3),自 ThinkWatch Lite 2026.10.5 起按原样使用。填写「API 密钥」,点击「检测连接」,再点击「下一步」。中转站不提供模型列表时,在「手动清单」中每行填写一个模型 ID。再点击「下一步」,然后点击「创建」。 -
在「客户端」页 Codex 一行点击「接管…」。对话框列出对
~/.codex/config.toml的修改:字段 写入 model_providerthinkwatchmodel_providers.thinkwatch.base_url带 /v1的网关地址,默认为http://127.0.0.1:8788/v1model_providers.thinkwatch.wire_apiresponsesmodel_providers.thinkwatch.experimental_bearer_token新密钥 codexmodel_providers.thinkwatch.http_headersX-ThinkWatch-Client = "codex"同一表中的 name、requires_openai_auth、supports_websocketsThinkWatch、false、false点击「接管」,然后重新打开终端。ChatGPT 桌面版读取同一份配置文件,重新启动后生效。
-
指定模型。接管不修改
model,Codex 仍会请求原来的模型。可以任选一种做法:- 在
~/.codex/config.toml开头、第一个[表名]之前写入model = "<模型 ID>";只用一次时,运行时加-c model=<模型 ID>。 - 保留 Codex 的模型名并改写:在「路由」页打开
default路由,点击「添加规则」,加入条件「模型」gpt-*和「密钥」codex,「命中后」选「转发」,「转发至」选该上游,在「改写参数」的「模型改为」中填入目标模型 ID。点击「添加」,再点击「保存」。
- 在
说明#
- **Codex 的内置模型表。**Codex 把自家模型的元数据(上下文窗口等)编在程序里。它不认识的模型,例如 Claude 或 Gemini 的模型,按兜底元数据运行,上下文窗口为 272,000 token,并提示「Model metadata for
<模型>not found. Defaulting to fallback metadata; this can degrade performance and cause issues.」。模型的上下文窗口更小时,可在config.toml中用model_context_window设定 Codex 采用的窗口。网关的模型列表不会出现在 Codex 的模型选择中,因为 Codex 要求的是它自己格式的模型目录。 - **格式转换。**请求和流式回答双向转换。「流量」页把这类请求标为「已转换」,目标格式无法承载的字段被丢弃,并在请求详情中列出。网页搜索这类服务端工具只能由所属的服务商执行,转换时被丢弃。Codex 的
wire_api只支持responses,只提供 Chat Completions 的中转正是靠这一转换才能使用。 - 凭据。
requires_openai_auth = false使 Codex 用自己的网关密钥连接网关,不发送 OpenAI 密钥或 ChatGPT 令牌。应用内登录的 ChatGPT 账号仍可同时作为 OpenAI 模型的上游:每个请求都交给模型列表中有所请求模型的上游。 - **会话。**接管前后的会话在 Codex 中分开显示。运行
codex resume <会话 ID> -c model_provider=thinkwatch可以通过网关继续之前的会话。「还原…」之后,接管期间的会话仍可打开,此时直连 OpenAI。 - **费用。**改写过模型名的请求按实际发出的模型计价。