犀牛鸟 2026 研究笔记 estelledc.github.io

Coding Agent 记忆横评

Claude Code 记忆机制:精读: Claude Code 记忆系统 Codex 记忆机制:精读: Codex 记忆系统 OpenClaw flush:精读: OpenClaw Memory Flush MCP 拓扑:精读: MCP 记忆拓扑 Profile/MCP 基础:MCP 记忆集成层

调研元信息

项目
调研日期 2026-06-22
横评对象 Claude Code、Codex、OpenClaw、Cursor、Cline、Aider
涉及研究轴 B(Coding Agent)为主
证据等级 [源码] [文档] [社区] [已有] 混合

一句话定位

六大 Coding Agent 的记忆能力呈现三个梯队:Claude Code / Codex / OpenClaw 拥有完整的自动记忆系统,Cursor 刚起步(Memories Beta),Cline 和 Aider 依赖社区方案或手动配置——记忆能力正在成为 Coding Agent 的核心竞争力分水岭。

记忆类型标注

本文覆盖全部四类记忆:Working(上下文管理)、Profile(规则/配置)、User(自动提取的持久记忆)、External(MCP 外部服务)。


横评总表

维度 Claude Code Codex OpenClaw Cursor Cline Aider
User memory 完整(memdir) 完整(Phase1/2) 完整(flush+dreaming) Beta(1.0+)
Profile CLAUDE.md 链式 AGENTS.md 链式 MEMORY.md + SOUL.md .cursor/rules 4 模式 .clinerules/ CONVENTIONS.md
写触发 每次响应后 hook session 启动批量 compaction 前 AI 自动 + 用户触发
读路径 全量索引 + Sonnet 语义选取 memory_summary 全量注入 MEMORY.md + 近 2 天日记 向量搜索注入 全量 Rules 注入 –read 手动加载
与 compaction 独立(extract 不绑 compaction) 独立(Phase1 不绑 compaction) 双轨(flush 前置 compaction) 不确定 Auto Compact(无记忆写入) /compact(无记忆写入)
MCP 扩展 原生支持 沙箱内支持 Host-Adapter 原生支持 原生支持
遗忘机制 硬截断 200行/25KB 隐式(30天未引用淘汰) Budget compaction 10K字符 用户手动删除 不适用 不适用
多模型 Sonnet sideQuery reasoning=Low/Medium 可配独立 flush 模型 gemini-2.5-flash 不适用 不适用

逐 Agent 记忆分析

1. Claude Code — 索引+按需检索

详见 精读: Claude Code 记忆系统

Claude Code 的记忆设计围绕 memdir(memory directory)展开:MEMORY.md 是纯索引文件(每条约 150 字符、上限 200 行),实际内容存在 topic-name.md 文件中。读路径分两阶段——启动时全量索引注入 system prompt,每 turn 用 Sonnet 做 sideQuery 从最多 200 个文件中选取 ≤5 个最相关的注入上下文。写路径通过 extractMemories hook 在每次无工具响应后 fire-and-forget,使用 forked agent 提取四类信息(user/feedback/project/reference)[已有]

核心特色:LLM 驱动的语义检索(非向量搜索),代价是每 turn 需要额外一次 Sonnet 调用。

2. Codex — AI Pipeline 双阶段

详见 精读: Codex 记忆系统

Codex 采用异步两阶段 AI pipeline:Phase1 在 session 启动时并行处理最近的 rollout(最多 8 并发),用 reasoning=Low 模型提取结构化 JSON 到 SQLite;Phase2 用一个隔离沙箱中的 consolidation agent(reasoning=Medium)将 top-256 条 Phase1 输出合并为 ~/.codex/memories/ 下的文件系统工件(MEMORY.md + memory_summary.md + skills/)。读路径简单粗暴——memory_summary.md 全量作为 developer instruction 注入 [已有]

