问题现象

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

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

Reconnecting... 1/5
Reconnecting... 2/5
...
Reconnecting... 5/5

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

问题背景

OpenAI Codex 仓库的 Issue #24045 记录了相同现象。日志显示,Codex 会先尝试通过 WebSocket 连接 Responses 服务;如果 WebSocket 建连超时,就会连续重试,最后回退到 HTTP/SSE。任务能够继续执行,是因为 HTTP/SSE 通道仍然可用。

成功

超时

Codex 发起请求

尝试建立 WebSocket 连接

连接是否成功

开始处理任务

重复连接,最多显示 5/5

回退到 HTTP/SSE

开始处理任务,但首轮延迟较长

常见链路可以概括为:

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

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

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

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

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

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

1. 备份配置文件

Codex 的用户配置文件位于:

%USERPROFILE%\.codex\config.toml

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

如果实在找不到这个位置,Codex 设置页中“配置 → 打开 config.toml”打开的就是这个文件。
在这里插入图片描述

config位置

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

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

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

Copy-Item "C:\Users\你的用户名\.codex\config.toml" "C:\Users\你的用户名\.codex\config.toml.bak"

如果使用 Git Bash:

cp "/c/Users/你的用户名/.codex/config.toml" "/c/Users/你的用户名/.codex/config.toml.bak"

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

2. 修改默认 provider

打开 config.toml,找到:

model_provider = "openai"

改为:

model_provider = "openai_http"

3. 添加 HTTP provider

在顶层配置项之后、第一个 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 中运行:

codex doctor --summary --ascii

正常结果应包含:

[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,将:

model_provider = "openai_http"

改回:

model_provider = "openai"

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

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