OpenAI Codex Memories 用来把前面线程里的稳定偏好、常用工作流、技术栈和项目约定带到后续工作中,适合想减少重复上下文输入的场景。开启后可在 Codex 设置里启用,或在 ~/.codex/config.toml[features] 中设置 memories = true;默认关闭,且在欧洲经济区、英国和 Switzerland 发布时不可用。

OpenAI Codex Memories 配置与使用

OpenAI Codex Memories 可以把前面线程里有用的上下文保留下来,供后续工作复用。适合反复处理同一代码库、同一技术栈或同一团队规范时,减少重复说明。

重要限制:Memories 默认关闭,且在欧洲经济区、英国和 Switzerland 启动时不可用。

怎么开启 OpenAI Codex Memories

在 Codex app 里开启 Memories,或在配置文件中设置特性开关。

在 Codex app 中开启

在 Codex settings 里启用 Memories。

在配置文件中开启

config.toml[features] 表中加入:

[features]
memories = true

关于用户级配置存放位置,以及 Codex 如何加载 ~/.codex/config.toml,请参考 Config basics

Memories 会记住什么

开启后,Codex 可以把符合条件的历史线程整理成本地 memory 文件,记录稳定偏好、重复工作流、技术栈、项目约定和已知坑点。这样后续线程里就不必每次重复同样的背景信息。

但它不是规则系统的唯一来源。团队必须遵守的要求仍应写在 AGENTS.md 或已提交到仓库的文档里。Memories 更像本地回忆层,不适合替代强制规则。

如果你想让 Codex 从屏幕恢复最近的工作上下文,可以看 Chronicle

Memories 怎么工作

开启后,Codex 会把符合条件的历史线程转换成本地 memory 文件,但不是每个线程都会立刻生成,也不是每次结束都马上处理。

处理规则

  • Codex 会跳过活跃或生命周期很短的会话。
  • 生成的 memory 字段会做 secrets 脱敏。
  • 记忆更新在后台完成,不会在每个线程结束时立即执行。
  • 线程结束后,Codex 可能会等待线程足够空闲,再决定是否总结,避免把仍在进行中的工作过早归档。
  • 如果当前 Codex rate-limit 剩余百分比低于配置阈值,Codex 可能跳过后台生成,避免在接近限额时继续消耗 quota。

你可能看到的表现

线程结束后,memories 不一定马上更新。若刚结束就没看到新记忆,不一定是失败,可能只是后台还没轮到处理,或者因为 rate-limit 触发了跳过条件。

Memories 存到哪里

Codex 会把 memories 存在 Codex home directory 下,默认是 ~/.codex。关于 CODEX_HOME 的使用方式,请看 Config and state locations

主要 memory 文件位于:

~/.codex/memories/

其中包含:

  • summaries
  • durable entries
  • recent inputs
  • 来自历史线程的 supporting evidence

这些文件属于生成状态。排查问题时可以查看;如果你准备分享 Codex home directory,也应该先检查。但不要把手工编辑这些文件当成主要控制方式。

怎么按线程控制 Memories

在 Codex app 和 Codex TUI 里,可以用 /memories 控制当前线程的 memory 行为。

线程级控制可以决定两件事:

  • 当前线程能否使用已有 memories
  • 当前线程能否作为未来 memory 的生成输入

这类选择只影响当前线程,不会修改全局 memory 设置。

配置项

除了在 Codex app settings 里开启,也可以在 config.toml[features] 中设置 memories = true

完整的 memory 相关配置,请参考 configuration reference

常见配置项包括:

  • memories.generate_memories:控制新创建的线程能否作为 memory 生成输入被保存。
  • memories.use_memories:控制 Codex 是否把已有 memories 注入未来会话。
  • memories.disable_on_external_context:设为 true 时,使用过外部上下文的线程不会进入 memory 生成,例如 MCP tool calls、web search 或 tool search。旧键 memories.no_memories_if_mcp_or_web_search 仍然可作为别名使用。
  • memories.min_rate_limit_remaining_percent:控制在开始 memory 生成前,Codex rate-limit 剩余百分比至少要达到多少。
  • memories.extract_model:覆盖单线程 memory extraction 使用的模型。
  • memories.consolidation_model:覆盖全局 memory consolidation 使用的模型。

怎么检查和审阅 Memories

不要把 secrets 存进 memories。Codex 会对生成的 memory 字段做脱敏,但在分享 Codex home directory 或生成的 memory 产物之前,仍然应该先检查文件内容。

如果你在排查“记忆没生成”“记忆没生效”这类问题,优先看:

  1. 是否已在 Codex settings 或 config.toml 里开启 memories = true
  2. 当前线程是否被 /memories 限制为不使用或不生成记忆
  3. 线程是否使用了外部上下文,触发了 memories.disable_on_external_context
  4. 当前 rate-limit 剩余百分比是否低于 memories.min_rate_limit_remaining_percent
  5. ~/.codex/memories/ 下是否已经出现对应的生成文件

常见问题

OpenAI Codex Memories 怎么开启

可以在 Codex app 的 settings 里直接启用 Memories,也可以在 ~/.codex/config.toml[features] 中设置 memories = true。默认是关闭的。

为什么线程结束后没有马上生成记忆

Memories 是后台更新的,不会在每个线程结束时立即处理。Codex 还会等待线程空闲一段时间,并且在 rate-limit 剩余百分比较低时跳过生成。

memories.no_memories_if_mcp_or_web_search 还能用吗

还能用,它是 memories.disable_on_external_context 的旧别名。新配置建议直接使用 memories.disable_on_external_context