核心特色:全局共享记忆(不按项目隔离),citation 正反馈循环(被引用越多的记忆越不容易被淘汰)。

3. OpenClaw — Pre-Compaction Flush

详见 精读: OpenClaw Memory Flush

OpenClaw 的创新在于 pre-compaction flush——在上下文压缩前运行一个静默嵌入式 agent,将重要信息写入 memory/YYYY-MM-DD.md(日记层)。后台 Dreaming 系统将日记中的候选内容晋升到 MEMORY.md(长期层),预算上限 10,000 字符。三层文件布局(MEMORY.md / daily / DREAMS.md)提供了清晰的时间维度 [源码]

核心特色:唯一一个显式将 flush 前置于 compaction 的方案,解决了”压缩=遗忘”的直接矛盾。

4. Cursor — 从纯 Profile 到 Memories Beta

Profile 详见 MCP 记忆集成层

Cursor 在 1.0 版本(2025-06)引入 Memories Beta,结束了长期只有 Profile(.cursor/rules)的状态。记忆存储在云端、按 Git remote URL 隔离。使用 gemini-2.5-flash 对聊天记录做两段分析——先提取再打分(1-5 分),达标后写入。读路径通过向量搜索从记忆库中选出相关条目,注入系统提示的 <memories> 标签 [文档]

核心特色:云端存储(非本地文件),四种 Rule apply 模式提供了最灵活的 Profile 系统。

局限:仍是 Beta,仅记录编程偏好而非项目上下文,需关闭 Privacy Mode,不跨项目共享。

5. Cline — 无内建记忆,社区 Memory Bank 填补

Cline 系统提示明确声明 “my memory resets completely between sessions”——没有任何内建的跨会话记忆持久化。社区通过 Memory Bank 模式弥补:用户手动将指令文本放入 .clinerules/memory-bank.md,指示 Cline 在每个 task 开始时读取 memory-bank/ 目录下的 6 个 markdown 文件(projectBrief、techContext、systemPatterns、activeContext、progress),会话结束前说 “update memory bank” 触发更新 [社区]

Cline 有一个值得关注的设计:PreCompact hook——允许在 Auto Compact 之前运行用户自定义脚本。这原本用于通用扩展,但社区将其用于自动更新 Memory Bank 文件,变相实现了类似 OpenClaw flush 的效果 [源码]

核心特色:PreCompact hook 提供了社区自建 flush 的扩展点,但不是内建功能。

6. Aider — 显式文件驱动,无自动学习

Aider 完全没有自动记忆——它的”记忆”是显式的、文件驱动的 [文档]

核心特色:Repo Map 是独特创新——用图算法代替记忆系统来理解代码库。但这是代码结构理解,不是学习用户偏好。


记忆写入策略对比

flowchart TB
    subgraph trigger["写入触发时机"]
        CC_T["Claude Code<br/>每次无工具响应后"]
        CX_T["Codex<br/>session 启动时"]
        OC_T["OpenClaw<br/>上下文将满时"]
        CU_T["Cursor<br/>聊天过程中"]
    end

    subgraph process["处理方式"]
        CC_P["forked agent<br/>fire-and-forget"]
        CX_P["并行 worker<br/>→ consolidation agent"]
        OC_P["嵌入式 agent<br/>静默轮次"]
        CU_P["后台模型<br/>两段分析"]
    end

    subgraph output["产出"]
        CC_O["topic.md 文件<br/>(按主题分)"]
        CX_O["SQLite → MEMORY.md<br/>(全局合并)"]
        OC_O["memory/YYYY-MM-DD.md<br/>(按天分)"]
        CU_O["云端记忆条目<br/>(按项目分)"]
    end

    CC_T --> CC_P --> CC_O
    CX_T --> CX_P --> CX_O
    OC_T --> OC_P --> OC_O
    CU_T --> CU_P --> CU_O

记忆读取策略对比

