从分层记忆模型、持久化策略、自动整理机制、跨会话传递等维度,对两大 AI Agent 记忆体系进行架构级深度剖析。
一句话总结
Claude Code 让机器主动替你记忆,Codex 让你亲手为机器立约—— 要经验自动沉淀与生态扩展,选 Claude Code;要行为确定与审计可控,选 Codex;
1. 引言:为什么记忆体系是 Agent 架构的核心
AI Agent 的核心竞争力不在于单次推理能力,而在于跨会话的知识持久化与上下文连贯性。记忆体系决定了 Agent 能否从"一次性工具"进化为"持续协作伙伴"。

1.1 记忆问题的本质
在 LLM 语境下,记忆问题本质上是有界上下文中的信息筛选与持久化问题:
- 上下文窗口有限:每次会话的 token 上限构成信息瓶颈
- 跨会话信息断裂:会话结束后,所有推理中间态丢失
- 信息冗余与噪声:大量代码上下文可通过实时读取获得,无需存入记忆
1.2 两套系统的根本分歧
Claude Code 与 Codex 在记忆设计上代表了两种截然不同的哲学:
| 维度 | Claude Code | Codex |
| 记忆模式 | 自动+手动混合 | 纯手动声明式 |
| 架构层次 | 四层分层架构 | 两层扁平架构 |
| 跨会话策略 | 自动记忆+离线整理 | 无自动跨会话记忆 |
| 设计哲学 | "记忆是代码的补集" | "记忆是行为的契约" |
2. Claude Code 记忆架构详解
在深入各层细节之前,先用一张全景图俯瞰 Claude Code 记忆体系的整体形态:它由**手动契约(L1)+ 自动记忆(L2)+ 会话缓存(L3)+ 离线整理(L4)**共同构成,四者围绕"记忆存储"这一核心资产形成一个持续自优化的闭环。

四层围绕"记忆存储"形成闭环:L1/L2 写入 → 注入 L3 上下文 → L4 离线整理回写 → 下次会话再注入
2.1 四层分层架构总览
Claude Code 的记忆体系采用经典的分层记忆模型,从瞬时到持久,形成完整的记忆梯度:

持久性从 L1→L4 递增,访问延迟从 L1→L4 递增
2.2 L1 — CLAUDE.md 指令规则层
CLAUDE.md 是 Claude Code 的行为契约层,采用多级作用域设计:

2.3 L2 — Auto Memory 自动记忆层
Auto Memory 是 Claude Code 的自动学习层,负责在交互过程中自动捕获、分类并持久化有价值的信息。与 L1 的手动声明式规则不同,Auto Memory 无需用户显式写入——系统根据交互语义自动判定是否值得记忆。
2.3.1 四种记忆类型
| 类型 | 用途 | 触发时机 | 示例 |
| user | 用户角色、偏好、知识背景 | 识别到用户身份或偏好信息 | "用户是高级Go工程师,首次接触React" |
| feedback | 交互中的行为纠正与确认 | 用户纠正Agent行为或确认非显而易见的做法 | "集成测试必须连接真实数据库,不要mock" |
| project | 项目上下文、目标、约束 | 发现项目特有信息(非代码可推导的) | "auth中间件重写因合规要求,非技术债" |
| reference | 外部系统资源指针 | 用户提及外部系统或信息源 | "pipeline缺陷在Linear项目INGEST中追踪" |
2.3.2 存储结构
所有自动记忆以 Markdown 文件形式存储在.claude/memory/目录下,每个记忆独立成文件,使用 YAML frontmatter 标注元数据。MEMORY.md作为索引文件,在每次会话启动时自动加载到上下文中。

每种记忆独立存储为 .md 文件,MEMORY.md 作为索引自动加载到上下文窗口
2.3.3 记忆判定与防冗余
Auto Memory 的核心设计原则是**"记忆是代码的补集"**——仅存储无法从当前代码库直接推导的信息:
- 不存储:代码模式、文件路径、架构约定(可从代码推导)
- 不存储:Git 历史、调试方案(可从 Git 推导)
- 不存储:敏感凭证、API Key(安全红线)
- 存储:用户偏好、行为纠正、项目决策背景、外部资源指针
2.4 L3 — Session Memory 会话记忆层
Session Memory 是 Claude Code 的瞬时记忆层,其生命周期严格绑定于单次会话——随会话创建,随会话消亡。
2.4.1 核心特性
- 瞬时性:会话结束后,所有对话历史、推理中间态、临时上下文全部丢失
- 有界性:受限于上下文窗口的 token 上限,存在信息淘汰压力
- 注入性:会话启动时,L1(CLAUDE.md)和 L2(Auto Memory)的内容被注入到上下文窗口中,作为"种子记忆"
2.4.2 与 L1/L2 的关系
| 维度 | L1 CLAUDE.md | L2 Auto Memory | L3 Session Memory |
| 生命周期 | 跨会话持久 | 跨会话持久 | 随会话消亡 |
| 写入方式 | 手动编辑 | 自动+手动 | 自动(对话产生) |
| 作用 | 行为契约 | 学习积累 | 即时推理上下文 |
| 容量 | 无硬限制 | MEMORY.md ≤200行 | 受token窗口限制 |
Session Memory 是瞬时层,而 CLAUDE.md 和 Auto Memory 是跨会话持久层。三者的关系是:持久层为瞬时层提供初始上下文种子,瞬时层中的有价值信息可能被提升到持久层(通过 Auto Memory 写入)。

