AI Agent 记忆方案横评:Memoria vs OpenClaw vs MCP,让Agent记住你的3种方式

你有没有遇到过这种情况:花了一下午教 Agent 理解你的项目结构、数据库配置、接口规范,它都乖乖记住了。第二天打开终端,它一脸无辜地问"请问你的项目用的是什么框架?"

这不是模型不够聪明,是 Agent 没有长期记忆

2026 年,几乎所有主流 AI 编程工具都支持了某种形式的记忆。但问题从"有没有记忆"变成了"哪种记忆方案更适合我"。最近的 GTC 2026 上,矩阵起源开源了 Memoria------号称"Git for Memory"的 Agent 记忆框架;OpenClaw 的 memory-core 和 memory-lancedb 方案已经日趋成熟;还有 MCP 协议下的文件系统记忆服务器也在悄悄发展。

我花了 3 天时间,把这三种方案都部署了一遍,用同一个项目(一个包含 5 个微服务和 3 个数据库的中型电商项目)测试它们在日常开发中的实际表现。这篇从三个维度对比:接入成本、记忆质量、工程可控性

一个简单的测试基准

在开始对比之前,先定义测试标准。我用一个统一的测试场景:

一个 5 微服务电商项目,使用 Postgres + Redis + Elasticsearch。测试流程:先让 Agent 阅读项目目录结构、数据库 schema 和 API 接口文档,然后关闭终端、重启 Agent,再问它项目的数据库连接字符串、API 认证方式和订单服务的主文件路径。

三种方案都要回答三个问题:

  1. 基础事实:框架版本、数据库端口、配置文件位置
  2. 上下文关系:订单服务依赖库存服务,库存服务依赖支付服务
  3. 隐含规则:API 路由的命名规范、错误处理的统一方式

回答正确率越高,记忆质量越好。

方案一:Memoria --- Git for Memory(新锐方案)

Memoria 是矩阵起源(MatrixOrigin)在 GTC 2026 上开源的项目,核心理念很简单:像管理代码一样管理记忆。

安装与接入

bash 复制代码
# 克隆项目
git clone https://github.com/matrixorigin/Memoria.git
cd Memoria

# 启动记忆服务器(默认端口 8087)
docker compose up -d

启动后,Memoria 会在本地运行一个记忆服务器,通过 REST API 与 Agent 交互。接入 Cursor 需要安装插件,接入 Claude Code 需要配置 MCP 配置。

json 复制代码
{
  "mcpServers": {
    "memoria": {
      "command": "npx",
      "args": ["@matrixorigin/memoria-mcp"],
      "env": {
        "MEMORIA_URL": "http://localhost:8087"
      }
    }
  }
}

核心特性:版本控制

Memoria 最大的亮点是把 Git 引入了记忆管理

bash 复制代码
# 保存记忆快照
memoria snapshot create -m "添加了订单服务数据库 schema"

# 查看记忆历史
memoria log --file orders-schema
# commit 3a1f2b8 - 添加了订单服务数据库 schema
# commit f4e7c2d - 初始项目扫描

# 回滚到之前的记忆状态
memoria rollback 3a1f2b8

# 创建分支隔离实验
memoria branch experiment/rewrite-orders

这在实践中非常有用。有一次 Agent 改错了配置文件,导致一整个下午的记忆都被污染------用 Memoria 的三行命令就恢复了。

测试结果

问题类型 回答正确率 备注
基础事实 100% 数据库连接、端口等结构化信息准确
上下文关系 80% 能准确描述服务依赖,但偶尔漏掉间接依赖
隐含规则 60% 能理解命名规范,但自定义规则需要显式声明

Memoria 的混合检索(向量 + 全文搜索)在基础事实上的表现非常稳定。底层使用 MatrixOne 的 Copy-on-Write 引擎,快照操作是毫秒级的,完全不占用额外存储。

局限

  • 需要额外运行一个 Docker 容器:本地资源占用约 256MB 内存,便携场景不够轻量
  • 学习成本:版本控制的概念对普通开发者有门槛,不是每个人都能理解"记忆分支"和"快照"
  • 生态尚在发展:目前官方支持 Cursor 和 Claude Code,Claude Code 需要手动配置 MCP

方案二:OpenClaw Memory --- 极简的本地记忆(成熟方案)

OpenClaw 内置了两套记忆组件:memory-core (基于文件)和 memory-lancedb (基于向量数据库)。两者的核心哲学一致:不把记忆自动注入 prompt,而是通过工具按需检索

配置方法

