开发者社区 > 博文 > Claude Code vs Codex 记忆体系深度对比
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

Claude Code vs Codex 记忆体系深度对比

  • jd****
  • 2026-07-22
  • IP归属:北京
  • 87浏览
    从分层记忆模型、持久化策略、自动整理机制、跨会话传递等维度,对两大 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 推理 → 语义分析 → 记忆类型判定 → 冗余检查 → 写入目标层
    
    1. 语义分析:提取输入中的身份信息、偏好、纠正、项目上下文、外部引用
    2. 类型判定:将提取的信息映射到 user / feedback / project / reference 四种类型
    3. 冗余检查:与现有记忆对比,跳过可从代码推导或已存在的信息
    4. 写入目标层:根据类型和持久性需求,写入 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 的内容在循环启动前被一次性注入到上下文中心,成为贯穿整个循环、约束每一步决策的"行为基线"。

    一次完整的循环包含四个阶段:

    1. 感知 Perceive:读取当前任务、文件状态、上一轮的执行反馈,构建对环境的即时认知。
    2. 规划 Plan:结合 AGENTS.md 中的规范与约束,制定下一步行动计划(读文件、改代码、跑测试等)。
    3. 执行 Act:调用工具执行计划——编辑文件、运行命令、检索代码。
    4. 观察 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 记忆能力的架构师沉淀了若干可迁移的原则。以下五条启示,是本文对比分析的凝练结论——它们不依赖于任何具体产品,而是指向记忆体系设计的底层规律:

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

    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;也许真正的未来,属于二者融合的混合记忆架构。