Session Memory 随会话消亡;L1/L2 作为持久层跨会话存活,为下次会话提供上下文种子
2.5 L4 — AutoDream (KAIROS) 离线整理层
AutoDream 是 Claude Code 记忆体系的离线自优化层,代号 KAIROS(古希腊语"关键时机")。它解决的核心问题是长期记忆膨胀——随着 Auto Memory 不断积累,记忆文件数量和 MEMORY.md 索引体积持续增长,最终导致上下文窗口被过多记忆信息挤占,降低推理效率。
2.5.1 四阶段整理流程
| 阶段 | 名称 | 核心操作 | 输入 | 输出 |
| 1 | 定向 Cueing | 识别当前任务相关的记忆子集 | 当前上下文 | 相关记忆候选集 |
| 2 | 信号收集 Signal Collection | 提取记忆中的衰减信号与冲突信号 | 候选记忆 | 衰减/冲突标记 |
| 3 | 巩固 Consolidation | 合并相似记忆、提升高价值记忆 | 标记后记忆 | 精简记忆集 |
| 4 | 修剪索引 Pruning & Indexing | 删除过时记忆、重建 MEMORY.md 索引 | 精简记忆集 | 更新后的记忆存储 |

AutoDream 在会话间隙离线执行,保持记忆集精简、相关、无冲突
2.5.2 离线整理的意义
AutoDream 的存在使得 Claude Code 的记忆体系形成闭环自优化:
- 无 AutoDream:记忆只增不减,MEMORY.md 膨胀至超过 200 行上限,旧记忆与新记忆冲突,上下文窗口浪费在过时信息上
- 有 AutoDream:记忆定期"消化",保持精简高效,高价值记忆被巩固,过时记忆被修剪,索引保持最新
2.6 记忆写入时序
记忆写入并非单一动作,而是一个从用户输入到持久化的多步判定链。理解这个时序对于把握 Claude Code 记忆体系的动态行为至关重要。
2.6.1 写入判定链
用户输入 → LLM 推理 → 语义分析 → 记忆类型判定 → 冗余检查 → 写入目标层
- 语义分析:提取输入中的身份信息、偏好、纠正、项目上下文、外部引用
- 类型判定:将提取的信息映射到 user / feedback / project / reference 四种类型
- 冗余检查:与现有记忆对比,跳过可从代码推导或已存在的信息
- 写入目标层:根据类型和持久性需求,写入 L2(Auto Memory)或仅保留在 L3(Session Memory)
2.6.2 各层写入条件与优先级
| 目标层 | 写入条件 | 优先级 | 触发方式 |
| L1 CLAUDE.md | 用户显式请求(/memory命令) | 最高 | 手动 |
| L2 Auto Memory | 语义判定为"值得跨会话保留"且非冗余 | 高 | 自动 |
| L3 Session Memory | 所有交互信息默认进入 | 中 | 自动 |
| L4 AutoDream | 记忆膨胀触发阈值 | 低(离线) | 自动(离线) |

典型时序:L1/L2 注入 → 用户输入 → Session 记录 → 推理判定 → 自动写入 L2 → 离线整理
3. Codex 记忆架构详解
如果说 Claude Code 的记忆体系是一套"会自我进化的有机体",那么 Codex 的记忆体系则是一份"清晰而克制的工程契约"。二者在设计哲学上的根本分野,从 Codex 的架构层数即可窥见——它只有两层,且全部由人手动声明、系统绝不越俎代庖。
3.1 两层扁平架构总览
先以一张全景图俯瞰 Codex 记忆体系的整体形态:它只有AGENTS.md 静态声明层(L1)与会话上下文层(L2)两层,AGENTS.md 仅在会话启动时单向注入上下文,会话内产生的任何增量信息都没有回流存储的路径——信息流在会话边界处断裂,与 Claude Code 的闭环形成鲜明对照。
Codex 记忆体系全景架构图

开链:开发者手写 AGENTS.md → 启动时单向注入会话上下文;会话增量无回写路径,边界处断裂
Codex 的记忆体系采用**纯手动声明式(Manual Declarative)**设计,没有自动记忆捕获、没有跨会话学习、没有离线整理机制。整个体系仅由两层构成:
- L1 — AGENTS.md 静态声明层:由开发者手动编写的行为契约文件,定义 Agent 在本项目中应遵守的一切规则。它是唯一的持久层,跨会话稳定存在,但永不被系统自动修改——只有人能改动它。
- L2 — 会话上下文层:单次会话内的对话历史与实时读取的代码上下文,随会话创建、随会话消亡。会话启动时,L1 的内容被完整注入到 L2 的上下文窗口中,作为行为基线。
这种设计的核心取舍在于:用"可预测性"换取"自适应性"。Codex 不会因为一次交互而悄悄改变自己的行为基线,所有行为变更都必须经过开发者显式修改 AGENTS.md。这对于强调审计合规、行为确定性的工程团队极具吸引力,但也意味着 Agent 无法从历史交互中自动积累经验。