memory-core 是默认启用的,什么都不用配。它自动扫描工作区的 MEMORY.mdmemory/*.md 文件,通过 BM25 + 向量混合搜索进行检索。

yaml 复制代码
# 可选:切换到 memory-lancedb,获得向量搜索
memory:
  backend: lancedb
  citations: auto

memory-lancedb 提供了额外的 auto-recall/auto-capture 能力,Agent 会自动捕获重要信息并写入记忆库。

记忆文件结构

text 复制代码
memory/
├── 2026-05-30.md          # 每日日志
├── 2026-05-31.md          # 自动生成的每日对话摘要
├── MEMORY.md              # 永久记忆(不会衰减)
├── projects/              # 项目相关记忆
│   └── ecommerce.md       # 电商项目配置
└── archive/               # 归档
    └── 2026-05/

OpenClaw 的记忆有个重要的"衰减机制":非 MEMORY.md 的文件,如果超过 7 天没有更新,就不再出现在搜索结果中。这避免了过时信息污染上下文。

测试结果

问题类型 回答正确率 备注
基础事实 90% 如果写在 MEMORY.md 中则 100%,否则依赖自动捕获
上下文关系 70% 需要 Agent 主动调用 memory_search 工具
隐含规则 50% 依赖手动编写的规则文件,自动提取不够准确

OpenClaw 的最大优势是零配置 。无需额外运行任何服务,直接就能用。但它的记忆是"工具驱动"的------Agent 必须主动调用 memory_searchmemory_get 才能使用记忆。如果 Agent 不调用,记忆就是死的数据。

扩展:QMD 后端

如果默认的 SQLite 性能不够,可以切换到 QMD 后端,支持索引工作区之外的文件:

yaml 复制代码
memory:
  backend: qmd
  qmd:
    paths:
      - name: projects
        path: ~/projects
        pattern: "**/*.md"
    limits:
      maxResults: 10
      timeoutMs: 4000

局限

  • Agent 必须主动调用记忆工具:不是所有场景都能触发 memory_search
  • 文件驱动:随着项目膨胀,memory 目录会越来越大,需要手动归档清理
  • 多 Agent 不共享:每个 Agent 实例维护自己的记忆文件,没有共享机制(企业级可以通过 memory-agentcore 插件解决)

方案三:MCP Memory Server --- 协议化的轻量记忆(最灵活)

MCP(Model Context Protocol)在过去半年已经成为 AI 工具间通信的标准。基于 MCP 构建记忆服务器,意味着任何支持 MCP 的 Agent(Cursor、Claude Code、Copilot、Windsurf...)都能共享同一个记忆后端。

搭建一个简单的 MCP 记忆服务器

这里用一个真实的 MCP 记忆服务器实现来演示------@anthropic/mcp-memory-server

bash 复制代码
# 安装
npm install -g @anthropic/mcp-memory-server

# 在 Claude Code 配置中添加
# ~/.claude/claude_desktop_config.json
{
  "mcpServers": {
    "memory": {
      "command": "mcp-memory-server",
      "args": ["--storage", "~/.agent-memory"],
      "env": {
        "CONTEXT_WINDOW": "8192"
      }
    }
  }
}

启动后,Agent 可以通过 MCP 工具调用读写记忆:

复制代码
// Agent 内部调用流程:
1. 用 memory/store 写入当前项目上下文
2. 新会话时用 memory/search 检索相关条目
3. 用 memory/update 更新已有记忆

自定义记忆 schema

MCP 记忆服务器的最大优势是可定制化

typescript 复制代码
// 自定义记忆 schema 示例
tools: {
  memory_save: {
    input: {
      type: "object",
      properties: {
        key: { type: "string" },
        value: { type: "object" },
        ttl: { type: "number", default: 86400 * 7 }, // 7天过期
        tags: { type: "array", items: { type: "string" } }
      }
    }
  },
  memory_query: {
    input: {
      type: "object",
      properties: {
        query: { type: "string" },
        tags: { type: "array", items: { type: "string" } },
        limit: { type: "number", default: 10 }
      }
    }
  }
}

我用的是社区版 MCP 记忆服务器,配合 SQLite 后端,总代码量不到 200 行。

测试结果

问题类型 回答正确率 备注
基础事实 85% 取决于手动写入的数据完整度
上下文关系 75% 可以自定义关系存储
隐含规则 65% 自定义能力最强,可以写专门的规则存储逻辑

MCP 方案的优势不在"开箱即用",而在于控制力。你想怎么存、存什么、什么时候过期、怎么检索------全都自己说了算。

局限

  • 需要自己搭建:没有 GUI 工具,需要看懂 MCP 协议文档
  • 一致性由服务端保证:多个 Agent 同时写的时候需要注意竞态条件
  • 宿主依赖:部分 Agent(如 Cursor)对 MCP 工具的支持深度不同

横向对比总表

