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

精读: MCP 记忆集成层

开源记忆项目精读见 supermemory · DB-Agent-Memory 生产 Agent 记忆见 Claude Code 记忆 · Codex 记忆

调研元信息

项目
调研日期 2026-06-22
MCP 规范 modelcontextprotocol.io
Cursor Rules cursor.com/docs/rules
Codex AGENTS.md codex-rs/core/src/agents_md.rs [源码]
Memory Bank 社区 github.com/nickbaumann98/cline_docs 等
证据等级 [文档] [社区] [已有] [源码](混合)

一句话定位

MCP 是生产 Coding Agent 与开源记忆库之间的 USB 口——同一个 MCP memory server 可以被 Claude Code、Codex、Cursor 等任何支持 MCP 的 Agent 调用,让记忆能力从 Agent 产品中解耦出来 [文档]

日常类比

想象你有三台不同品牌的电脑(Claude Code / Codex / Cursor),每台都有自己的内置硬盘(内建记忆)。MCP 就像 USB 接口标准——你可以把同一个移动硬盘(supermemory / DB-Agent-Memory)插到任何一台电脑上使用。有的电脑内置硬盘很大(Claude Code 有完整的 memory 子系统),有的几乎没有内置存储(旧版 Cursor),但它们都能用同一个 USB 移动硬盘。

类比边界:USB 移动硬盘的接口是标准化的,但 MCP memory server 的能力差异远大于硬盘之间——supermemory 有三流检索,DB-Agent-Memory 有四层金字塔,接口相同但内部能力天差地别。

记忆类型标注

本文聚焦 External memory(独立记忆服务通过 MCP 暴露),兼讨论 Agent profile(Rules / CLAUDE.md / AGENTS.md)如何被社区用来模拟 User memory。


三种记忆能力的层次

在理解 MCP 集成层之前,需要先明确生产 Coding Agent 中三种记忆能力的层次关系 [文档][源码]

flowchart TB
    subgraph profile["Agent Profile(静态配置)"]
        CM[CLAUDE.md]
        AM[AGENTS.md]
        CR[".cursor/rules/*.mdc"]
    end

    subgraph user["User Memory(自动提炼)"]
        CC_MEM["Claude Code<br/>~/.claude/projects/*/memory/"]
        CX_MEM["Codex<br/>~/.codex/memories/"]
        CU_MEM["Cursor Memories<br/>(1.0 Beta)"]
    end

    subgraph external["External Memory(MCP 服务)"]
        SM["supermemory MCP Server"]
        DB["DB-Agent-Memory MCP Adapter"]
        M0["mem0 via MCP adapter"]
    end

    subgraph bridge["MCP Protocol"]
        MCP["MCP 标准接口"]
    end

    profile -->|人工维护| AGENT[Coding Agent]
    user -->|系统写入| AGENT
    external -->|MCP 调用| MCP --> AGENT

Profile vs User vs External

维度 Profile User memory External memory
写入者 人工(开发者手动维护) Agent/系统自动提炼 独立记忆服务
内容 行为规则、编码规范、项目结构 偏好、历史、提炼的知识 与 Agent 无关的通用记忆
持久性 随项目/用户配置 跨 session 独立生命周期
发现方式 从项目根到 cwd 链式查找 固定路径读取 MCP 工具调用
代表 CLAUDE.md、AGENTS.md、.cursor/rules Claude memdir、Codex memories supermemory、DB-Agent-Memory

关键洞察:Cursor 在 1.0 之前默认没有 User memory,只有 Profile(Rules)+ Working(session)。这促成了 Memory Bank 社区模式的兴起——用 Profile 文件来模拟 User memory [社区]


Profile 机制对比

AGENTS.md 发现链(Codex)