Codex 记忆仅两层:手动声明的 AGENTS.md 持久层 + 随会话消亡的上下文层,无自动记忆环节
3.2 AGENTS.md 四段式结构
AGENTS.md 是 Codex 记忆体系的唯一持久载体,本质是一份人机之间的行为契约。虽然格式自由,但工程实践中已收敛出一套典型的四段式结构,覆盖 Agent 高效工作所需的核心信息:
| 段落 | 名称 | 作用 | 典型示例 |
| 1 | 项目概览 Overview | 让 Agent 快速建立项目心智模型 | "本项目是基于 Next.js 的 SaaS 后台,采用 monorepo,核心模块在 packages/core" |
| 2 | 代码规范 Conventions | 约束代码风格与工程习惯 | "使用 TypeScript strict 模式;组件用函数式;禁止 default export" |
| 3 | 构建测试命令 Commands | 提供可执行的构建/测试/lint 指令 | "构建:pnpm build;测试:pnpm test;lint:pnpm lint --fix" |
| 4 | 约束禁忌 Constraints | 划定不可逾越的行为红线 | "禁止修改 migrations/ 目录;禁止提交 .env;改动 API 需同步更新 openapi.yaml" |
四段式的内在逻辑是一条从"是什么"到"怎么做"再到"不能做什么"的递进链:Overview 建立认知,Conventions 与 Commands 提供正向行动指引,Constraints 划定负向边界。四者共同构成一份完整、自洽、可执行的行为契约。

四段式递进:认知(Overview) → 正向指引(Conventions/Commands) → 负向边界(Constraints)
3.3 Agent Loop 执行流程
Codex 的每次会话都遵循一个经典的**感知-规划-执行-观察(Perceive-Plan-Act-Observe)**循环。与传统 ReAct 范式一脉相承,但 Codex 的独特之处在于:AGENTS.md 的内容在循环启动前被一次性注入到上下文中心,成为贯穿整个循环、约束每一步决策的"行为基线"。
一次完整的循环包含四个阶段:
- 感知 Perceive:读取当前任务、文件状态、上一轮的执行反馈,构建对环境的即时认知。
- 规划 Plan:结合 AGENTS.md 中的规范与约束,制定下一步行动计划(读文件、改代码、跑测试等)。
- 执行 Act:调用工具执行计划——编辑文件、运行命令、检索代码。
- 观察 Observe:收集执行结果(命令输出、测试结果、错误信息),判断任务是否完成。若未完成,携带观察结果回到"感知"阶段,进入下一轮迭代。
关键点在于,AGENTS.md 并不参与循环的动态更新——它在整个会话中保持只读,每一轮的"规划"都以它为不可变的参照系。这保证了 Agent 行为在长任务中的一致性:无论迭代多少轮,代码规范和约束禁忌始终生效,不会因上下文漂移而被遗忘(除非被上下文压缩挤出,见 3.4)。

3.4 上下文压缩流程
由于 L2 会话上下文层受限于 token 窗口上限,在长任务中不可避免会遇到上下文溢出问题。Codex 没有 Claude Code 那样的离线记忆整理机制,取而代之的是一种**在线摘要压缩(Summarization)**策略:当上下文接近 token 上限时,系统触发压缩器,将早期的对话历史与冗余信息压缩为一段精炼摘要,从而腾出窗口空间容纳后续交互。
压缩的核心原则是**"保留决策关键信息,丢弃可重建的冗余"**:
| 维度 | 压缩前(满上下文) | 压缩后(摘要态) |
| 早期对话历史 | 逐字保留完整多轮问答 | 归纳为"已完成 X、决定采用 Y 方案"的摘要 |
| 文件读取内容 | 完整文件内容驻留窗口 | 丢弃原文,保留"文件 A 的关键结论/接口签名" |
| 工具执行日志 | 完整命令输出与堆栈 | 保留成败结论与关键错误,丢弃冗长日志 |
| 待办与目标 | 分散在多轮对话中 | 提炼为明确的目标清单 |
| Token 占用 | 逼近窗口上限(如 95%+) | 大幅回落(如降至 40%~50%) |
需要警惕的是,摘要压缩本质是有损压缩——被丢弃的细节无法恢复。若 AGENTS.md 中的关键约束在早期被注入、随后又在压缩中被"归纳掉",Agent 可能在长任务后期出现行为漂移。这也是 Codex 建议将最关键的约束写得简短且醒目、便于在压缩后仍被保留的原因。

