摘要 :Codex Desktop 在首次提问或新建会话时反复提示
reconnecting,通常不是模型或账号问题,而是流式连接经过本地代理时 WebSocket 握手不稳定导致的。本文提供一套通过修改config.toml强制使用 HTTP/SSE 协议的降级方案,并附完整配置示例与排查步骤。
一、结论先行(快速修复)

如果 Codex Desktop 第一次发送请求,或者重新开启一个新对话时,连续出现约 5 次 reconnecting,但重连后又能正常输出回答,大概率不是模型不可用 ,而是首次流式连接经过本地网络代理时产生了 WebSocket 抖动。
修复方案 :在 Codex 的 config.toml 配置文件中,新增一个强制走 HTTP/SSE 协议的 OpenAI Provider 并设为默认选项,从而避开代理链路中 WebSocket 不稳定的影响。
核心代码(加入到配置中即可):
toml
model_provider = "openai_http"
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true
注意 :切换至
openai_http后,右侧历史列表可能仅显示新 Provider 下的对话。这属于正常现象,并非账号或模型被替换。
二、问题现象:你遇到的是这个情况吗?
如果你遇到的符合下面几个典型特征,基本可以确认就是本文讨论的问题:
| 现象特征 | 详细说明 |
|---|---|
| 首次发问疯狂重连 | 每次打开软件第一次发消息,通常会连续提示重连约 5 次,随后才开始吐字。 |
| 新开会话极易复现 | 即使软件没关,只要 New Chat 开启新对话,首个请求依然容易发生抖动。 |
| 后续对话完全正常 | 一旦首条消息成功发出,后续的连续对话极为流畅(排除账号/模型被封禁的可能)。 |
| 开启代理时尤为明显 | 直连正常,但挂载本地代理后明显更容易复现。 |
三、适用与不适用场景排查
在动手修改前,请先对照以下场景,确认本方案是否适合你:
✅ 适用本方案:
- Codex Desktop 账号可以正常登录。
- 最终能获取模型回答,只是首次请求 或新会话请求 频繁报错
reconnecting。
❌ 不适用本方案(需另寻排查方向):
- Codex 无法登录,白屏或报网络错误。
- 所有模型请求全部失败,等多久都不行。
- 本机网络本身不通,浏览器也打不开外部网站。
- 被公司内网防火墙、杀毒软件拦截。
四、核心原因:为什么会一直 Reconnecting?
Codex 默认的 OpenAI Provider 会优先尝试使用支持 WebSocket 的传输方式。WebSocket 本身极其高效,但它对网络代理链路非常敏感。
当请求经过你的本地代理时,以下环节的任何一点不稳定,都会触发自动重连:
- WebSocket Upgrade(协议升级):部分代理软件未能完美支持从 HTTP 升级为 WebSocket。
- 长连接保持:首次建立长连接时,可能被代理客户端或底层网络中间件意外掐断。
- TLS Tunneling:代理的 HTTPS 隧道握手过程存在延迟或抖动。
- 自动重试机制:Codex 一旦检测到断开,就会立即发起重试(通常重试 5 次左右才能成功降级或穿透)。
解决思路 :不要试图去修改 Codex 的重试次数,而是直接让它放弃 WebSocket ,改走对代理极其友好的 HTTP/SSE(Server-Sent Events) 流式响应。
五、保姆级修复步骤
第一步:彻底关闭 Codex Desktop
请务必先退出并完全关闭 Codex Desktop 程序,防止修改配置时被软件覆盖或产生文件占用冲突。
第二步:定位并备份配置文件
配置文件 config.toml 通常位于以下路径: C:\Users\你的用户名\.codex\config.toml
为安全起见,建议先在 PowerShell 中执行以下命令进行备份:
powershell
Copy-Item "$env:USERPROFILE\.codex\config.toml" "$env:USERPROFILE\.codex\config.toml.bak"


第三步:编辑 config.toml
使用记事本或 VS Code 打开该文件。
1. 修改默认 Provider 在文件顶部找到 model_provider,将其修改为:
toml
model_provider = "openai_http"

(注意:如果已存在该字段,直接修改值即可,切勿重复添加两行)
2. 追加 HTTP Provider 定义
滑动到文件最末尾,粘贴以下代码:
toml
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true

第四步:保存并重启
保存文件后,重新启动 Codex Desktop,新建一个会话并发送消息,观察首次请求是否还会触发重连。
六、完整 config.toml 配置示例
如果你的配置文件较为空白,或者不知道插在哪里,可以参考下方这份结构完整、开箱即用的示例。(原有沙盒、插件等配置请保持不变)
toml
# 设置全局默认 Provider 为我们新建的 HTTP 模式
model_provider = "openai_http"
model = "gpt-5.5"
model_reasoning_effort = "high"
[windows]
sandbox = "elevated"
# =========== 下方为新增的 HTTP 专属 Provider ===========
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true
七、核心配置项原理解析
明白原理,遇到变种问题也能轻松应对:
| 配置参数 | 核心作用解析 |
|---|---|
model_provider = "openai_http" |
将默认大模型提供商指向我们自定义的模块。 |
[model_providers.openai_http] |
声明一个新的 Provider,好处是不破坏原生 openai 配置,方便随时回退。 |
wire_api = "responses" |
保持使用原生的高级 Responses API 接口。 |
supports_websockets = false |
核心开关:屏蔽 WebSocket 握手,强制降级走 HTTP/SSE。 |
requires_openai_auth = true |
继承 Codex/OpenAI 的网页登录态(SSO),无需额外申请 API Key。 |
八、配置验证方法
如果不确定自己改得对不对,可以通过命令行工具快速除错:
打开终端,输入以下命令:
bash
codex debug models

如果系统返回了正常的模型列表而没有抛出语法报错,说明你的 config.toml 修改完全正确。

最终测试 :回到软件,New Chat 发送一句 "Hello",如果响应正常且不再出现 reconnecting,说明问题已经被规避。
九、常见问题解答(FAQ)
Q1:Codex 桌面端新会话第一次提问一直 reconnecting,最核心的原因是什么? A:若后续对话正常,最常见的原因是本地代理对 WebSocket 的协议升级(Upgrade)或长连接保持不够稳定。
Q2:关闭 WebSocket 改走 HTTP/SSE,会影响代码生成质量或模型智商吗? A:不会。 这仅仅是客户端与服务器之间「传输数据的高速公路」换了一条,卡车里装的货物(AI 模型的能力和上下文)没有任何改变。
Q3:这个方法需要去 OpenAI 后台绑定信用卡生成 API Key 吗? A:不需要。 配置中的 requires_openai_auth = true 意味着它会继续沿用你客户端的自带登录授权状态。
Q4:为什么不建议直接在原有的默认 openai provider 里改? A:新建一个 openai_http 的好处是无损修改。未来的 Codex 客户端更新可能覆盖默认配置,独立出来的配置更易维护,出错了直接删掉即可恢复如初。
Q5:改完配置后 Codex 直接打不开/闪退了怎么办? A:这说明 config.toml 的标点符号写错了(比如漏了引号或括号)。请直接删除新增的代码,或者用第二步备份的 .bak 文件覆盖回去即可恢复。
Q6:我照做了,但还是经常 Reconnecting 怎么办? A:如果 HTTP 模式下依然断连,请重点排查:
- 当前网络链路本身是否高延迟或频繁丢包。
- 本地代理软件自身是否存在兼容性问题,必要时更换代理方式再试。
- 系统全局代理设置是否与软件实际请求路径冲突。
- Codex 客户端是否已升级至最新版本。