Appearance
Codex 桌面端新会话 5 次 Reconnecting 怎么办?HTTP/SSE 修复方案
更新时间:2026年5月14日
适用场景:Codex Desktop 能登录、能访问模型,但第一次发送请求,或者重新开启一个对话请求时,会连续出现约 5 次
reconnecting。出品:极拓工坊
结论先行
如果 Codex Desktop 第一次发送请求,或者重新开启一个对话请求时,会连续出现约 5 次 reconnecting,但重连后又能正常回答,大概率不是模型不可用,而是首次流式连接经过本地代理时不稳定。
可行的解决方案是:在 Codex 的 config.toml 里新增一个只走 HTTP/SSE 的 OpenAI provider,并让 Codex 默认使用它,从而避开代理链路里的 WebSocket 抖动。
核心配置如下:
toml
model_provider = "openai_http"
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true这不是换账号,也不是换模型,而是让 Codex 在这个 provider 上不要尝试 WebSocket,改走 HTTP/SSE 流式响应。
问题现象
典型表现如下:
| 现象 | 说明 |
|---|---|
第一次发送请求反复 reconnecting | 常见会连续重连约 5 次,之后才稳定 |
| 重新开启一个对话请求后复现 | 每次新会话的首个连接阶段更容易抖动 |
| 后续对话基本正常 | 说明账号、模型、登录状态通常不是根因 |
| 只有走本地代理时明显 | 说明问题可能出在代理对长连接或协议升级的处理 |
| 重启 Codex 后又复现 | 首次建立流式连接阶段最容易触发 |
排查时,本机日志里出现过类似记录:
text
proxy(http://127.0.0.1:10808/) intercepts 'https://chatgpt.com/'
tunneling HTTPS over proxy这说明 Codex 请求会经过本地代理。部分代理对 WebSocket upgrade、长连接保持或 HTTPS 隧道处理不稳定,尤其是新会话第一次建立连接时,容易出现连接断开、自动重试和界面上的 reconnecting。
适用和不适用场景
这个方案适合:
- Codex Desktop 可以正常登录。
- Codex 能访问模型,只是第一次发送请求或新会话首次请求经常
reconnecting。 - 网络请求经过本地代理,例如
127.0.0.1:10808。 - 重连几次后通常能恢复,而不是完全不可用。
这个方案不适合:
- Codex 完全无法登录。
- 所有模型请求都失败。
- 代理本身无法访问
chatgpt.com。 - 防火墙、安全软件或公司网络策略直接拦截了 Codex。
如果是完全不可用,应先检查代理、DNS、系统网络、登录状态和防火墙,而不是只改 provider。
原因解释
Codex 默认的 OpenAI provider 可能会尝试使用支持 WebSocket 的传输方式。WebSocket 本身没有问题,但它对代理链路更敏感。
当本地代理在下面任一环节不稳定,就可能触发反复重连:
| 环节 | 可能问题 |
|---|---|
| WebSocket upgrade | 代理没有稳定处理协议升级 |
| 长连接保持 | 首次连接被代理或网络中间层断开 |
| HTTPS 隧道 | 代理的 TLS tunneling 过程不稳定 |
| 自动重试 | Codex 检测到断开后不断重连 |
所以这类问题的关键不是减少 Codex 的重试次数,而是让首次流式响应走更容易被代理稳定处理的 HTTP/SSE。
修改位置
Codex 配置文件通常在:
text
C:\Users\MI\.codex\config.toml如果你的 Windows 用户名不是 MI,把路径里的用户名换成自己的。也可以在 PowerShell 里这样打开:
powershell
notepad "$env:USERPROFILE\.codex\config.toml"修复步骤
第一步:关闭 Codex Desktop
先完全关闭 Codex Desktop,避免保存配置时被正在运行的进程读取到半截内容。
第二步:备份配置文件
在 PowerShell 里执行:
powershell
Copy-Item "$env:USERPROFILE\.codex\config.toml" "$env:USERPROFILE\.codex\config.toml.bak"如果后面配置写错,可以直接用备份文件恢复。
第三步:打开配置文件
powershell
notepad "$env:USERPROFILE\.codex\config.toml"第四步:在文件顶部附近加入默认 provider
toml
model_provider = "openai_http"如果文件里已经有 model_provider = ...,不要重复写两行,改成 openai_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 后,重新打开 Codex Desktop,新建一个会话,直接发送第一条消息测试。
完整配置示例
下面是一个完整示例。你的原有模型、沙盒、MCP、插件等配置都可以保留,只需要新增 provider 并切换默认 provider。
toml
model_provider = "openai_http"
model = "gpt-5.5"
model_reasoning_effort = "high"
[windows]
sandbox = "elevated"
# 其他原有配置保持不变
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true每个配置项的作用
| 配置项 | 作用 |
|---|---|
model_provider = "openai_http" | 告诉 Codex 默认使用名为 openai_http 的 provider |
[model_providers.openai_http] | 定义一个新的 provider,避免直接覆盖内置 openai provider |
wire_api = "responses" | 继续使用 OpenAI Responses API |
supports_websockets = false | 明确告诉 Codex 不要在这个 provider 上使用 WebSocket |
requires_openai_auth = true | 继续使用 Codex / OpenAI 登录认证,不需要额外配置 API Key |
最关键的是 supports_websockets = false。它会让 Codex 避开 WebSocket 路径,转向 HTTP/SSE 流式响应。
验证方法
先确认 Codex 能读取配置和模型目录:
powershell
codex debug models如果没有报错,说明配置格式基本可读。
也可以直接检查 config.toml 里的 provider 是否生效:
powershell
@'
import os, tomllib
p = os.path.expandvars(r'%USERPROFILE%\.codex\config.toml')
with open(p, 'rb') as f:
cfg = tomllib.load(f)
print(cfg.get('model_provider'))
print(cfg.get('model_providers', {}).get('openai_http', {}))
'@ | python -期望看到:
text
openai_http
{'name': 'OpenAI HTTP only', 'wire_api': 'responses', 'supports_websockets': False, 'requires_openai_auth': True}最后再做一次实际验证:新建一个 Codex 会话,直接发第一条消息。如果不再连续 reconnecting,或者重连次数明显减少,就说明这条链路更稳定。
回退方法
如果修改后出现异常,按下面步骤回退:
- 关闭 Codex Desktop。
- 打开配置文件:
powershell
notepad "$env:USERPROFILE\.codex\config.toml"- 删除这一行:
toml
model_provider = "openai_http"- 删除文件末尾这一段:
toml
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true- 保存并重启 Codex Desktop。
如果你前面做了备份,也可以直接恢复:
powershell
Copy-Item "$env:USERPROFILE\.codex\config.toml.bak" "$env:USERPROFILE\.codex\config.toml" -Force常见问题
Codex 新会话第一次提问一直 reconnecting,最可能是什么原因?
如果 Codex 后续能正常使用,常见原因是首次建立流式连接时经过了本地代理,而代理对 WebSocket 升级或长连接保持不稳定。
怎么让 Codex 不走 WebSocket?
可以在 config.toml 里新增一个 openai_http provider,把 supports_websockets 设置为 false,再把 model_provider 指向它。
这个方法需要配置 OpenAI API Key 吗?
不需要。requires_openai_auth = true 表示继续使用 Codex / OpenAI 登录认证,不需要额外配置 API Key。
这会影响模型能力吗?
通常不会。这个配置主要影响传输方式和 provider 选择,不是把模型换成别的服务。
为什么不直接修改内置 openai provider?
单独新增 openai_http 更容易维护,也更容易回退。内置 provider 留着不动,后续 Codex 更新时也更清晰。
HTTP/SSE 为什么更适合代理?
HTTP/SSE 仍然是流式响应,但它对很多本地代理来说更像普通 HTTPS 请求,不需要 WebSocket upgrade。对于只在首次连接时抖动的环境,HTTP/SSE 往往更稳定。
如果改完还是 reconnecting 怎么办?
继续检查四件事:
- 代理是否能稳定访问
https://chatgpt.com/。 - 系统代理和 Codex 进程实际使用的代理是否一致。
- 防火墙、安全软件是否拦截 Codex。
- Codex Desktop 是否已经更新到当前可用版本。
修改后 Codex 完全打不开怎么办?
优先恢复备份的 config.toml,或者删除 model_provider = "openai_http" 和 [model_providers.openai_http] 这一段,然后重启 Codex Desktop。
2026年5月的 SEO / GEO 写法说明
这篇文章按 2026 年 5 月的搜索和 AI 摘要习惯组织:开头直接给结论,正文保留完整命令、适用范围、验证方法和回退方案,并用表格拆分症状、原因和配置项,方便搜索引擎与 AI 摘要系统抽取明确答案。
需要注意的是,Google 已在 2026年5月7日停止展示 FAQ 富结果,所以本文的问答主要服务于用户阅读和 AI 摘要理解,而不是依赖 FAQ 富结果获取排名。基础 SEO 仍然更看重可见正文、清晰标题、准确更新时间、可验证步骤和与页面内容一致的结构化信息。
参考:
极拓工坊 专注自动化数据工具,提供知识星球备份、公众号文章导出等产品。 访问 gitapp.net 了解更多。