上下文逼近上限时触发有损摘要压缩,腾出窗口空间;被丢弃的细节不可恢复
3.5 架构缺失警告
Codex 的两层扁平架构以"可预测性"为最高准则,但这份克制也带来了明显的能力缺口。从架构师视角审视,Codex 记忆体系存在三大关键缺失,理解它们对于合理评估 Codex 的适用边界至关重要:
⚠️ Codex 记忆架构三大缺失
- 缺失一:无自动记忆持久化 除人工编写的 AGENTS.md 外,Codex 不会自动捕获、分类或持久化任何交互中产生的有价值信息。用户的偏好、纠正、项目决策背景等,若不手动写入 AGENTS.md,会话结束即永久丢失。
- 缺失二:无跨会话学习 每次新会话都是"从零开始"——Agent 无法从历史会话的成功经验或失败教训中自动改进行为。相同的错误可能在不同会话中反复出现,除非开发者手动将教训沉淀进 AGENTS.md。
- 缺失三:无离线记忆整理机制 没有类似 AutoDream(KAIROS) 的离线巩固、去冗、修剪流程。AGENTS.md 的维护完全依赖人工——文件膨胀、规则冲突、内容过时等问题都需要开发者手动清理,缺乏自我优化闭环。
本质取舍:Codex 用"行为确定性 + 审计友好"换取了"自适应性 + 经验积累能力"。适合强调合规与可控的团队,但记忆维护成本完全转嫁给开发者。
以上三大缺失并非设计缺陷,而是一种有意识的哲学选择:Codex 认为"记忆是行为的契约",契约应当由人显式订立、显式修改,系统绝不擅自变更。这与 Claude Code"记忆是代码的补集、系统应主动学习"的理念形成鲜明对照——二者的深层分歧,将在第 4、5 章展开多维对比与哲学剖析。
4. 多维对比分析
前三章分别剖析了两套系统的��忆架构。本章从架构师视角出发,跳出单一系统的内部结构,将 Claude Code 与 Codex 置于同一坐标系下进行横向多维对比——从综合能力、组件构成、持久化策略、上下文压缩、跨会话传递到生态扩展,逐一展开量化与定性分析。
4.1 综合能力雷达对比
要在整体上把握两套记忆体系的能力差异,最直观的方式是选取若干正交维度进行雷达对比。我们从以下六个维度评估(评分 1~5,分值越高能力越强):
- 持久化能力:跨会话保留信息的丰富度与自动化程度。Claude Code 拥有 Auto Memory 自动持久化,Codex 仅有手动 AGENTS.md。
- 自动化程度:无需人工干预即可完成记忆捕获、分类、整理的能力。Claude Code 具备自动记忆+离线整理,Codex 完全依赖手动。
- 可控性:行为的可预测性与审计友好度。Codex 因纯手动声明而高度可控,Claude Code 的自动写入引入了一定不确定性。
- 跨会话记忆:从历史会话自动积累经验的能力。Claude Code 有 Auto Memory 跨会话传递,Codex 每次会话从零开始。
- 上下文管理:对有限上下文窗口的优化与压缩能力。二者均有机制,Codex 的在线摘要压缩与 Claude Code 的分层注入各有侧重。
- 配置简洁性:上手成本与配置心智负担。Codex 两层扁平结构极简,Claude Code 四层架构相对复杂。
综合来看,Claude Code 在自动化、持久化、跨会话记忆三个维度显著领先,而 Codex 则在可控性与配置简洁性上占优。这正是两种设计哲学在能力画像上的直接投射。

4.2 系统组件包结构(UML 包图)
从软件工程的视角,两套记忆体系可以被建模为不同数量与层级的组件包(Package)。包的数量与耦合关系,直观反映了系统的复杂度与能力边界。
- Claude Code 组件包:内含四个子包,构成完整的记忆能力矩阵。
CLAUDE.md子包负责静态行为契约;Auto Memory子包负责自动记忆的捕获与分类存储;Session Memory子包管理瞬时会话上下文;AutoDream子包提供离线巩固与修剪。四个子包之间存在明确的依赖与数据流转关系,形成自优化闭环。 - Codex 组件包:仅含两个子包。
AGENTS.md子包是唯一的手动声明持久层;Session Context子包管理单次会话的对话历史与实时代码上下文。两个子包关系简单——启动时AGENTS.md内容注入Session Context,无反向写回、无第三方巩固组件。
组件数量的差异(4 vs 2)不仅是复杂度的体现,更是能力覆盖面的直接映射:Claude Code 的每个额外子包都对应一项 Codex 所不具备的能力(自动记忆、离线整理)。

