MemoryLake
返回全部文章
Tutorial2026 年 11 月 3 日·10 分钟阅读

Codex 中的 /recap 有什么作用?Recap 读取什么、为什么它不压缩对话以及如何关闭自动 Recap (2026)

你让一个 Codex 会话保持运行,切换到其他任务,回来时在终端看到一小段文字告诉你当前进度。这就是 recap(回顾)。你也可以随时输入 /recap 来主动获取。

OpenAI 的命令参考将其描述为两个部分。它的作用:“生成当前对话的摘要。”何时使用它:“在不压缩上下文的情况下了解聊天进度。”

第二行是重点。recap 告诉你当前所处的位置,而不会改变 Codex 正在处理的内容。本指南涵盖了 recap 读取的内容、Codex 何时自动生成 recap、它与 /compact 的区别,以及如何关闭自动 recap。如果你想要对话的完整副本而不是摘要,请参阅我们的导出 Codex 聊天指南。

/recap 的作用

OpenAI 文档中的步骤很简短:“当 Codex 空闲时,输入 /recap。”随后 Codex 会撰写一份到目前为止的对话简短摘要并显示在终端中。

文档补充了两点。无论你的设置如何,手动 recap 都能工作:“即使 tui.auto_recap = false,Codex 也会生成对话摘要。”如果你真正的问题是空间不足,它会引导你使用其他命令:“当你想要释放上下文空间时,请使用 /compact。”

因此,/recap 是为你(读者)准备的。它不会在聊天中腾出空间,文档将其作为一种保留聊天原始上下文的选项。

recap 读取的内容

Codex 的开源代码显示了 recap 的构成,它比整个会话的范围要窄。

仅限最近可见的交流。 代码根据你在对话中能看到的消息构建 recap:你的请求和 Codex 的回复。它排除了工具输出、推理过程和其他线程的历史记录。

有限的窗口。 代码最多提取最近的八次交流,并将其放入约 8,192 个 token 的固定预算中(包括指令)。当历史记录较长时,较旧的交流会首先被舍弃,长消息会从中间裁剪,保留开头和结尾。

你的最新请求会被完整保留。 如果你最新的消息尚未得到回复,代码会将其与最新的回复一起保留,以便 recap 反映你刚刚提出的要求。

引导指令保持关联。 如果你在 Codex 工作时发送了消息,代码会将相邻的用户消息视为一个请求,因此任务中途的修正会与它所修改的请求一起被读取。

recap 被要求表达的内容

Codex 随历史记录发送的指令要求为返回任务的人提供简短的进度同步:总体目标、有意义的进展以及任何阻碍因素。它们还要求模型保留未解决的注意事项,例如尚未安装的修复程序或尚未运行的测试,并区分已提议、已排队、已实现、已测试或已发布的工作。目标长度为 40 到 60 个单词,在用户语言中绝不超过 80 个单词。

recap 还可以包含下一步行动,但仅限于有待你回答的问题、已商定的下一步步骤或针对阻碍因素的明确补救措施。代码将摘要限制在 700 个字符以内,下一步行动限制在 200 个字符以内。

指令告诉模型将对话视为数据,并记住它可能是不完整的或摘录的。这对你也是一个公平的提醒。recap 是根据最近的消息构建的快速定位,而不是完整的记录。

recap 在哪里运行

代码通过一个单独的临时请求生成 recap,使用与你当前会话相同的模型。结果在到达时显示在你的终端中。

这种设计就是为什么文档可以将 /recap 描述为一种在不压缩的情况下了解进度的方法。这项工作发生在你的对话之外。为了生成它,你的聊天历史记录不会被总结或替换。

Recap 是终端功能。如果你尝试在云端对话中使用 /recap,代码会显示一条消息,说明云端对话不提供对话回顾。如果 recap 已经在生成中,或者还没有对话,Codex 会告知你而不是开始另一个请求。

Codex 何时自动生成 recap

自动 recap 默认开启。OpenAI 的配置参考将该设置描述为:“当终端失去焦点时生成自动对话回顾(默认值:true)。”

开源代码补充了触发时机:

  • 终端必须处于非焦点状态。 切换离开终端窗口即开始计时。在 recap 生成前返回会取消待处理的任务。
  • 约 30 分钟。 代码会从两个时刻中较晚的一个开始等待 30 分钟:终端失去焦点时,以及最后一轮对话结束时。
  • 足够的对话量。 在第一次自动 recap 之前,至少需要完成三轮对话。
  • 自上次以来有新内容。 在一次 recap 之后,它会等待至少再完成两轮对话才会生成下一次。

