Windows Codex Desktop 接入第三方中转 API 完整教程
2026/8/31 5:18:15 网站建设 项目流程

适用场景:Windows 版 Codex Desktop / Codex CLI,想通过第三方 OpenAI 兼容中转平台调用模型。

一、先理解原理:整条链路只有三层

绝大多数配置失败,都是因为没搞清楚下面这张图:

config.toml —— env_key = "API_KEY" ↓ Windows 环境变量 —— API_KEY = sk-xxxxxxxx ↓ Codex 发出请求 —— Authorization: Bearer sk-xxxxxxxx ↓ 第三方平台 /v1/responses

也就是说:config.toml里存的是"变量名",不是 Key 本身;Key 存在 Windows 环境变量里。

记住这一点,后面 90% 的坑都不会踩。

二、准备工作

需要准备:

  • Windows 版 Codex Desktop
  • 第三方中转平台账号 + 可用的 API Key
  • 平台的 Base URL
  • 平台支持的模型名称(必须和平台模型列表里的 ID 完全一致)
  • 平台必须支持 OpenAI Responses API

本文示例:

  • Base URL:https://linoapi.com.cn/v1
  • 模型:gpt-5.6-sol

关于最后一条要重点说明。Codex 使用第三方 Provider 时,发出的请求是:

POST /v1/responses

所以平台必须实现/v1/responses,只有/v1/chat/completions不够的。很多便宜的中转站只做了 chat/completions,选平台前一定要先确认这一点。

三、找到 Codex 配置文件

Windows 下配置文件位于:

C:\Users\你的用户名\.codex\config.toml

快速打开方法:按Win + R,输入%USERPROFILE%\.codex,回车,找到config.toml

如果你用过 Codex Desktop,这个文件通常已经存在。

四、修改 config.toml

假设原来是:

model = "gpt-5.5" model_reasoning_effort = "high"

改为:

model_provider = "lino" model = "gpt-5.6-sol" model_reasoning_effort = "high"

并新增 Provider 定义:

[model_providers.lino] name = "Lino API" base_url = "https://linoapi.com.cn/v1" env_key = "LINO_API_KEY" wire_api = "responses" requires_openai_auth = false

原有的[desktop][plugins.xxx][mcp_servers.xxx]等配置全部保留,不要删除。你只需要增加model_provider一行和[model_providers.lino]一段。

一份简化后的完整示例:

sandbox_mode = "workspace-write" model_provider = "lino" model = "gpt-5.6-sol" model_reasoning_effort = "high" [model_providers.lino] name = "Lino API" base_url = "https://linoapi.com.cn/v1" env_key = "LINO_API_KEY" wire_api = "responses" requires_openai_auth = false [windows] sandbox = "unelevated" [desktop] sansFontSize = 24 codeFontSize = 24 usePointerCursors = false

⚠️ 最容易犯的错:env_key 不是 API Key

# ❌ 错误:直接把 Key 写进去 env_key = "sk-xxxxxxxxxxxxxxxx" # ✅ 正确:这里写环境变量的"名字" env_key = "LINO_API_KEY"

这样做除了是 Codex 的规范,也比明文写 Key 安全得多。

五、把 API Key 写入 Windows 环境变量

打开 PowerShell:

setx LINO_API_KEY "你的API_KEY"

成功会提示:

SUCCESS: Specified value was saved.

注意:setx只对新开的进程生效,当前这个 PowerShell 窗口读不到。请关闭它,重新开一个 PowerShell 再继续。

验证时不建议直接echo $env:LINO_API_KEY(会把 Key 明文打印出来)。更稳妥的写法:

if ([string]::IsNullOrWhiteSpace($env:LINO_API_KEY)) { Write-Host "未读取到 API Key" } else { Write-Host "API Key 已读取,长度:" $env:LINO_API_KEY.Length }

输出类似API Key 已读取,长度: 51,说明环境变量已生效。

六、启动 Codex 前先测试 /v1/responses

强烈建议先用 PowerShell 直接打一次接口,这样能把"平台问题"和"Codex 配置问题"区分开。

在新开的 PowerShell 里:

$headers = @{ "Authorization" = "Bearer $env:LINO_API_KEY" "Content-Type" = "application/json" } $body = @{ model = "gpt-5.6-sol" input = "Reply exactly OK" } | ConvertTo-Json $response = Invoke-RestMethod ` -Uri "https://linoapi.com.cn/v1/responses" ` -Method POST ` -Headers $headers ` -Body $body

查看返回:

$response

正常会看到:

id : resp_xxxxxxxxx object : response model : gpt-5.6-sol status : completed error :

只要status : completederror为空,说明 API Key、模型名、中转平台、Responses API、鉴权这五项全部正常。

如果只想看模型回复的正文:

$response.output[0].content[0].text

会输出:

OK

七、正式启动 Codex Desktop

  1. 保存config.toml
  2. 完全退出Codex Desktop(确认后台进程已关闭,光点右上角叉可能没退干净)
  3. 重新启动 Codex Desktop
  4. 新建对话,输入"只回复:测试成功"

能正常返回,说明配置完成。此时的请求链路是:

Codex Desktop → 自定义 Model Provider → https://linoapi.com.cn/v1/responses → gpt-5.6-sol

八、常见报错排查表

报错现象原因解决办法
无效的令牌 / 401环境变量没读到,或env_key填成了 Key 本身用第五节的脚本检查变量;确认env_key = "LINO_API_KEY"
404 / Cannot POST /v1/responses平台只实现了/chat/completions换支持 Responses API 的平台
model not found模型名与平台模型 ID 不一致去平台模型列表查真实 ID,如gpt-5.6-terra,完全照抄
改完配置没生效Codex 没有完全退出结束后台进程后重启

第一条要补充一句:执行setx之后如果没有重开 PowerShell / 重启 Codex,变量是读不到的,这是最高频的原因。

九、后续维护

只换 API Key:完全不用改config.toml。因为env_key = "LINO_API_KEY"没变,只需:

setx LINO_API_KEY "新的API_KEY"

然后彻底退出并重启 Codex,它会自动读取新 Key。

更换中转平台:新增一段 Provider 即可。

model_provider = "example" model = "gpt-5.6-sol" [model_providers.example] name = "Example API" base_url = "https://api.example.com/v1" env_key = "EXAMPLE_API_KEY" wire_api = "responses" requires_openai_auth = false

配套执行setx EXAMPLE_API_KEY "新的API_KEY",重启 Codex。

同时保留多个平台:旧配置不用删,多个[model_providers.xxx]可以共存,各自setx一个 Key。想切换时只改model_provider = "lino"这一行;如果两个平台模型名相同,那就真的只需要改这一行。

十、流程速查

① 获取 API Key → ② 确认 Base URL → ③ 确认模型 ID → ④ 确认支持 /v1/responses ↓ ⑤ 改 config.toml → ⑥ env_key 指向环境变量名 → ⑦ setx 保存 Key ↓ ⑧ 新开 PowerShell → ⑨ Invoke-RestMethod 测试 → ⑩ 完全退出 Codex → ⑪ 重启 → ⑫ 使用

结语

整个配置本质上只有三层:config.toml→ Windows 环境变量里的 Key → 第三方平台的/v1/responses

真正容易出错的只有三个地方:

  1. 把 API Key 本身误填进env_key
  2. setx之后没有重启 PowerShell / Codex
  3. 中转平台只有/chat/completions,没有/responses

这三点处理好,配置过程并不复杂。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询