Codex/ChatGPT 反复 Reconnecting(正在重新连接) 5/5 的最简修复方法

问题现象

Codex Desktop 在新建或恢复任务后,第一次发送消息时反复显示正在重新连接:

关键是5次连接之后就自动连上了,好像也不是网络连接的问题。

text 复制代码
Reconnecting... 1/5
Reconnecting... 2/5
...
Reconnecting... 5/5

像这样,等待一段时间后又开始正常思考,任务仍能正常执行,但每次开始前都会产生明显延迟。

问题背景

OpenAI Codex 仓库的 Issue #24045 记录了相同现象。日志显示,Codex 会先尝试通过 WebSocket 连接 Responses 服务;如果 WebSocket 建连超时,就会连续重试,最后回退到 HTTP/SSE。任务能够继续执行,是因为 HTTP/SSE 通道仍然可用。
#mermaid-svg-nqKeoOSQPLoeIUuv{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-nqKeoOSQPLoeIUuv .error-icon{fill:#552222;}#mermaid-svg-nqKeoOSQPLoeIUuv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nqKeoOSQPLoeIUuv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nqKeoOSQPLoeIUuv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nqKeoOSQPLoeIUuv .marker.cross{stroke:#333333;}#mermaid-svg-nqKeoOSQPLoeIUuv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nqKeoOSQPLoeIUuv p{margin:0;}#mermaid-svg-nqKeoOSQPLoeIUuv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster-label text{fill:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster-label span{color:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster-label span p{background-color:transparent;}#mermaid-svg-nqKeoOSQPLoeIUuv .label text,#mermaid-svg-nqKeoOSQPLoeIUuv span{fill:#333;color:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv .node rect,#mermaid-svg-nqKeoOSQPLoeIUuv .node circle,#mermaid-svg-nqKeoOSQPLoeIUuv .node ellipse,#mermaid-svg-nqKeoOSQPLoeIUuv .node polygon,#mermaid-svg-nqKeoOSQPLoeIUuv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nqKeoOSQPLoeIUuv .rough-node .label text,#mermaid-svg-nqKeoOSQPLoeIUuv .node .label text,#mermaid-svg-nqKeoOSQPLoeIUuv .image-shape .label,#mermaid-svg-nqKeoOSQPLoeIUuv .icon-shape .label{text-anchor:middle;}#mermaid-svg-nqKeoOSQPLoeIUuv .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-nqKeoOSQPLoeIUuv .rough-node .label,#mermaid-svg-nqKeoOSQPLoeIUuv .node .label,#mermaid-svg-nqKeoOSQPLoeIUuv .image-shape .label,#mermaid-svg-nqKeoOSQPLoeIUuv .icon-shape .label{text-align:center;}#mermaid-svg-nqKeoOSQPLoeIUuv .node.clickable{cursor:pointer;}#mermaid-svg-nqKeoOSQPLoeIUuv .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-nqKeoOSQPLoeIUuv .arrowheadPath{fill:#333333;}#mermaid-svg-nqKeoOSQPLoeIUuv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nqKeoOSQPLoeIUuv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nqKeoOSQPLoeIUuv .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nqKeoOSQPLoeIUuv .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-nqKeoOSQPLoeIUuv .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nqKeoOSQPLoeIUuv .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster text{fill:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv .cluster span{color:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nqKeoOSQPLoeIUuv .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-nqKeoOSQPLoeIUuv rect.text{fill:none;stroke-width:0;}#mermaid-svg-nqKeoOSQPLoeIUuv .icon-shape,#mermaid-svg-nqKeoOSQPLoeIUuv .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nqKeoOSQPLoeIUuv .icon-shape p,#mermaid-svg-nqKeoOSQPLoeIUuv .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-nqKeoOSQPLoeIUuv .icon-shape .label rect,#mermaid-svg-nqKeoOSQPLoeIUuv .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nqKeoOSQPLoeIUuv .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-nqKeoOSQPLoeIUuv .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-nqKeoOSQPLoeIUuv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 成功
超时
Codex 发起请求
尝试建立 WebSocket 连接
连接是否成功
开始处理任务
重复连接,最多显示 5/5
回退到 HTTP/SSE
开始处理任务,但首轮延迟较长