Claude Code 含 4 个协作子包形成闭环;Codex 仅 2 个子包,AGENTS.md 单向注入 Session Context
4.3 持久化策略对比
持久化是记忆体系的立身之本——决定了哪些信息能够跨越会话边界存活下来。两套系统在持久化的存储介质、触发方式、保留粒度、自动化程度、数据结构五个维度上呈现出根本性差异:
| 维度 | Claude Code | Codex |
| 存储介质 | .claude/memory/目录下的多个 Markdown 文件 +MEMORY.md索引;CLAUDE.md 多级作用域文件 | 单一AGENTS.md文件(可多级放置于目录树) |
| 持久化触发 | 自动(语义判定值得保留时)+ 手动(/memory命令写入 CLAUDE.md) | 纯手动(开发者显式编辑 AGENTS.md) |
| 跨会话保留 | Auto Memory 与 CLAUDE.md 均跨会话稳定保留,且内容持续自动增长 | 仅 AGENTS.md 跨会话保留,内容不会自动变化 |
| 自动化 | 高——系统主动捕获、分类、去冗、离线整理,形成闭环 | 无——所有持久化动作依赖人工,系统只读不写 |
| 数据结构 | 结构化:YAML frontmatter + 分类型(user/feedback/project/reference)+ 索引 | 半结构化:自由 Markdown,惯例四段式(Overview/Conventions/Commands/Constraints) |
核心差异可以一句话概括:Claude Code 的持久化是"系统主动、结构化、自增长"的,而 Codex 的持久化是"人工被动、自由格式、静态"的。前者以自动化换取了信息丰富度,代价是引入了可控性上的不确定;后者以人工维护换取了完全的可预测性,代价是记忆维护成本与经验流失。
4.4 上下文压缩机制对比
无论架构如何设计,二者都必须直面同一个物理约束——有限的上下文窗口。当长任务的对话历史与代码上下文逼近 token 上限时,系统必须以某种方式"腾出空间"。两套系统在压缩时机、压缩策略、信息保留、是否可恢复四个维度上的处理方式截然不同:
| 维度 | Claude Code | Codex |
| 压缩时机 | 双通道:会话内窗口临近上限时压缩 + 会话间隙由 AutoDream 离线整理 | 单通道:仅在会话内上下文逼近 token 上限时触发在线摘要 |
| 压缩策略 | 分层卸载——瞬时信息压缩,高价值信息提升至 Auto Memory 持久层,离线巩固去冗 | 在线摘要(Summarization)——将早期历史归纳为精炼摘要,就地替换 |
| 信息保留 | 关键信息可"上浮"到持久层永久保留;离线整理保证记忆集精简且不丢高价值项 | 仅保留摘要中被判定为关键的决策/接口/目标,其余细节就地丢弃 |
| 是否可恢复 | 部分可恢复——被提升到 Auto Memory 的信息可在后续会话重新加载 | 不可恢复——有损压缩,被归纳掉的细节永久丢失,无持久层兜底 |
这一对比揭示了两套系统在应对上下文瓶颈时的深层策略差异:Claude Code 将压缩视为"信息的重新分层"——把值得保留的信息向持久层上浮,从而实现跨会话的信息不灭;而 Codex 将压缩视为"就地的有损瘦身"——在单会话内完成摘要替换,一旦压缩便无回退可能。因此在超长任务中,Codex 更容易出现因关键约束被"归纳掉"而导致的行为漂移,这也解释了为何 Codex 官方建议将最关键约束写得简短醒目,以提高其在压缩后被保留的概率。
4.5 跨会话信息传递流程(UML 活动图)
跨会话信息传递,是区分"一次性工具"与"持续协作伙伴"的分水岭。这一维度上,两套系统的行为差异最为剧烈——一个实现了信息的自动接力,另一个则在会话边界处发生了信息断裂。
- Claude Code 的跨会话接力:会话 1 结束时,AutoDream 会对本次会话产生的有价值信息进行离线整理(巩固、去冗、修剪),并将结果写入 Auto Memory 持久层。当会话 2 启动时,系统自动加载
MEMORY.md索引及相关记忆,将其注入新会话的上下文窗口。如此,会话 1 的经验便"无缝接力"到了会话 2——用户无需重复交代任何背景。 - Codex 的会话边界断裂:会话 1 结束时,除非开发者手动更新 AGENTS.md,否则本次会话的所有增量信息(偏好、纠正、决策)随会话上下文一同丢失。会话 2 启动时,Agent 只能重新读取静态的 AGENTS.md——它不知道会话 1 发生过什么,一切从 AGENTS.md 定义的基线重新开始。
下图以 UML 活动图并排展示两条泳道的差异:左侧 Claude Code 存在一条贯穿会话边界的信息流(含 AutoDream 整理节点与自动注入节点),右侧 Codex 则在会话边界处出现明确的"信息丢失"终止节点。