维度 Memoria OpenClaw Memory MCP Memory Server
接入成本 4/10 --- 需 Docker + 插件 9/10 --- 零配置 5/10 --- 需搭建服务
记忆质量 9/10 --- 版本控制 + 混合搜索 7/10 --- 工具驱动,依赖 Agent 调用 8/10 --- 可自定义,结构灵活
工程可控性 9/10 --- Git 式管理,可回滚 5/10 --- 文件驱动,归档需手动 9/10 --- 完全可控的 schema
多 Agent 共享 支持(同一记忆服务器) 有限(需插件如 memory-agentcore) 天然支持(走 MCP 协议)
资源占用 ~256MB(需 Docker) 0(内置在 Agent 进程) ~50MB(独立进程)
便携性
生态兼容 Cursor、Claude Code(需配置) 仅 OpenClaw 所有 MCP 兼容工具
唯一卖点 版本控制 + 快照回滚 零配置即用 协议标准化 + 可编程

场景推荐

个人开发者,日常编码

选 OpenClaw Memory 。不需要额外配置,开箱即用。把你的项目配置写在 MEMORY.md 里,Agent 每 30 分钟自动索引一次。

专业建议:把 MEMORY.md 分成三节------「项目概述」「配置清单」「开发规范」。每节控制在 5 条以内,重点突出。如果你用 vim/neovim 写代码,OpenClaw 的终端体验是最好的。

团队协作,多 Agent 协同

选 MCP Memory Server。自建一个记忆服务器,所有 Agent 共享同一套知识库。配合 tag 体系实现按项目、按团队隔离:

typescript 复制代码
// 按项目隔离
{
  project: "ecommerce-v2",
  memory: "订单服务依赖库存服务的 /api/inventory/check 端点"
}

// 按角色隔离
{
  role: "backend",
  tags: ["postgres", "redis", "api"]
}

需要历史回溯和安全回滚的场景

选 Memoria 。部署 Agent 建议生产环境或需要严格记忆管理时使用。版本控制让每一次记忆变更都有迹可循。如果 Agent 学到了错误的信息,直接 memoria rollback

对于 CI/CD 场景,Memoria 的快照功能可以做到"每次构建前保存记忆状态,构建失败后自动回滚"------这比手动清理 ~/.claude 缓存优雅得多。

混合方案:三套一起用

最激进的做法是三套一起上。用 OpenClaw 做日常本地开发,MCP Memory Server 做团队知识共享,Memoria 做关键节点的记忆快照备份。

yaml 复制代码
# 一个可能的配置
memory:
  primary: memory-core         # 本地文件索引
  team: mcp://localhost:8090   # 团队记忆共享
  backup: memoria rollback     # 每周快照备份

这不是过度设计------如果你的 Agent 工作流已经深度融入日常开发,单个记忆方案的容错率不够。memoria rollback 命令在关键项目的风险管理上确实有价值,还不用改动其他部分的配置。

写在最后

回到最开始的那个测试:三种方案都记住了数据库连接字符串和 API 配置(基础事实 85%+),但在隐含规则上表现出明显差异。

选哪一种,取决于你的核心诉求。对于大多数独立开发者,OpenClaw Memory 是最务实的选择------零成本启动,5 分钟上手,效果足够好。如果你已经开始管理多个 Agent 或多个项目,MCP Memory Server 值得花一个下午搭建。如果你的开发流程对记忆的可靠性要求极高,Memoria 是那个让你"放心让 Agent 改配置"的兜底方案。

AI Agent 正在从"对话工具"进化为"开发伙伴"。而记忆,就是伙伴的头脑。给它一个好的记忆系统,它才能真的记住你。


延伸阅读:MCP协议实战:从零搭建一个MCP Server从零搭建多Agent协作系统AWS MCP Server 正式可用

如果这篇文章对你有帮助,点个关注 👆 我会持续更新 AI 编程实战、工具测评和踩坑记录。

相关推荐
Allen正心正念20251 小时前
AI编程—claude code中plugin三种范围模式的配置方法
人工智能·ai编程
豆豆1 小时前
2026实测:AI生成UI设计稿后,如何优雅集成到PageAdmin CMS?(附标签替换代码)
人工智能·ui·cms·建站系统·ai工具·ai建站
ServBay1 小时前
别管跑分了,2026 本地编程大模型推荐与 GitHub Copilot 免费平替
llm·ai编程·github copilot
梦想三三1 小时前
【NLP入门到实战】TF-IDF算法详解 + 红楼梦120回关键词提取
人工智能·python·计算机视觉
优信其乐1 小时前
AI数字人讲解视频的未来,不是数字人,而是PPT
人工智能·powerpoint·yoco·ppt转视频工具
雪隐1 小时前
AI股票小助手03-Tushare数据采集
人工智能·后端
小烤箱1 小时前
什么是 ROS2:机器人软件的数据加工工业园区
人工智能·机器人·ros
2601_955767421 小时前
观复盾护景贴:东方哲思与双护科技的深度实测
人工智能·科技·ios·iphone·圆偏振光·磁控溅射
lpd_lt1 小时前
服务端类vue等页面AI测试方向
前端·vue.js·人工智能