因此,短时间的会话,或者你一直盯着终端的会话,不会触发自动 recap。而你离开后的长时间会话则会触发。

如何关闭自动 recap

该设置在 Codex 0.153.0 中引入,其发布说明称:“设置 tui.auto_recap = false 以禁用自动回顾,同时保持手动 /recap 可用。”

在你的 Codex 配置文件中,在 [tui] 部分下,将 auto_recap 设置为 false。配置参考确认了保留的功能:“设置为 false 以禁用自动回顾;/recap 仍然可用。”

关闭后,Codex 将停止调度自动 recap,但当你需要时,/recap 依然有效。

/recap 对比 /compact

这两个命令都涉及摘要,这就是为什么它们容易混淆。它们对你的聊天起着相反的作用。

/recap 为你撰写摘要,并保持对话原样。Codex 继续使用相同的历史记录工作。

/compact 为 Codex 撰写摘要,并用其替换之前的对话轮次。这释放了上下文窗口的空间,之前的细节被摘要取代。当聊天接近限制时,Codex 也会自动进行压缩;我们的 GPT-6.1 Sol 在 Codex 中的 500k 上下文指南解释了这种情况何时发生。

当你回到一个长会话时的实际操作顺序:先阅读 recap 了解进度,然后决定聊天是否真的需要压缩。

如果你也使用 Claude Code

Claude Code 有一个同名且用途类似的功能,但如果你在两者之间切换,细节上的差异非常重要。

Anthropic 将 Claude Code 的版本描述为“对会话至今发生的事情的一行回顾”。它的等待时间比 Codex 短得多:recap “在最后一轮对话结束至少三分钟后且终端失去焦点时在后台生成”。与 Codex 一样,它首先需要一些历史记录,Anthropic 补充说 recap “绝不会连续出现两次”。

限制和开关也不同。“Claude Code 将自动回顾和 /recap 输出都限制在 400 个字符以内。”你在 /config 中关闭其自动 recap,而不是在配置文件中,并且可以通过环境变量强制开启或关闭。Anthropic 还在其成本指南中指出,“会话回顾和空闲压缩在你空闲时可能会消耗 token。”

因此,相同的命令名称在 Codex 中会在较长等待后给你一个较长的摘要,而在 Claude Code 中则会在几分钟后给你单行摘要。

recap 不能替代的内容

recap 是根据最近的消息按需生成的。它是一种阅读辅助工具,而不是记忆,也不是交接文档。

如果你要将工作转移到新聊天中,recap 的长度和窗口太小,无法承载所有内容。我们的交接提示词编写指南涵盖了新聊天需要的内容。如果你在本地和工作树之间或向另一台机器移动聊天,我们的 Codex 交接指南解释了随之移动的内容。

对于 Codex 在每个会话中都应该知道的事实,Codex 有自己的记忆和项目的 AGENTS.md。我们的 Codex 记忆 v2 指南涵盖了这些内容的存放位置。

如果聊天似乎消失了而不是需要摘要,我们的查找丢失的 Codex 聊天历史记录指南介绍了 Codex 保存聊天的地方。

人们首先尝试的操作

使用 /recap 来释放上下文。 它不会压缩。当你需要空间时,请使用 /compact。

期望得到整个会话的 recap。 它在固定预算内读取最多八次最近的交流,并排除工具输出。

将 recap 视为记录。 它在你回来时显示。将你想要保留的任何内容保存在你控制的地方。

关闭自动 recap 后以为丢失了 /recap。 禁用自动回顾会保留手动命令。

在云端对话中尝试 /recap。 Recap 在那里不可用。

解决方案:使用 recap 进行定位,并在别处保留记录

第 1 步:在做任何决定前先阅读 recap

当你回到一个长会话时,先阅读 recap。检查其中的注意事项是否符合你的记忆,例如未运行的测试或未安装的更改。如果没有出现 recap,请在 Codex 空闲时输入 /recap。如果 recap 提到了下一步行动,请将其视为待确认的建议,而不是 Codex 已经接受的指令。

第 2 步:写下不应该由 recap 告诉你的内容