左:Claude Code 经 AutoDream 自动接力经验;右:Codex 除非人工回写,否则会话边界处信息丢失
4.6 MCP(Model Context Protocol)支持对比
记忆体系的边界不止于系统内部——通过MCP(Model Context Protocol)等标准化协议接入外部记忆源与工具生态,是现代 Agent 扩展记忆能力的关键路径。MCP 允许 Agent 以统一协议连接外部数据库、知识库、检索服务等,从而将"记忆"从本地文件延展到整个外部世界。两套系统在生态开放度上的差异,进一步放大了它们的能力分野:
| 维度 | Claude Code | Codex |
| MCP 支持 | 原生深度支持——可连接任意 MCP Server,动态发现并调用外部工具 | 支持程度有限——生态以内置工具为主,外部协议接入不作为核心能力 |
| 外部记忆扩展 | 可通过 MCP 接入外部知识库/向量库/数据库,将持久记忆延展至系统之外 | 主要依赖本地 AGENTS.md 与实时代码读取,缺乏标准化外部记忆接入 |
| 工具生态 | 开放生态——第三方可发布 MCP Server,工具能力持续扩张 | 相对封闭——工具集以官方内置为主,扩展路径受限 |
| 可扩展性 | 高——协议标准化使记忆与工具能力可插拔、可组合 | 中——扩展依赖官方迭代,缺乏用户侧的可插拔机制 |
MCP 维度的对比,将前几节揭示的分歧推向了更宏观的层面:Claude Code 不仅在系统内部构建了自动化、分层的记忆闭环,更通过 MCP 将记忆能力向外部生态开放,形成"内生记忆 + 外接记忆"的双引擎;而 Codex 则将能力边界收敛在本地契约与内置工具之内,以封闭换取确定性。至此,第 4 章从六个维度完成了横向对比——下一章将进一步上升到设计哲学层面,剖析这些能力差异背后的根本性理念分歧。因此在超长任务中,Codex 更容易出现因关键约束被"归纳掉"而导致的行为漂移,这也解释了为何 Codex 官方建议将最关键约束�得简短醒目,以提高其在压缩后被保留的概率。
5. 架构师视角的设计哲学对比
前四章从架构结构与能力维度层层递进,揭示了 Claude Code 与 Codex 在记忆体系上的诸多差异。但所有这些差异,归根结底都源自两套系统对同一个根本问题——"记忆之于 Agent 究竟意味着什么"——给出的截然不同的答案。本章将从架构师的视角出发,剥离具体实现,直抵二者的设计哲学内核,并通过类图、象限图、数据流图三种结构化视图,为这场哲学之争提供可视化的注脚。
5.1 两种设计哲学对比
如果用一句话概括,Claude Code 信奉的是**"记忆是代码的补集",而 Codex 坚持的是"记忆是行为的契约"**。前者认为,凡是能从代码库实时读取、推导的信息都不该占用记忆,记忆应当自动捕获那些代码之外的、易逝的、非结构化的知识——于是系统必须"自动化优先",主动学习、主动整理。后者则认为,记忆的本质是人与 Agent 之间一份显式订立的契约,契约的每一条都应由人书写、由人修改,系统绝不擅自增删——于是系统必须"可控性优先",一切以可预测、可审计为最高准则。
这两种哲学没有绝对的对错,而是两种价值排序的不同投射:一边把"少让人操心、自动积累经验"排在首位,一边把"行为确定、便于审计"排在首位。理解了这层价值排序,就能理解前几章所有能力差异的由来。

左右两种哲学是价值排序的不同投射:自动积累经验 vs 行为确定可审计
5.2 架构风格对比
将两套哲学落到具体的软件结构上,其类关系图呈现出鲜明的繁简��照。Claude Code 以一个MemoryManager为核心协调者,聚合CLAUDEmd(静态规则)、AutoMemory(自动记忆)、SessionMemory(会话上下文)三个记忆载体,并额外关联AutoDream离线整理器——四类记忆载体分工明确、各司其职,AutoDream反向作用于AutoMemory形成闭环。而 Codex 的类结构极度扁平:SessionContext依赖唯一的AgentsMd契约类,启动时注入、全程只读,无协调者、无整理器、无自动写回路径。
类图中每个类框遵循 UML 三分区约定——顶部类名、中部属性、底部方法——直观暴露了两套系统在职责划分上的密度差异。

左:MemoryManager 聚合四类记忆载体、AutoDream 回写形成闭环;右:SessionContext 仅只读依赖 AgentsMd
5.3 可控性 vs 自动化权衡
Claude Code 与 Codex 的核心分歧,可以在"自动化程度—可控性"这张二维坐标图上得到最凝练的表达。横轴代表自动化程度(系统主动完成记忆捕获、整理、跨会话传递的能力),纵轴代表可控性(行为的可预测性与审计友好度)。两个维度往往此消彼长:自动化越强,系统的"自主决策"越多,人的可控性相对越弱;反之亦然。
将两套系统及若干参考 Agent 投影到四象限中,可以清晰看到它们各自的定位取舍:Codex 位于"高可控、低自动化"象限——它把确定性做到极致,代价是几乎不自动积累任何经验;Claude Code 位于"高自动化"一侧、可控性居中偏上——它在保持相当自动化的同时,通过分类型记忆、防冗余规则、离线整理等机制努力守住可控性底线。作为参照,一个"纯 Prompt Agent"落在双低象限(既不自动也不可控),而理想中的"契约型自动 Agent"则是尚待抵达的双高象限。