Codex 的 AGENTS.md 发现链在 agents_md.rs 中实现 [源码]

  1. 确定项目根:从 cwd 向上逐级找 .git 等标记——找到即为根,不再越过
  2. 确定搜索范围:从项目根到 cwd 路径上的每一级目录(含两端)
  3. 每级目录按优先级查找AGENTS.override.mdAGENTS.md → fallback 文件名(如 CLAUDE.md
  4. 拼接:用户级 instructions 排最前 → --- project-doc --- 分隔符 → 各级内容

设计亮点AGENTS.override.md 作为本地覆盖,类似 .env.local 的思路——可以 gitignore,不影响团队配置 [源码]

CLAUDE.md 发现链(Claude Code)

Claude Code 也支持链式发现,但路径布局更复杂 [源码]

层级 文件 作用
全局 ~/.claude/CLAUDE.md 用户级偏好
项目根 CLAUDE.md + .claude/CLAUDE.md 项目级规则
子目录 各级 CLAUDE.md 目录级规则
本地 CLAUDE.local.md(gitignored) 个人覆盖

Cursor Rules 四种模式

Cursor 的 .cursor/rules/*.mdc 文件通过 frontmatter 控制注入策略 [文档]

模式 alwaysApply 触发条件 类比
Always Apply true 始终注入 相当于 CLAUDE.md
Globs false + globs 上下文中有匹配文件时 无对应(Claude/Codex 无条件注入)
Description false + description Agent 读描述后自行判断 类似 findRelevantMemories 的思路
Manual false(无 globs/desc) 用户 @规则名 无对应

Cursor 1.0 Memories(2025-06-04) [文档]:Cursor 终于在 1.0 版本引入了原生 User memory——按项目级别、个人层面存储,由后台模型自动提取,用户批准后保存。但仍是 Beta 且限于项目粒度(不跨项目),这与 Claude Code 的跨项目 memory 和 Codex 的全局 ~/.codex/memories/ 不同。

Profile 对比总表

维度 CLAUDE.md AGENTS.md Cursor Rules
格式 纯 Markdown 纯 Markdown MDC(frontmatter + Markdown)
条件注入 无(发现即注入) 无(发现即注入) 4 种模式
本地覆盖 CLAUDE.local.md AGENTS.override.md 不区分
跨工具兼容 仅 Claude Code 30+ 工具联合标准 仅 Cursor
全局层 ~/.claude/CLAUDE.md 用户级 instructions User Rules(Settings)

MCP 外部记忆: supermemory

完整架构精读见 supermemory 精读

supermemory 通过独立的 apps/mcp-server/ 应用暴露记忆能力 [已有]

集成架构

flowchart LR
    subgraph clients["Coding Agents"]
        CC[Claude Code]
        CX[Codex]
        CU[Cursor]
    end

    subgraph mcp_layer["MCP Protocol"]
        MCP_IF["MCP 标准接口"]
    end

    subgraph supermem["supermemory"]
        MCP_SRV["MCP Server<br/>(apps/mcp-server/)"]
        WEB["Web App"]
        EXT["Browser Extension"]
        ENGINE["Memory Engine"]
        SEARCH["三流混合检索<br/>BM25+向量+图"]
        PROFILE["Profile API"]
    end

    CC --> MCP_IF --> MCP_SRV
    CX --> MCP_IF
    CU --> MCP_IF
    WEB --> ENGINE
    EXT --> ENGINE
    MCP_SRV --> ENGINE
    ENGINE --> SEARCH
    ENGINE --> PROFILE

作为外部记忆的特点 [已有]


MCP 外部记忆: DB-Agent-Memory

完整架构精读见 DB-Agent-Memory 精读

DB-Agent-Memory 通过 Host-Adapter 架构将记忆与 Agent 框架解耦 [已有]

集成架构

flowchart LR
    subgraph clients["Coding Agents"]
        CC[Claude Code]
        CX[Codex]
        CU[Cursor]
    end

    subgraph adapters["Adapter 层"]
        MCP_A["MCP Adapter"]
        OC["OpenClaw Adapter"]
        HM["Hermes Adapter"]
    end

    subgraph host["Memory Host"]
        L0["L0 对话层"]
        L1["L1 原子事实"]
        L2["L2 场景块"]
        L3["L3 用户画像"]
        MMD["MMD Builder<br/>稳定区+动态区"]
    end

    subgraph store["Storage"]
        DB[(SQLite + sqlite-vec)]
    end

    CC --> MCP_A
    CX --> MCP_A
    CU --> MCP_A
    MCP_A --> L0
    OC --> L0
    HM --> L0
    L0 --> L1 --> L2 --> L3
    L3 --> MMD
    L0 --> store
    L1 --> store
    L2 --> store
    L3 --> store

作为外部记忆的特点 [已有]

两个 MCP 记忆服务的对比

维度 supermemory DB-Agent-Memory
定位 用户产品(”让 AI 记住你”) 开发者引擎(记忆中间件)
MCP 角色 独立 app,三入口之一 Adapter 之一,Host-Adapter 解耦
记忆组织 Profile API + Memory Graph 四层语义金字塔(L0→L3)
检索能力 三流(BM25+向量+图) 双流(BM25+向量)
Prompt 注入优化 无特殊优化 MMD 分区(KV Cache 友好)
记忆来源 对话+浏览器+手动 对话(自动提炼)
存储 SQLite SQLite + sqlite-vec
外部依赖 较多
框架锁定 自有产品体系 显式解耦
Benchmark LongMemEval 等第一 [已有] 无公开数据

Memory Bank 社区模式

Memory Bank 是一种社区驱动的模式——用 Profile 文件(Cursor Rules 或项目 Markdown)模拟 User memory [社区]

工作机制

flowchart TB
    START[新 Session 开始] --> LOAD["读取 Memory Bank 文件<br/>(通过 Rules 指令)"]
    LOAD --> CONTEXT[Agent 获得项目上下文]
    CONTEXT --> WORK[正常工作]
    WORK --> TRIGGER["用户说 'update memory bank'"]
    TRIGGER --> REVIEW[Agent 审查所有 Bank 文件]
    REVIEW --> UPDATE["更新 activeContext.md<br/>+ progress.md"]
    UPDATE --> WORK

典型文件结构

文件 内容 更新频率
projectBrief.md 项目概述、目标、核心需求 很少变
techContext.md 技术栈、框架选择 较少变
systemPatterns.md 架构模式、设计决策 较少变
activeContext.md 当前工作焦点、最近变更 频繁更新
progress.md 已完成功能、待办、已知问题 频繁更新

为什么存在

Memory Bank 模式的存在本身就说明了一个问题:产品内建记忆的供给不足 [社区]

Agent 内建记忆状态 Memory Bank 的必要性
Cursor (1.0前) 无 User memory 高——唯一的持久记忆手段
Cursor (1.0+) Memories Beta(项目级) 中——Beta 功能有限
Claude Code 完整 memory 子系统 低——但有人仍用 Memory Bank 补充 Profile
Codex 完整 memories pipeline 低——类似 Claude Code

Memory Bank 的代价

用 Profile 模拟 User memory 有三个根本问题:

  1. 无 embedding / 无语义检索:Memory Bank 文件全量注入上下文,随着项目增长会占用大量 token
  2. 无冲突合并:多个 session 可能同时修改 activeContext.md,没有版本控制以外的冲突解决机制
  3. 人工触发:需要用户手动说 “update memory bank”,遗忘就等于丢失——对比 extractMemories 的自动触发

这正是为什么 DB-Agent-Memory(腾讯)+ supermemory 的 MCP 路线更有前途——它们提供了 Memory Bank 缺少的自动提取、语义检索和冲突处理 [已有]


MCP 作为统一集成层的价值

当前格局

flowchart TB
    subgraph agents["Coding Agents"]
        CC["Claude Code<br/>内建: memdir"]
        CX["Codex<br/>内建: Phase1/2 pipeline"]
        CU["Cursor<br/>内建: Memories Beta"]
    end

    subgraph mcp_bridge["MCP 桥接层"]
        MCP["MCP Protocol"]
    end

    subgraph external["外部记忆服务"]
        SM["supermemory<br/>三流检索"]
        DB["DB-Agent-Memory<br/>四层金字塔"]
        M0["mem0<br/>扁平事实"]
        LT["Letta<br/>虚拟内存"]
    end

    CC -->|内建记忆 + MCP 扩展| MCP
    CX -->|内建记忆 + MCP 扩展| MCP
    CU -->|Memories Beta + MCP 扩展| MCP

    MCP --> SM
    MCP --> DB
    MCP --> M0
    MCP --> LT

内建记忆 vs MCP 外部记忆

维度 内建记忆 MCP 外部记忆
优势 深度集成 harness、零配置、低延迟 跨 Agent 共享、能力可组合、框架无关
劣势 锁定在特定 Agent、能力由产品决定 需要配置、额外延迟、能力取决于服务
适合场景 单 Agent 工作流 多 Agent / 多工具工作流

犀牛鸟视角

从犀牛鸟备赛角度看,MCP 集成层有两个值得关注的切入点 [社区]

DB-Agent-Memory + MCP 集成:DB-Agent-Memory 的 Host-Adapter 架构天然适合 MCP 集成。它的 mcp-adapter.ts 已经存在,但功能可能不完整——四层金字塔的检索能力是否充分暴露给 MCP 客户端?MMD 注入优化是否能通过 MCP 传递?这些是潜在的改进方向。

supermemory 的多入口模式:如果 Coding Agent 需要访问浏览器收藏的文档、阅读过的文章——这是单靠 Agent 内建记忆无法覆盖的场景,恰恰是 supermemory MCP Server 的甜区。


局限性

  1. MCP 不定义记忆语义:MCP 只是传输协议,不规定记忆如何组织、检索、遗忘——每个 memory server 的行为差异巨大 [文档]
  2. Profile 文件不是记忆:Rules / CLAUDE.md / AGENTS.md 没有 embedding、没有检索、没有冲突合并——它们是静态配置,不是知识库。
  3. Memory Bank 是权宜之计:随着 Cursor 1.0 Memories 和 Claude Code 内建记忆的完善,这种社区模式的必要性在下降。
  4. MCP 延迟:通过 MCP 调用外部记忆服务引入额外网络延迟,在高频交互中可能成为瓶颈。

证据等级汇总

论点 证据等级
MCP 是标准传输协议 [文档]
AGENTS.md 发现链(从项目根到 cwd) [源码]
Cursor Rules 四种 apply 模式 [文档]
Cursor 1.0 Memories Beta [文档]
supermemory MCP Server 架构 [已有]
DB-Agent-Memory Host-Adapter + MCP Adapter [已有]
Memory Bank 社区模式 [社区]
AGENTS.md 跨工具兼容(30+ 工具) [文档]
AGENTS.override.md 本地覆盖机制 [源码]