Agent 读取方式 检索算法 延迟 Token 成本
Claude Code 双阶段:全量索引 + Sonnet sideQuery 选 ≤5 文件 LLM 语义匹配 高(1-3s LLM 调用) 高(额外 Sonnet 调用)
Codex memory_summary.md 全量注入 无检索 极低(文件读取) 中(全文注入)
OpenClaw MEMORY.md 全量 + 近 2 天日记 无检索(时间窗口) 极低 低-中
Cursor 向量搜索选出相关条目 向量余弦相似度 低(100-200ms) 低(只注入相关条目)

关键洞察:四种读取策略反映了不同的工程权衡——Claude Code 花最高成本追求精准(LLM 做检索),Codex 用最低成本做全量注入(代价是 token 浪费),OpenClaw 用时间窗口做近似(假设近期信息最相关),Cursor 用向量检索做中间路线。


Compaction 与记忆的关系

这是区分 Coding Agent 记忆成熟度的关键维度:

Agent Compaction 时做什么 信息保留策略
Claude Code 独立——extractMemories 在响应后触发,与 compaction 无关 持续学习,compaction 不影响记忆写入
Codex 独立——Phase1 在 session 启动时回顾历史 rollout 回顾式学习,从历史中提取
OpenClaw 耦合——flush 显式前置于 compaction 抢救式保存,compaction 前紧急持久化
Cursor 不确定——Memories Beta 实现细节未公开
Cline 仅压缩,无记忆写入(除非用 PreCompact hook) 压缩 = 丢失(除非社区方案)
Aider 仅压缩(/compact),无记忆写入 压缩 = 丢失

Profile 系统对比

详细对比见 MCP 记忆集成层 · Profile 机制对比

维度 CLAUDE.md AGENTS.md .cursor/rules .clinerules/ CONVENTIONS.md
格式 Markdown Markdown MDC(frontmatter) Markdown Markdown
条件注入 4 种模式 glob 匹配 手动 –read
本地覆盖 CLAUDE.local.md AGENTS.override.md
跨工具兼容 仅 Claude Code 30+ 工具联合标准 仅 Cursor 兼容 .cursorrules Aider 专用
全局层 ~/.claude/CLAUDE.md 用户级 instructions Settings → User Rules 全局 Rules ~/.aider.conf.yml

三个梯队的演进预测

flowchart LR
    subgraph t1["第一梯队:完整自动记忆"]
        CC["Claude Code"]
        CX["Codex"]
        OC["OpenClaw"]
    end

    subgraph t2["第二梯队:刚起步"]
        CU["Cursor Memories Beta"]
    end

    subgraph t3["第三梯队:无内建记忆"]
        CL["Cline"]
        AD["Aider"]
    end

    t3 -->|"MCP 外挂<br/>弥补差距"| EXT["MCP 记忆服务<br/>supermemory / DB-Agent-Memory"]
    t2 -->|"内建增强"| t1
    t1 -->|"MCP 扩展<br/>互补增强"| EXT

预测


局限性

  1. Cursor Memories Beta 信息有限:实现细节基于公开文档和社区分析,内部架构不确定 [文档]
  2. OpenClaw 源码分析基于单次 clone:可能遗漏最新变更 [源码]
  3. Aider 分析基于文档:未深入源码验证 [文档]
  4. 延迟数据为估算:未做实测对比 [推导]

证据等级汇总

论点 证据等级
Claude Code memdir + extractMemories 架构 [已有] deep-dive-claude-code-memory.md
Codex Phase1/2 pipeline [已有] deep-dive-codex-memory.md
OpenClaw pre-compaction flush [源码] /tmp/openclaw
Cursor Memories Beta + Rules 4 模式 [文档] cursor.com/changelog + docs
Cline 无内建记忆 + Memory Bank 社区模式 [源码] /tmp/cline + [社区]
Aider CONVENTIONS.md + Repo Map [文档] aider.chat/docs
三梯队演进预测 [推导] 基于现状分析