适用场景:Codex 客户端每次新建会话、发送第一句话时,都会先出现 Reconnecting 1/5Reconnecting 5/5,等待一段时间后又能正常返回结果。同一个会话后续继续提问通常正常,但新开会话后又会重复这个现象。

问题现象

常见表现如下:

Reconnecting 1/5
Reconnecting 2/5
Reconnecting 3/5
Reconnecting 4/5
Reconnecting 5/5

这个问题的特点是:并不是完全无法使用,而是新会话第一句话经常要等待多次重连。重连结束后,当前会话后续交互又基本正常。

原因分析

Codex 客户端在使用 Responses API 时,底层可能会优先尝试 WebSocket 连接。

WebSocket 适合长连接和实时交互,但它对运行环境、网络链路和中间设备的兼容性要求更高。部分环境中,普通 HTTPS 请求可以正常工作,但 WebSocket 建连不稳定。

于是就可能出现下面的流程:

新会话第一句话
    ↓
客户端尝试建立 WebSocket 连接
    ↓
WebSocket 建连失败
    ↓
触发 Reconnecting
    ↓
多次重试
    ↓
回退到 HTTPS Streaming
    ↓
开始正常返回结果

这也解释了为什么同一个会话后续提问一般正常:当前会话在重试后已经切换到了可用的 HTTP 流式传输路径。

解决思路

如果问题集中出现在“新会话第一句话 WebSocket 建连阶段”,可以直接让客户端跳过 WebSocket,改用 HTTPS Streaming。

核心配置是:

supports_websockets = false

同时继续保留 Responses API:

wire_api = "responses"

也就是说,这个方法不是更换模型,也不是切换到旧接口,而是让 Responses API 使用更兼容的 HTTP 流式传输方式。

修改方法

打开 Codex 配置文件:

~/.codex/config.toml

Windows 一般对应:

C:\Users\你的用户名\.codex\config.toml

在配置文件中加入下面内容:

model_provider = "openai_http"

[model_providers.openai_http]
name = "OpenAI HTTP"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

保存后,完全退出 Codex 客户端,再重新打开。

配置说明

model_provider

model_provider = "openai_http"

指定当前使用自定义的 openai_http provider。

wire_api

wire_api = "responses"

表示继续使用 Responses API。

requires_openai_auth

requires_openai_auth = true

表示该 provider 仍然使用原有认证方式。

supports_websockets

supports_websockets = false

这是关键配置。

它会让客户端认为当前 provider 不支持 WebSocket,从而跳过 WebSocket 建连流程,直接使用 HTTP Streaming。

修改前后效果

修改前:

新会话第一句话
等待 Reconnecting 1/5 到 5/5
最后才开始返回结果

修改后:

新会话第一句话
直接进入 HTTP Streaming
减少或避免 Reconnecting 等待

注意事项

  1. 修改后需要完全退出并重新打开客户端。
  2. 如果仍然出现重连,先确认配置文件路径是否正确。
  3. 如果同时存在全局配置和项目级配置,需要检查是否被其他配置覆盖。
  4. 这个方法主要解决 WebSocket 建连不稳定导致的重连,不处理账号、权限、服务状态或本机网络不可用等其他问题。
  5. 请在符合相关服务条款和所在地法律法规的前提下使用。

如何回滚

如果想恢复默认行为,可以删除或注释掉下面这段配置:

model_provider = "openai_http"

[model_providers.openai_http]
name = "OpenAI HTTP"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

然后重启客户端即可。

总结

如果 Codex 客户端出现“每个新会话第一句话都要 Reconnecting 5 次,之后又能正常使用”的情况,可以优先排查 WebSocket 建连问题。

一个简单有效的处理方式是:

supports_websockets = false

让客户端直接使用 Responses API 的 HTTP Streaming 路径,减少 WebSocket 首连失败带来的等待。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