常见链路可以概括为:

text 复制代码
WebSocket 建连超时
→ Codex 连续重试
→ 显示 Reconnecting 1/5 到 5/5
→ 自动回退到 HTTP/SSE
→ 任务恢复正常

解决路线一:交给 Codex 或其他 Agent 工具处理

省流,将本文链接直接发送给 Codex 或任意能够读写本机文件、执行命令的 AI Agent,再附上这句提示词:

text 复制代码
请阅读本文,先以只读方式判断我的 Codex 重连问题是否与文中描述一致。若一致,请按文中解决路线二的步骤:备份配置、完成修复并验证结果;若不一致或证据不足,则不要修改任何文件并告诉我原因。

由于配置文件位于用户目录,Agent 可能会请求写入权限。批准后,它可以完成备份、修改和检查。Codex Desktop 可能需要重启才能生效。

解决路线二:手动强制使用 HTTP

1. 备份配置文件

Codex 的用户配置文件位于:

text 复制代码
%USERPROFILE%\.codex\config.toml

USERPROFILE 代表 Windows 提供的环境变量,表示当前登录用户的主目录,通常是 C:\Users\用户名。

如果实在找不到这个位置,Codex 设置页中"配置 → 打开 config.toml"打开的就是这个文件。

不熟悉命令行的话,手动复制一份加个.bak的后缀,方便未来如果有需要还能找到恢复。

下面的备份命令不会修改该文件,而是在同一目录中复制出一个名为 config.toml.bak 的备份文件。

在 PowerShell 中,可以直接使用完整路径执行备份:

powershell 复制代码
Copy-Item "C:\Users\你的用户名\.codex\config.toml" "C:\Users\你的用户名\.codex\config.toml.bak"

如果使用 Git Bash:

bash 复制代码
cp "/c/Users/你的用户名/.codex/config.toml" "/c/Users/你的用户名/.codex/config.toml.bak"

执行前,需要把命令中的 你的用户名 替换为实际的 Windows 用户名。

2. 修改默认 provider

打开 config.toml,找到:

toml 复制代码
model_provider = "openai"

改为:

toml 复制代码
model_provider = "openai_http"

3. 添加 HTTP provider

在顶层配置项之后、第一个 TOML 表格段之前加入:

toml 复制代码
[model_providers.openai_http]
name = "OpenAI HTTP only"
base_url = "https://chatgpt.com/backend-api/codex"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

如果文件中已有 [projects.*]、[plugins.*] 等配置,建议把上面的内容放在这些段落之前。

这项配置会关闭当前 provider 的 WebSocket,直接使用 HTTP/SSE。其他模型、项目和插件配置不需要修改。

4. 重启并验证

完全退出 Codex Desktop,包括后台进程,然后重新打开并创建一个新任务。

可以在 PowerShell 中运行:

powershell 复制代码
codex doctor --summary --ascii

正常结果应包含:

text 复制代码
[ok] config       loaded
[ok] websocket    Responses WebSocket is not enabled for the active provider
[ok] reachability active provider endpoints are reachable over HTTP

如果终端中的 codex 不是桌面版自带的同一版本,以新任务是否还出现 Reconnecting 1/5...5/5 作为最终验证结果。

恢复原配置

如果需要恢复 WebSocket,将:

toml 复制代码
model_provider = "openai_http"

改回:

toml 复制代码
model_provider = "openai"

然后删除 [model_providers.openai_http] 整段配置并重启 Codex。也可以直接用备份文件覆盖当前的 config.toml。

相关推荐
回眸&啤酒鸭3 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅3 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein3 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu3 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb3 天前
智能网联汽车安全能力框架
人工智能
龙亘川3 天前
明月照湾区,智启新赛道:从顶流文旅IP盛会看智慧文旅升级路径
人工智能·智慧城市·开源软件·数据可视化
飞猫的边缘AI3 天前
边缘AI应用:家用AI摄像头怎么做数据训练?
人工智能·边缘计算·ai算法·边缘ai