Codex 每次派发子任务都 Reconnecting 1/5?5 次重试原因与解决办法

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/55/5,同时日志中出现 unknown conversationconversation 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 Subagents

七、解决办法四:更新并彻底重启 Codex

Codex App、Codex CLI 和 IDE 插件可能使用不同版本。

先检查独立安装的 CLI 版本:

codex --version

macOS 用户还可以在 Codex App 的 About 页面查看桌面端版本。

更新后不要只关闭窗口,应当完全退出 Codex,再重新启动。Windows 用户还需要检查任务管理器中是否残留 Codex.execodex.exe 或 app-server 进程。

如果只有桌面端出现重连,而 CLI 执行相同任务正常,问题更可能位于桌面端的会话管理层。

反过来,如果 App、CLI 和 IDE 插件全部重连,则需要优先排查网络、账号、服务状态或模型响应问题。

八、解决办法五:排查代理、WebSocket 和证书

如果不派发子智能体也会重连,就需要检查网络链路。

建议按照下面的顺序测试:

  1. 查看 OpenAI Status 是否存在 Codex 或 ChatGPT 故障;
  2. 使用全新任务发送简单消息;
  3. 临时切换网络,比较问题是否仍然出现;
  4. 检查代理是否同时支持 HTTPS 和安全 WebSocket;
  5. 确认 Codex 进程实际使用了正确的网络配置;
  6. 检查公司网络是否进行了 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次重试,可以按照下面的顺序处理:

  1. 新建任务,明确要求不要使用子智能体;
  2. 如果恢复正常,暂时设置 multi_agent = false
  3. 仍需并行处理时,将 agents.max_threads 降到2;
  4. 更新并完全重启 Codex App;
  5. 使用 CLI 执行同一个简单任务进行对照;
  6. 普通任务也重连时,再检查代理、WebSocket和证书;
  7. 长对话出现问题时,使用 /compact 或新建任务;
  8. 保留 Request ID 和日志,向官方提交问题。

就我这次遇到的情况而言,本机日志中反复出现了 unknown conversationConversation state not found,所以更接近子智能体派发后的会话同步异常,而不是单纯的网络速度问题。

临时禁止多智能体,或者把并发数量降低到2,是目前更直接的绕过方式。

延伸阅读

如果你还不熟悉 Codex 的工作方式,可以继续阅读:

如果你准备长期使用 Codex,但在 ChatGPT Plus 支付环节遇到问题,也可以了解第三方订阅辅助方案:

查看 WildAI / BeWild 的 ChatGPT Plus 相关服务

邀请码:

GPT45

注册时使用可以优惠1刀!!!

上一篇 国内ChatGPT账号注册(无需手机验证码 2026年2月)
下一篇 Codex 取消 5 小时限额了吗?GPT-5.6 更新后的周限额与 Plus 配额说明

相关推荐