Codex 居高可控·低自动化象限,Claude Code 偏高自动化·可控性中上;双高象限为行业愿景
5.4 信息流对比
最后,用一张数据流图(DFD)把两套系统的信息流动路径并置,能最直观地看出"信息能否跨越会话边界"这一根本差异。图中沿用 DFD 约定:圆形表示处理过程、箭头表示数据流向、平行线表示数据存储。
在 Claude Code 一侧,用户输入经"记忆判定"处理过程后,一路进入瞬时的会话上下文供 LLM 推理,另一路被判定为高价值信息写入"记忆存储"(数据存储);会话结束后"离线整理"过程读取并回写记忆存储,下次会话启动时记忆存储又反向注入上下文——数据流在存储与上下文之间形成闭合回路。而在 Codex 一侧,用户输入只流向会话上下文供 LLM 推理,AGENTS.md 存储仅在启动时单向注入上下文,会话产生的增量信息没有任何流回存储的路径——信息流是一条在会话边界处断裂的开链。

DFD 约定:圆=处理过程,箭头=数据流,平行线=数据存储;左侧信息在存储与上下文间闭环,右侧在会话边界处断裂
综观本章四节:从哲学层的价值排序(5.1),到类结构的繁简(5.2),再到可控性—自动化的坐标定位(5.3)与信息流的闭环/断链(5.4),四个视角环环相扣,共同印证了一个结论——Claude Code 与 Codex 的一切差异,都可追溯到"记忆是代码的补集 / 自动化优先"与"记忆是行为的契约 / 可控性优先"这一根本哲学分野。理解了这一点,便能在具体选型时超越功能清单的比对,回到"你的团队究竟更需要自动积累的经验,还是确定可控的行为"这一本质问题上做出判断。
6. 演进趋势与行业启示
前五章从架构、能力到哲学,完成了对 Claude Code 与 Codex 两套记忆体系的解剖。但技术从不静止——今天的分野,只是 Agent 记忆能力演进长河中的一个横截面。本章跳出"二选一"的对比框架,向前展望:Agent 记忆体系将走向何方?两套系统各自代表的路线,又能为整个行业的架构设计沉淀出哪些可复用的启示?最后,我们给出一份务实的场景选型建议,帮助读者在真实项目中落地决策。
6.1 混合架构演进趋势
回望 Agent 记忆能力的发展脉络,会发现它正沿着一条清晰的阶梯向上攀升:从最初完全没有记忆的纯 Prompt Agent,到用一份静态文件订立行为基线的声明式契约(AGENTS.md / CLAUDE.md),再到系统主动捕获经验的自动记忆层,进而叠加离线整理巩固以对抗长期膨胀,最终走向三者融合的混合智能记忆架构。
在这条阶梯上,Codex 当前稳居"声明式契约"阶段——它把可控性做到极致,但主动止步于自动记忆之前;Claude Code 则已跨越"自动记忆层"并叠加了 AutoDream 离线整理,站在通往混合架构的最前沿。值得强调的是:纯手动(Codex)与纯自动(早期自动记忆)都只是过渡形态。前者把记忆维护的全部成本转嫁给人,后者则容易陷入记忆膨胀与噪声失控。未来的答案,几乎必然是三者的有机融合——"声明式契约 + 自动记忆 + 离线整理"的混合架构:以人书写的契约锚定不可动摇的硬约束,以自动记忆积累易逝的经验知识,以离线整理持续巩固去冗、防止膨胀。契约保证下限,自动记忆拉高上限,离线整理守住长期可持续性,三者各司其职、互为补充。

Codex 停留在阶段②声明式契约,Claude Code 已抵达阶段③④之间;混合智能记忆架构(⑤)是共同的行业愿景
6.2 架构启示清单
抛开 Claude Code 与 Codex 孰优孰劣的表层争论,两套系统的设计取舍,为所有正在构建 Agent 记忆能力的架构师沉淀了若干可迁移的原则。以下五条启示,是本文对比分析的凝练结论——它们不依赖于任何具体产品,而是指向记忆体系设计的底层规律:
- 记忆应是代码的补集,而非副本。凡是能从代码库实时读取、推导的信息(文件结构、函数签名、git 历史),都不应占用宝贵的记忆容量。记忆的真正价值在于承载那些代码之外、易逝、非结构化的知识——用户偏好、决策背景、失败教训。Claude Code 的这一理念,划清了"该记什么"的边界。
- 需要遗忘机制以防记忆膨胀。只增不减的记忆终将退化为噪声仓库。一个健康的记忆体系必须内建去冗、修剪、失效能力(如 AutoDream 的离线整理),主动淘汰过时、冲突、低价值的条目。记忆的可持续性,取决于遗忘做得好不好。
- 声明式契约与自动记忆互补,而非互斥。人书写的契约(AGENTS.md)擅长锚定不可动摇的硬约束,自动记忆擅长积累易逝的软经验。二者不是"二选一",而应组合使用——契约保下限,自动记忆拉上限。将两者对立起来,是对记忆问题的误读。
- 跨会话持久化是 Agent 的核心竞争力。能否把一次会话的经验无缝接力到下一次,决定了 Agent 是"一次性工具"还是"持续协作伙伴"。会话边界处的信息断裂(Codex 的现状),意味着每次都从零开始——这是记忆体系最致命的能力缺口。
- 离线整理是长期膨胀问题的系统解。单纯依赖在线压缩只能治标(有损、就地丢弃),唯有引入会话间隙的离线巩固流程,才能在不干扰实时任务的前提下,系统性地完成记忆的重组、去冗与提炼——这是记忆体系走向长期可持续的关键闭环。
Agent 记忆架构五条启示清单图

