这是 AI 疑难杂症病例手记的第一期。

这是一个新的系列,记录我在使用codex、claude等等各种不同工具时踩过的坑,尤其是环境配置,代理设置等可能大家都会遇到的问题,以及附上解决办法供参考,方便有人如果遇到诸如此类的问题,又恰好搜索到这篇文章时,可能得到帮助。

如果大家遇到什么问题,可留言讨论。

今天我们解决的问题是:Codex 重复连接重复 Reconnecting 的解决办法。

一、症状描述

Codex 重复 Reconnecting:原因与解决办法配图 1

我们有时候会遇到这种状况:我们使用codex时,它会显示Reconnecting,重复5便之后,又自动连接上开始运行,但问它问题或执行命令又会重复上面的步骤。说它没链接吧,它最后又很争气的连上了,但中途的等待浪费人的时间。今天就来解决这个问题。

来源:rodya.top/articles/codex-reconnecting-fix · 罗佳 Rodya 原创

二、原因描述

这个问题的原因很可能是:WebSocket 没有正常走代理。

通俗的解释是,我们任何的网络连接网络请求有两种“沟通方式”,一种是http/https,一种是 websocket。

HTTP / HTTPS 像你去窗口办事:你问一句:“给我这个网页/接口结果。”服务器回一句: “给你。”

WebSocket 像你和服务器打了一通电话:先接通:“我们保持通话吧。”接通后,双方都可以随时说话。你不用每次都重新拨号,服务器也能主动推消息给你。比如 Codex 实时显示状态、流式返回内容、聊天消息实时更新,就很适合 WebSocket。

所以我们出现这个问题的原因很可能是:由于codex默认会优先尝试使用 WebSocket去和服务器连接,但在很多代理环境里,尤其是终端环境、Clash、v2rayN 这类组合下,可能会出现一种情况: HTTP / HTTPS 请求能正常走代理, 但是 WebSocket 不一定能正常走代理。

所以codex默认的WebSocket没办法正常走代理的话,回退到普通 HTTP 请求然后突然又能用了。也就是我们看到的Reconnecting五次之后才恢复正常连接。

来源:rodya.top/articles/codex-reconnecting-fix · 罗佳 Rodya 原创

三、解决办法

知道了原因,我们只需要让codex的WebSocket正常走代理就可以了。

帮我在 Codex 配置目录下创建一个 .env 文件。

用你的端口号替代上面的“你的代理端口”就可以了,比如我的端口号是:10808。

帮我在 Codex 配置目录下创建一个 .env 文件。

把内容发给codex,让它自己创建就行。

Codex 重复 Reconnecting:原因与解决办法配图 2

然后重启codex,问题就解决了。

Codex 重复 Reconnecting:原因与解决办法配图 3

风骨