Codex 的"重置"不是一个命令,而是四个场景下四种不同的操作:上下文满了要压缩或新开、想换任务要清空历史、关了终端想恢复上次进度、彻底删掉某段对话历史。每种场景对应不同的命令,用错了要么上下文没真正清掉,要么把本来还能恢复的进度搞丢。本文逐场景拆解,附完整命令速查表。


先搞清楚:Codex 的"上下文"是什么

Codex 每次对话都维护一个上下文窗口(Context Window)。每条消息、每段代码、每次工具调用都会往里塞内容,窗口装满之后就会报错:

Codex ran out of room in the model's context window.
Start a new thread or clear earlier history before retrying.

这不是 bug,是 LLM 的硬性限制。Codex 的底层模型有 token 上限,超出之后必须处理——要么压缩历史、要么新开会话、要么恢复一个更早的检查点。

理解这一点,后面所有的"重置"操作就有了判断依据。


四个命令,四种重置

/compact:压缩上下文(不清空,继续干活)

适合场景:上下文快满了,但当前任务没做完,不想丢掉进度。

/compact

Codex 会把当前会话的历史对话总结成一段摘要,用摘要替换原始对话记录,释放 token 空间,然后你可以继续当前任务。

这是最不伤进度的操作。建议在启动一个新的大段任务前主动执行,而不是等到报错再用——主动压缩时你还能控制哪些内容被保留,被动报错时就只能被动处理了。

执行后用 /status 确认空间是否释放:

/status

/status 会显示当前会话的 token 用量、使用的模型、审批策略等信息。压缩后 token 数字应该明显下降。


/new:新建对话(同一会话,上下文清空)

适合场景:当前任务做完了,换下一个完全不相关的任务,不想带着旧上下文干扰新任务。

/new

在同一个 Codex 进程里开一个新的对话线程,旧的历史不再参与模型推理。这不会退出 Codex,也不会影响已经创建的文件和代码。

和 /clear 的区别:

命令

清空对话历史

清空终端显示

退出进程

/new

/clear

Ctrl+L

注意:Ctrl+L 只是滚动终端视图,让屏幕看起来干净,上下文完全没有清空,模型还记得所有历史。很多人以为按了 Ctrl+L 就"重置"了,其实什么都没变。


/clear:完全重置(清空历史 + 清空终端)

适合场景:彻底换任务,不需要保留任何旧上下文,同时希望终端看起来干净。

/clear

等价于 /new + Ctrl+L。执行后当前对话历史在模型上下文里消失,终端显示也清空。Codex 进程本身继续运行,配置文件(~/.codex/config.toml)和 AGENTS.md 不受影响。


codex resume:恢复上一次会话

适合场景:关掉终端后想接着上次做到一半的任务继续。

# 直接恢复最近一次会话(当前目录下)
codex resume --last

# 打开会话选择器,手动选择
codex resume

# 恢复所有目录的会话(不限当前目录)
codex resume --last --all

Codex 会把每次会话保存在 ~/.codex/ 下,codex resume --last 跳过选择器直接跳到最近一次。在会话内部也可以用 /resume 命令打开选择器切换到任意历史会话。

限制:resume 恢复的是会话的历史记录(上下文),但如果上次会话的上下文本身已经很长,恢复后可能立刻接近 token 上限,这时候接着用 /compact 压一下再继续。


上下文爆满的完整处理流程

遇到 「Codex ran out of room」 错误时,按这个顺序判断:

情况 A:当前任务还没完成,想继续

/compact          # 压缩历史,释放 token
/status           # 确认 token 用量降下来了
(继续输入任务)

如果 /compact 后还是满的(说明当前对话实在太长),需要:

/new              # 新建对话
(手动把关键上下文粘贴回来,比如:"我在做 X 功能,目前的实现是…")

情况 B:当前任务刚好做完,准备换下一个

/new    # 或 /clear(看是否需要清终端)
(直接开始新任务)

情况 C:刚关掉终端,想恢复

codex resume --last

进去后用 /status 看 token 用量,如果接近上限再 /compact 一次。


用 AGENTS.md 避免重置后「失忆」

Codex 每次新开对话(/new 或重启进程),当前项目的背景信息都会从模型上下文里消失。每次都要手动重述「这个项目是干什么的」既费时间又浪费 token。

解AGENTS.mdTS.md:在项目根目录放一个 AGENTS.md 文件,Codex 每次启动时会自动读取,把里面的内容作为初始上下文加载。