五条启示不依赖具体产品,指向记忆体系设计的底层规律:补集定位、遗忘机制、契约互补、跨会话持久化、离线整理
6.3 场景推荐矩阵
原则终究要落到具体项目里。两套系统没有绝对的优劣,只有与场景的匹配度差异。下面按五类典型使用场景,给出选型建议:
- 个人快速原型:需求多变、迭代快,经验能自动积累、少写配置最省心。Claude Code 的自动记忆在此优势明显——强烈推荐;Codex 需手动维护 AGENTS.md,略显繁琐,一般。
- 团队协作:多人共享一致的行为基线,可审计、可版本化的显式契约至关重要。Codex 的 AGENTS.md 天然契合 Code Review 与合规流程——强烈推荐;Claude Code 自动写入引入不确定性,需额外规约,推荐。
- 长期大型项目:跨越数月、上下文海量,跨会话经验积累与离线整理防膨胀是刚需。Claude Code 的四层架构 + AutoDream 正为此而生——强烈推荐;Codex 缺乏自动积累与整理,记忆维护成本随规模线性上升,一般。
- 一次性脚本任务:任务短、无跨会话需求,简单可控即可。Codex 的极简两层结构恰到好处——推荐;Claude Code 的记忆能力在此近乎冗余,但��害,推荐。
- 合规/审计敏感场景:行为必须完全可预测、可追溯,任何自动写入都是风险。Codex 的纯手动声明式是天然答案——强烈推荐;Claude Code 的自动记忆需谨慎评估审计边界,一般。
一句话总结选型直觉:追求自动积累经验、少操心配置,选 Claude Code;追求行为确定、可审计可版本化,选 Codex。长期大型项目与个人原型偏向前者,团队协作与合规敏感场景偏向后者。

Claude Code 在个人原型/长期大型项目上强烈推荐,Codex 在团队协作/合规审计场景上强烈推荐;选型取决于对自动化与可控性的偏好
7. 总结
7.1 核心结论
核心结论
Claude Code —— 分层自动记忆系统
四层分层架构(CLAUDE.md / Auto Memory / Session Memory / AutoDream)构成自优化闭环,系统主动捕获、分类、去冗并跨会话接力经验。走的是自动化优先路线——让机器替人记忆、替人整理,以少量可控性的不确定换取强大的经验积累能力。
Codex —— 声明式契约系统
两层扁平架构(AGENTS.md 静态声明层 + 会话上下文层),记忆完全由人显式订立、显式修改,系统只读契约、绝不擅自变更。走的是可控性优先路线——以放弃自动经验积累为代价,换取行为的高度可预测与审计友好。
二者代表 AI Agent 记忆设计的两条根本路线——自动化优先与可控性优先。它们并非对立的对错之争,而是价值排序的不同取舍;兼具自动学习与可控审计的混合架构,才是记忆体系演进的终局形态。
7.2 架构综合评分
将前文的定性分析折算为可量化的评分,能更直观地暴露两套系统的能力轮廓。我们从六个正交维度对二者打分(1~5 分,分值越高能力越强):
| 评分维度 | Claude Code | Codex | 说明 |
| 持久化能力 | 5 | 2 | Claude Code 有自动持久化的 Auto Memory,Codex 仅手动 AGENTS.md |
| 自动化程度 | 5 | 1 | Claude Code 自动捕获+离线整理,Codex 完全依赖人工 |
| 可控性 | 3 | 5 | Codex 纯手动声明高度可预测,Claude Code 自动写入引入不确定 |
| 可扩展性 | 5 | 3 | Claude Code 原生深度支持 MCP 外接生态,Codex 扩展路径受限 |
| 学习能力 | 5 | 1 | Claude Code 跨会话自动积累经验,Codex 每次从静态基线开始 |
| 上手成本 | 2 | 5 | Codex 两层扁平极简,Claude Code 四层架构心智负担较高 |
注:「上手成本」维度分值越高代表越易上手(成本越低)。Claude Code 综合能力更强但学习曲线更陡,Codex 极简可控但能力面收窄。

青色柱(Claude Code)在持久化/自动化/可扩展/学习能力上领先,蓝色柱(Codex)在可控性/上手成本上占优
总之,Claude Code 让机器主动替你记忆,Codex 让你亲手为机器立约。要经验自动沉淀与生态扩展,选 Claude Code;要行为确定与审计可控,选 Codex;也许真正的未来,属于二者融合的混合记忆架构。






