Codex 的任务恢复通常有三种常用方式:第一种,通过 codex resume 调出历史会话列表后手动选择要继续的任务,但需要注意,系统默认只保留 7 天内未活跃的会话;第二种,更高效直接,使用 codex --continue 可以在秒级继续上一次会话,它依赖的核心是 latest.json 这个指针文件;第三种,则是借助 HANDOFF.md 手动重建任务上下文,文档中需要完整写明六项关键内容:目标、当前状态、已验证事实、已排除路径、下一步动作,以及失败约束。

在 Codex 中处理长时间任务时,比如日志分析、模块重构、接口调试,最麻烦的往往不是任务本身难,而是执行到一半因为开会、通勤、断电或系统休眠被迫中断。问题在于,几乎没人愿意回头重新整理已经检查过的文件路径、已经排除的报错原因、已经执行过的关键命令,以及当时的判断逻辑。遇到这类情况,真正有效的做法,是利用 Codex 的历史任务恢复能力继续未完成任务,而不是从头重新描述上下文。
用 codex resume 列出并选择会话
打开终端,进入项目根目录,直接运行:
codex resume
执行后会显示所有已保存会话的摘要列表,每条记录通常包含时间戳、初始指令关键词以及最后一次交互时间。Codex 默认只展示最近 10 条记录,但本地实际保存的会话数量可能更多。
如果列表中没有你想继续的那条任务,通常说明它已经被系统自动清理——【Codex 默认只保留最近 7 天未活跃的会话】。超过这个时间限制,除非你之前手动导出过 session 文件,否则通常无法再通过 resume 恢复。
使用方向键高亮目标会话,按回车后即可加载完整上下文,包括已读取的文件内容、工具调用输出、中间变量状态,以及尚未完成的待办事项列表。
用 codex --continue 快速续跑上一次会话
如果你刚退出不久,比如 5 分钟内,并且期间没有启动新的 Codex 会话,可以直接运行:
codex --continue
这条命令不会显示会话列表,而是省略选择步骤,直接恢复最近一次关闭前的会话。它依赖本地 .codex/sessions/ 目录中的 latest.json 指针文件,因此只要该文件没有被清理、替换或覆盖,通常就可以实现秒级恢复。
需要注意的是:如果在此期间你又启动过另一个 Codex 任务,latest.json 就会被更新为新的会话记录,这时执行 --continue 很可能会进入错误的上下文。
从 Handoff 文档手动重建任务状态
当 resume 和 --continue 都无法使用时(例如跨设备操作、系统重装、会话被手动删除),最可靠的办法就是读取并使用你之前编写的 Handoff 记录。
第一步:找到项目根目录下的 HANDOFF.md 或 ./codex/handoff/ 目录
第二步:确认其中是否包含以下六项关键信息——目标、当前状态、已验证事实、已排除路径、下一步动作、失败约束
第三步:新建一个会话,将整段 Handoff 内容粘贴为第一条消息,最后补上一句“请基于此继续执行”
Handoff 不是简单备忘录,而是交给下一位执行者(无论是开发者还是 AI)的最小可执行说明文档。缺少“已排除路径”或“失败约束”,新会话大概率会重复走弯路;如果漏掉“当前状态”,AI 也可能误判任务进度,重新从头扫描代码和环境。
如果 HANDOFF.md 为空或不存在,说明上一次中断前并没有写 Handoff。此时你只能依靠 git diff 查看代码变更、通过 terminal history 回溯执行命令、结合编辑器中已打开的文件判断任务断点——但这些方法通常只能恢复部分技术状态,无法完整找回当时的分析思路与决策过程。
