Codex 为什么总是先重连 5 次才开始回答?一次讲清并给出可回滚修复方案
摘要: Codex用户常遇到连接延迟问题,表现为新对话前需经历5次WebSocket重连(Reconnecting...),严重影响使用效率。该问题源于网络环境对WebSocket不稳定,客户端默认优先尝试WebSocket通道,失败后才切换至HTTPS。解决方案是通过修改config.toml配置文件,显式指定使用HTTPS传输并禁用WebSocket(添加supports_websockets
Codex 为什么总是先重连 5 次才开始回答?一次讲清并给出可回滚修复方案

最近不少同学在用 Codex 时会遇到一个很影响体验的问题:
- 发起新对话或执行
/new后,界面先出现多次Reconnecting... - 往往要等到第 5 次之后,才开始正常回答
- 有时还会看到“从 WebSocket 回退到 HTTPS”的提示
这个问题最烦人的地方不在于“完全不能用”,而在于:
它会稳定浪费你每次开工前的几十秒。
如果你一天开很多轮任务,这个时间损耗会非常明显。
这篇文章不讲空话,直接给你一套可复现、可验证、可回滚的处理方案,并把副作用讲清楚。
一、问题现象到底是什么
典型现象是:
- 你发起请求后,长时间没有正式输出
- 中间不断显示
Reconnecting... 1/5、2/5、…、5/5 - 之后才进入正常回复,或者提示回退到 HTTPS 传输
在社区 issue 里,这类现象不是个例。
例如:openai/codex#14297(后被标记为重复并合并到 #14209),以及与 WebSocket 超时/回退相关的 #13710。
二、为什么会这样:先走 WebSocket,失败后再回退
从公开 issue 中的日志和复现现象看,比较一致的链路是:
- 客户端优先尝试 WebSocket 通道
- 当前网络环境对 WebSocket 不稳定(握手、策略、链路质量、代理等原因)
- 客户端执行多次重连重试
- 重试耗尽后,才切到可用的 HTTPS 通道
所以你体感到的是:
“每次都要先卡一段重连时间,再开始干活。”
注意:这里的“5 次重连”与“等待时间”是基于问题复现与日志表现的工程结论,不是官方协议文档里承诺的固定值。
三、最直接的处理思路:显式使用 HTTPS provider,禁用 WebSocket
如果你的网络环境里 WebSocket 经常不稳定,最稳妥的思路是:
不要等它反复失败,直接让它走 HTTPS。
对应做法是在 config.toml 里增加一个自定义 provider,并明确:
wire_api = "responses"supports_websockets = false
配置示例(可直接用):
# 顶部增加或修改
model_provider = "openai_https"
# 文件末尾增加
[model_providers.openai_https]
name = "OpenAI"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false
四、一步一步改,避免踩坑
1) 先备份再改
改配置前建议先备份 config.toml。
这样即使有语法或行为异常,也能秒回滚。
2) 引号一定用英文半角
最常见错误之一是把 " 写成中文引号 “”。
TOML 对引号非常敏感,写错会导致配置解析失败。
3) provider 名称要一致
上面示例里,model_provider = "openai_https" 必须和 [model_providers.openai_https] 完全一致。
4) 改完重启 Codex
热更新不一定生效。
改完建议完整重启客户端/插件再验证。
五、怎么验证修复是否生效
建议按下面流程检查:
- 重启 Codex
- 新开对话或执行
/new - 观察是否还出现
Reconnecting... 1/5到5/5的链路 - 连续执行 3~5 次,确认不是偶然
如果重连显著减少或消失,说明这次配置对你的网络环境是有效的。
六、你最关心的副作用:历史记录“看不见”了怎么办
很多人改完后会发现:原来的历史记录好像没了。
通常不是被删除,而是因为:
- 历史会和 provider 关联
- 你切换到了新 provider(
openai_https) - 当前视图只显示该 provider 下的会话
也就是“分组隔离”,不是“数据丢失”。
七、回滚方案(30 秒恢复)
如果你不想继续用这个方案,按下面做:
- 删除(或注释)
[model_providers.openai_https]这一段 - 把
model_provider改回原来的 provider - 重启 Codex
回滚后通常就会回到你之前的历史会话视图。
八、给团队落地时的实用建议
如果你在团队里统一使用 Codex,我建议把下面三点写进团队 README:
- 双配置思路:默认配置 +
openai_https故障切换配置 - 统一回滚步骤:每个人都知道 30 秒如何撤回
- 故障判定标准:出现连续 3 次以上
Reconnecting再切换,不要一上来就改
这样可以减少“有人改了、有人没改、大家现象不一致”的排障成本。
九、写在最后
这个问题本质上不是“你不会用”,而是“默认传输策略和你的网络环境不匹配”。
一旦确认你所在环境里 WebSocket 不稳定,显式走 HTTPS 往往是最省时间的工程解法。
把本文的方案记成一句话:
默认链路总在重连,就别等它失败后再回退,直接配置到可用链路。
参考链接
- 微信原文:https://mp.weixin.qq.com/s/KFZMDCbiakzuD5iNJ7pvuQ
- GitHub Issue
#14297(已标记为重复):https://github.com/openai/codex/issues/14297 - GitHub Issue
#14209(关联主问题):https://github.com/openai/codex/issues/14209 - 相关现象(WebSocket 超时回退 HTTPS):https://github.com/openai/codex/issues/13710
更多推荐



所有评论(0)