# 让 Codex 帮你生成 AGENTS.md 框架
/init

AGENTS.md 适合写的内容:

  • 项目简介(1-2 句话)

  • 技术栈和约定(语言、框架、测试工具)

  • 关键限制(「不要修改 src/core/ 目录」「提交前必须跑 npm test」)

  • 常用的上下文(环境变量、API 端点格式)

有了 AGENTS.md,/new 和 codex resume 后的新对话都能快速恢复项目语境,不需要重新解释背景。这比靠 resume 恢复长上下文更可靠,也不消耗大量 token。


彻底删除历史对话

如果你想删掉某段包含敏感代码或密钥的历史会话(而不只是清空当前上下文):

ChatGPT App 方式(Codex 云端会话):

打开 ChatGPT App → 侧边栏找到 Codex 会话列表 → 悬停在会话标题上 → 点击垃圾桶图标删除。

CLI 本地会话

Codex CLI 的本地会话存在 ~/.codex/ 目录下,可以直接删除对应的会话文件。注意删除后 codex resume 就找不到这条记录了,操作不可逆。

# 查看本地会话文件
ls ~/.codex/

# 删除某个会话文件(替换为实际文件名)
rm ~/.codex/sessions/.json

重置后的配置检查

/clear、/new 和重启 Codex 进程都不会改动配置文件——~/.codex/config.toml 里的 provider 设置、model 设置在重置后依然有效。但如果你在重置过程中同时升级了 Codex 版本,偶尔会遇到配置格式不兼容的情况,这时候用 /debug-config 查配置层是否加载正确:

/debug-config

配置有问题时,比较常见的是自定义 model_provider 的 base_url 或 env_key 写法变了。七牛云开发者文档整理了常见 AI 编程工具(包括 Codex、Claude Code 等)的配置示例,遇到配置问题可以参考 developer.qiniu.com/aitokenapi/13195/AI-Coding。


命令速查表

场景

命令

说明

上下文快满,继续当前任务

/compact

压缩历史,不清空,继续工作

换任务,清空上下文

/new

新对话,同一进程,终端不清

换任务 + 清终端

/clear

新对话 + 清空终端显示

只清终端视图(不重置上下文)

Ctrl+L

仅视觉清空,上下文完整保留

恢复上一次会话

codex resume --last

CLI 命令,进程外执行

选择历史会话恢复

codex resume

打开选择器

会话内切换历史

/resume

在对话框内打开会话选择器

查看 token 用量

/status

确认上下文是否释放成功

检查配置是否正常

/debug-config

排查 provider 配置问题

生成项目说明模板

/init

初始化 AGENTS.md


常见问题

Q:/compact 之后,Codex 还记得前面做过什么吗?

记得,但以摘要的形式。压缩不是删除,而是把长对话浓缩成一段结构化摘要,模型依然能从摘要里读取关键信息继续工作。如果任务逻辑很复杂,压缩后可能丢失一些细节,这时候用 /mention 重新附上关键文件补充上下文。

Q:关掉终端后 Codex 会话还在吗?

本地 CLI 会话会保存到 ~/.codex/ 目录,下次用 codex resume --last 可以找回来。但会话里的后台终端进程(通过 /ps 管理的)会在你关掉终端后终止,正在执行的命令不会自动恢复。

Q:Codex 的 token 限制是多少?

取决于底层使用的模型。用 /status 可以看到当前会话的 token 用量和模型名称,具体上限可在 OpenAI 官方文档里查对应模型的 context window 规格。

Q:AGENTS.md 会消耗多少 token?

AGENTS.md 的内容在每次会话启动时被加载进上下文,文件越长消耗越多。建议控制在 500-1000 词以内,只写最关键的约定AGENTS.mdGENTS.md 反而会更快触发 token 上限。


小结

Codex 的重置本质上是上下文管理。四个命令分工明确:/compact 是省钱的继续方式,/new 和 /clear 是换任务的方式,codex resume --last 是跨会话的接力方式。配合 AGENTS.md 把项目上下文写死在文件里,就能让每次新会话都能快速恢复工作状态,不再依赖长上下文存活。


延伸阅读

  • Codex CLI 官方功能文档:developers.openai.com/codex/cli/features

  • Codex slash 命令完整列表:github.com/openai/codex/blob/main/docs/cli-reference.md

  • 主流 AI 编程工具coding plan:https://www.qiniu.com/ai/plan