Skip to content

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,或者重连次数明显减少,就说明这条链路更稳定。

回退方法

如果修改后出现异常,按下面步骤回退:

  1. 关闭 Codex Desktop。
  2. 打开配置文件:
powershell
notepad "$env:USERPROFILE\.codex\config.toml"
  1. 删除这一行:
toml
model_provider = "openai_http"
  1. 删除文件末尾这一段:
toml
[model_providers.openai_http]
name = "OpenAI HTTP only"
wire_api = "responses"
supports_websockets = false
requires_openai_auth = true
  1. 保存并重启 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 了解更多。