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 产物之前,仍然应该先检查文件内容。
如果你在排查“记忆没生成”“记忆没生效”这类问题,优先看:
- 是否已在 Codex settings 或
config.toml里开启memories = true - 当前线程是否被
/memories限制为不使用或不生成记忆 - 线程是否使用了外部上下文,触发了
memories.disable_on_external_context - 当前 rate-limit 剩余百分比是否低于
memories.min_rate_limit_remaining_percent ~/.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。