codex中断后应先判错再恢复:429/503可重试,401/403需刷新凭证,econnreset宜重连;推荐用codex --replay-last恢复会话,或手动构造handoff上下文续跑。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当Codex执行任务中途报错中断,已修改的代码未保存、依赖分析只做了一半、上下文状态丢失,此时不能靠刷新页面或重发指令来恢复——那只会让AI从头开始读项目结构,浪费已消耗的推理资源和时间。
确认失败类型并判断是否可重试
看到报错后,先别急着输入“继续”。观察终端或日志中最后一行错误码:若为 【429 Too Many Requests】 或 【503 Service Unavailable】,说明是限流或服务临时不可用,可进入重试流程;若为 【401 Unauthorized】 或 【403 Forbidden】,必须先刷新凭证,硬重试只会刷满日志;若为 【ECONNRESET】 或 【stream ended unexpectedly】,大概率是网络抖动或长连接中断,适合立即触发重连+上下文续跑。
这一步跳过,后续所有重试动作都可能在错误前提下执行,导致重复失败。
启用 codex --replay-last 恢复会话(推荐方法)
第一步:按下 Ctrl + C 中止当前卡死流式输出。
第二步:确保 Codex CLI 进程已退出。运行 ps aux | grep codex,若存在残留进程,用 kill -9 [PID] 清理干净。
第三步:执行 【codex --replay-last】。该命令仅在 v2.8.3+ 版本可用,会自动加载上一次中断前的完整 prompt + history + 已调用工具栈,无需手动拼接上下文。
第四步:Codex 启动后将直接从断点处继续输出,不会重新 ls 项目目录、不会重复运行已通过的单元测试。如果它仍从头解析文件,请检查 ~/.codex/cache/last_session.json 是否被截断——该文件必须包含完整的 "history" 数组,少一条就无法还原执行位置。
手动构造 handoff 上下文重试
方法一:让 Codex 自述进度
在原对话中发送:“请用 handoff 格式输出:已确认的问题、已排除的路径、已修改的文件、下一步该验证什么、哪些信息必须保留才能不重复劳动。”
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
方法二:提取纯事实条目
复制返回内容,删除所有推测性语句(如“可能是因为”“建议检查”),只保留可验证的事实,例如:“auth.py 第42行空指针异常”“已确认 JWT 密钥未加载”“settings.yaml 中 timeout 值已从30改为60”。
方法三:新建会话并粘贴
打开新终端窗口,执行 codex --new,把精简后的 handoff 内容整段粘贴进去,末尾加一句:“请从此处接手,不要重读项目结构,不要重跑已通过的测试,只执行 handoff 中明确指出的下一步。”
这一步的关键在于剥离主观描述,只留机器可识别的锚点。Codex 对模糊指令的响应是重启上下文,对精确事实条目的响应才是续跑。
配置全局重试策略防反复中断
编辑 ~/.codex/config.yaml,在 root 节点下添加:
retry:
max_attempts: 2
backoff_base: 1.5
http_timeout: 20s
这个配置将默认的 5 次重试压到 2 次,避免陷入“重连-超时-再重连”的无意义循环;20 秒 HTTP 超时能快速切断 TCP 半开连接,防止卡死十几分钟;backoff_base 控制退避间隔增长斜率,让第二次重试比第一次多等 1.5 秒而非翻倍等待。
改完后必须重启 Codex CLI 才生效。不重启,配置只是躺在磁盘上的一行文字。