有些事情永远不应该依赖于最近消息的摘要:为什么要选择某种方法、排除了什么、什么是禁区。在还记得的时候把这些写下来。

第 3 步:将持久的事实放在每个会话都能看到的地方

将项目规范移入 AGENTS.md,并将决策保留在你维护的笔记中。这样,无论上次的 recap 说了什么,新会话都会以这些内容开始。

在 MemoryLake 中设置

recap 是你返回时生成的最近消息的简短视图。工作背后的决策比这更持久,而且 recap 的小窗口会首先丢弃较旧的交流。

MemoryLake 是一个记忆层,用于将这些决策保存在你维护的一个地方,供你连接的助手(如 ChatGPT、Claude Code 和 Codex)使用。

你自己编写条目,用你自己的语言。你的 Codex 会话、它们的 recap、你的 AGENTS.md 文件、你的 Codex 记忆或任何供应商的存储都不会被读取、写入或删除。Recap 继续按照 OpenAI 描述的方式工作。

第 1 步:创建 API 密钥

登录并从控制面板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 ChatGPT 和 Codex 账户分开。

MemoryLake 控制台显示 API 密钥屏幕,在此处创建并复制新密钥以供代理使用
MemoryLake 控制台显示 API 密钥屏幕,在此处创建并复制新密钥以供代理使用

第 2 步:上传你的第一批记忆

从解决方案第 2 步的笔记开始:决策、排除的方法和边界。每个条目一个要点,注明日期。

MemoryLake 工作区显示已上传的首批文档,列出了每个文件变为可搜索记忆的过程
MemoryLake 工作区显示已上传的首批文档,列出了每个文件变为可搜索记忆的过程

第 3 步:连接你的 AI 和代理

连接 Codex 和你使用的任何其他助手。每当会话开始时,相同的条目都可用。

MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架
MemoryLake 集成屏幕列出了可以连接到记忆层的 AI 客户端和代理框架

这在实践中改变了什么

第一个区别是更快的返回速度。recap 告诉你现状,而且你知道它没有改变聊天内容。

第二个是减少对摘要的依赖。工作背后的原因已被记录下来,因此简短的 recap 不必承载它们。

第三个是更稳定的新会话。它们以你的决策开始,而不是最后几条消息的回顾。

Codex 中 recap 的最佳实践

使用 /recap 进行定位。 使用 /compact 释放空间。

为长会话保持自动 recap 开启。 如果它们分散你的注意力,请通过 tui.auto_recap 关闭它们。

记住窗口限制。 最多八次最近的交流,无工具输出。

检查注意事项。 recap 被要求标记未完成的工作,但请务必确认。

使用终端。 云端对话不提供 recap。

在做决定时随手记下。 recap 不是保留决策的地方。

结论

/recap 向 Codex 请求当前对话的简短摘要,该摘要由最近的可见交流构建并在聊天之外生成,因此聊天的上下文保持原样。当终端在对话轮次后失去焦点约 30 分钟,且有足够的对话量时,Codex 会自动生成一个回顾。你可以通过 tui.auto_recap = false 关闭此功能,同时保留手动命令。

使用 recap 来找准方向,在需要空间时使用 /compact。将工作背后的决策保存在每个会话都能读取的地方。

常见问题

Codex 中的 /recap 有什么作用?

OpenAI 表示它会生成当前对话的摘要,这样你就可以在不压缩上下文的情况下了解聊天进度。

/recap 会压缩我的聊天吗?

不会。OpenAI 将 /recap 作为一种在不压缩的情况下了解进度的方法,并建议在你想释放上下文空间时使用 /compact。

如何关闭 Codex 中的自动回顾?

在 Codex 配置的 tui 部分下将 auto_recap 设置为 false。发布说明称这将禁用自动回顾,同时保持手动 /recap 可用。

Codex 何时显示自动回顾?

当终端失去焦点时。Codex 的开源代码会在你切换离开且最后一轮对话结束后等待约 30 分钟,并且需要至少完成三轮对话。

Codex 的 recap 包含什么内容?

代码根据你看到的最多八次最近交流构建它,不含工具输出或推理过程,并要求包含目标、进展、阻碍因素和可选的下一步行动。

我可以在 Codex 云端对话中使用 /recap 吗?

不可以。Codex 会显示一条消息,说明云端对话不提供对话回顾。