Codex 派发子智能体时反复显示 Reconnecting 1/5 到 5/5,通常与响应流中断、代理链路或多智能体会话状态异常有关。本文介绍问题原因、日志判断方法和可操作的解决方案。
最近使用 Codex App 处理复杂开发任务时,我遇到了一个很有规律的问题:
只要 Codex 开始派发子任务或创建多个智能体,界面就会连续出现:
Reconnecting... 1/5
Reconnecting... 2/5
Reconnecting... 3/5
Reconnecting... 4/5
Reconnecting... 5/5等待一段时间后,有时任务能继续执行,有时则会直接提示:
stream disconnected before completion一开始我以为是网络不稳定,后来结合 Codex 官方配置、OpenAI Codex GitHub Issues 和本机日志排查后发现:Codex 显示 5 次重试,不一定只是网络问题。
如果普通单智能体任务正常,只有派发子智能体时出现重连,更可能是多智能体的会话状态同步或任务路由出现异常。
本文整理一下这个问题的原因、判断方法和目前可行的解决方案。
一、为什么 Codex 恰好重试 5 次?
“1/5 到 5/5”并不是模型把整个开发任务执行了五遍,而是 Codex 客户端在响应流断开后尝试重新连接。
OpenAI 的 Codex 配置参考中提供了下面这个配置项:
stream_max_retries = 5它表示流式响应中断时的默认重试次数是 5 次。
官方文档还显示,SSE 流的默认空闲超时时间为:
stream_idle_timeout_ms = 300000也就是 300000 毫秒,即 5 分钟。
因此,如果连接、响应流或者会话状态出现异常,Codex 会先尝试恢复,而不是立即结束任务。界面上看到的 Reconnecting 1/5,就是这个恢复过程。
参考:Codex Configuration Reference
需要注意的是:
- 这通常不代表完整任务执行了 5 遍;
- 已经执行过的命令和文件修改仍应通过
git diff检查; - 不要因为看到 5 次重试,就直接把重试次数改成几十次;
- 增加重试次数只能延后报错,不能解决真正的连接或会话问题。
二、先判断属于哪一种重试问题
Codex 的 Reconnecting 1/5 可能由不同原因触发,可以根据出现时机初步判断。
| 出现情况 | 更可能的原因 |
|---|---|
| 普通问答也会重试 | 网络、代理、WebSocket 或服务端连接问题 |
| 只有派发子智能体时重试 | 多智能体会话状态或任务路由异常 |
| 每次等待约5分钟后重试 | 流式响应空闲超时 |
| 只有特别长的对话出现 | 上下文过大或会话状态异常 |
| 新建任务第一次容易重试 | App 启动、WebSocket 预连接或进程状态问题 |
| 某个模型重试,其他模型正常 | 模型响应延迟或特定模型服务异常 |
建议先创建一个全新的 Codex 任务,然后发送一个简单请求:
不要创建子智能体,只检查当前项目使用了什么开发框架,不要修改文件。如果简单的单智能体任务正常,但要求并行派发任务后马上开始 Reconnecting,问题就很可能与子智能体有关。
三、我的日志中出现了什么?
Codex 官方文档说明,macOS 版 App 日志通常保存在:
~/Library/Logs/com.openai.codex/YYYY/MM/DD我在本机日志中搜索会话和重连相关错误时,发现了多次类似记录:
Received turn/started for unknown conversation
Received item/started for unknown conversation
Received turn/completed for unknown conversation
Conversation state not found这些日志说明:
Codex 后台已经启动了子智能体任务,但桌面端没有正确找到对应的会话状态,或者子任务事件被路由到了一个当前界面无法识别的 conversation。
这和单纯的“网络断开”并不完全一样。
截至2026年7月,OpenAI Codex 官方 GitHub 仓库中也有一个高度相似的未关闭问题。该问题描述了在派发多个子智能体后,Codex App 出现 Reconnecting 1/5 到 5/5,同时日志中出现 unknown conversation 和 conversation state not found。
参考:Codex App/CLI: subagent tasks trigger reconnect loop and stream disconnect
因此,如果你也是“普通任务正常,派发智能体就重连”,不要一开始就反复修改代理。先按多智能体会话问题排查。
四、解决办法一:暂时禁止 Codex 派发子智能体
这是目前最简单、风险最低的临时方案。
在任务开头明确告诉 Codex:
当前任务不要创建或派发子智能体,也不要使用并行 agent。
请由主智能体按顺序完成:先分析,再修改,最后运行测试。如果这样操作后不再出现重试,基本可以确认问题与子智能体派发有关。
这种方法的缺点是失去了并行处理能力,但对普通功能修改、Bug 修复和单模块开发影响不大。
五、解决办法二:在配置中关闭多智能体
如果 Codex 经常自动派发子任务,可以在用户配置文件中暂时关闭多智能体功能。
打开:
~/.codex/config.toml添加:
[features]
multi_agent = false保存后完全退出并重新打开 Codex。
如果配置文件中已经存在 [features],只需要在原有区块中增加:
multi_agent = false不要创建两个重复的 [features] 区块。
这个方法会关闭子智能体协作工具。等后续 Codex App 更新并修复相关问题后,再改回:
multi_agent = true六、解决办法三:降低并发子智能体数量
如果你仍然希望使用多智能体,可以先降低并发数量。
Codex 官方文档显示,agents.max_threads 默认值是 6。可以暂时降低为 2:
[agents]
max_threads = 2
max_depth = 1其中:
max_threads = 2:最多同时保留两个智能体任务;max_depth = 1:只允许主智能体创建直接子智能体;- 避免子智能体继续派生更多智能体。
这不是官方承诺的修复方案,但可以减少同时创建的会话数量,降低任务路由和本地资源压力。
官方也建议并行智能体优先用于代码搜索、测试、日志分析和资料整理。多个智能体同时修改文件,更容易产生冲突和协调成本。
七、解决办法四:更新并彻底重启 Codex
Codex App、Codex CLI 和 IDE 插件可能使用不同版本。
先检查独立安装的 CLI 版本:
codex --versionmacOS 用户还可以在 Codex App 的 About 页面查看桌面端版本。
更新后不要只关闭窗口,应当完全退出 Codex,再重新启动。Windows 用户还需要检查任务管理器中是否残留 Codex.exe、codex.exe 或 app-server 进程。
如果只有桌面端出现重连,而 CLI 执行相同任务正常,问题更可能位于桌面端的会话管理层。
反过来,如果 App、CLI 和 IDE 插件全部重连,则需要优先排查网络、账号、服务状态或模型响应问题。
八、解决办法五:排查代理、WebSocket 和证书
如果不派发子智能体也会重连,就需要检查网络链路。
建议按照下面的顺序测试:
- 查看 OpenAI Status 是否存在 Codex 或 ChatGPT 故障;
- 使用全新任务发送简单消息;
- 临时切换网络,比较问题是否仍然出现;
- 检查代理是否同时支持 HTTPS 和安全 WebSocket;
- 确认 Codex 进程实际使用了正确的网络配置;
- 检查公司网络是否进行了 HTTPS 证书拦截。
在 CLI 环境中,可以检查当前代理变量:
env | rg -i '^(http|https|all|no)_proxy='需要注意:从终端启动的 Codex CLI 和从 Dock、Finder、开始菜单启动的桌面 App,不一定继承相同的环境变量。
如果公司网络使用私有根证书或 TLS 检查,Codex 官方支持通过下面的环境变量指定 CA 证书:
export CODEX_CA_CERTIFICATE=/path/to/corporate-root-ca.pem不要下载来源不明的证书,也不要为了消除报错而关闭系统证书验证。
九、长对话出现重连怎么办?
如果只有使用时间很长的任务出现问题,可以尝试压缩上下文。
Codex CLI 支持:
/compact它会总结当前任务中的关键信息,减少上下文占用。
也可以新建任务,并提供一份简短的交接信息:
请继续处理以下问题:
项目路径:
当前目标:
已经完成:
仍未完成:
需要注意的文件:
验证命令:如果错误信息明确包含:
Your input exceeds the context window那么重点应当是缩短上下文或新建任务,而不是调整网络代理。
十、不建议直接尝试的办法
1. 把重试次数改得很大
例如:
stream_max_retries = 100这通常只会让 Codex 等待更长时间。如果底层会话状态已经丢失,重试100次也不会恢复。
而且该设置属于模型提供商配置,不应直接为内置 OpenAI Provider 创建错误的自定义配置。
2. 一看到重连就禁用 WebSocket
WebSocket 确实可能被代理或公司网络阻断,但它不是所有 Reconnecting 5/5 的根因。
在前面提到的子智能体问题中,报告者尝试关闭 WebSocket、改用 HTTPS,并关闭 Hooks,问题仍然存在。
因此应先判断:
- 所有任务都重连:优先检查网络;
- 只有派发子智能体重连:优先检查多智能体会话;
- 只有长对话重连:优先检查上下文;
- 只有一个模型重连:切换模型进行对照。
3. 反复退出登录
只有日志明确显示认证失败、令牌失效或工作区权限异常时,重新登录才有意义。
会话路由、代理中断和上下文超限通常不会因为反复登录而解决。
十一、如何收集日志并反馈问题?
macOS 用户可以运行:
rg -n -i \
'stream disconnected|unknown conversation|conversation state not found|websocket|timeout' \
~/Library/Logs/com.openai.codex/$(date +%Y/%m/%d)提交问题时建议提供:
- Codex App 或 CLI 版本;
- 操作系统版本;
- 使用的模型;
- 是否只在子智能体任务中出现;
- 是否使用代理或公司网络;
- 完整错误文本;
- 错误中的 Request ID;
- 删除敏感信息后的相关日志。
Codex 官方建议先搜索已有问题,再通过 OpenAI Codex GitHub Issues 提交可复现的问题。
上传日志之前,一定要检查其中是否包含项目路径、代码内容、账号信息或其他敏感数据。
十二、最终排查顺序
如果你的 Codex 每次派发子任务都会出现5次重试,可以按照下面的顺序处理:
- 新建任务,明确要求不要使用子智能体;
- 如果恢复正常,暂时设置
multi_agent = false; - 仍需并行处理时,将
agents.max_threads降到2; - 更新并完全重启 Codex App;
- 使用 CLI 执行同一个简单任务进行对照;
- 普通任务也重连时,再检查代理、WebSocket和证书;
- 长对话出现问题时,使用
/compact或新建任务; - 保留 Request ID 和日志,向官方提交问题。
就我这次遇到的情况而言,本机日志中反复出现了 unknown conversation 和 Conversation state not found,所以更接近子智能体派发后的会话同步异常,而不是单纯的网络速度问题。
临时禁止多智能体,或者把并发数量降低到2,是目前更直接的绕过方式。
延伸阅读
如果你还不熟悉 Codex 的工作方式,可以继续阅读:
- Codex 是什么?OpenAI AI 编程智能体怎么用
- GPT-5.6 Sol、Terra、Luna 有什么区别?Codex 三款新模型怎么选
- 国内如何开通 ChatGPT Plus?订阅流程与注意事项
如果你准备长期使用 Codex,但在 ChatGPT Plus 支付环节遇到问题,也可以了解第三方订阅辅助方案:
查看 WildAI / BeWild 的 ChatGPT Plus 相关服务
邀请码:
GPT45注册时使用可以优惠1刀!!!