Codex重置全指南:上下文爆满、卡住、历史清不掉的处理方法
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.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/<session-id>.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.md 反而会更快触发 token 上限。
小结
Codex 的重置本质上是上下文管理。四个命令分工明确:/compact 是省钱的继续方式,/new 和 /clear 是换任务的方式,codex resume --last 是跨会话的接力方式。配合 AGENTS.md 把项目上下文写死在文件里,就能让每次新会话都能快速恢复工作状态,不再依赖长上下文存活。
以上就是Codex重置全指南:上下文爆满、卡住、历史清不掉的处理方法的详细内容,更多关于Codex重置全指南的资料请关注脚本之家其它相关文章!
相关文章

Codex重置会话与上下文命令:/new、/clear、/compact、/resume的区别详解
在 Codex CLI 中,“Codex重置”不是一个统一命令,本文将详细对比/new、/clear、/compact、/resume和/fork的区别,帮你根据需求选择正确操作并附上安全重置顺序和常见问题解2026-08-14



最新评论