Mem0
面向 AI agent 的通用长期记忆层,支持持久化 memory 操作和 MCP 接入,适合给多个 coding agent 提供共享 memory backend。
[!info] related notes
- 相关主题: Coding Agent Memory Landscape, mcp
- 相关概念: AI Agent Memory Layer
- 相近工具: Graphiti, LangMem, Letta
Mem0
概览
Mem0 是现在最像“通用默认选项”的 memory layer 之一,适合给现有 agent 补长期记忆,而不是要求你重搭整套 agent runtime。
Github官方文档中介绍:
- 有官方托管、自己部署两种部署方案。
- 有cli、mcp两种接入方式
- 有skills(教编码助手如何用 Mem0 构建应用,偏向 API 用法参考。)
[!info] 个人想法 Mem0 主要是一个用来在应用中提供记忆服务的工具 也可以用于构建自己的 harness 中的 记忆层。
适用平台
- 多个 MCP client 共用 memory backend
- 现有 coding agent 统一接入长期记忆
特点
- 强调 self-improving persistent memory
- 提供 add / search / update / delete 这类完整 memory 操作
- 有 graph memory 路线,也有 MCP server 形态
- 适合给多个 coding client 暴露统一的长期记忆接口
生效原理:工具暴露 + LLM 自主决策
MCP 服务器将 Mem0 的能力包装成 9 个工具(add_memory、search_memories、update_memory、delete_memory 等),暴露给 AI 客户端。客户端启动时会通过 HTTP 连接到 https://mcp.mem0.ai/mcp,拉取工具列表并注入到 LLM 的上下文中。
何时存储 / 何时读取:由 LLM 自主判断
文档原文:“letting AI agents decide when to save, search, or update information”。
也就是说,没有硬编码规则,而是靠 LLM 根据每个工具的描述(如 “Save text or conversation history for a user/agent”、“Semantic search across existing memories”)在对话中自行决定调用时机。典型触发模式:
- 存储:用户说”记住…”、“我喜欢…”、陈述偏好/事实时 → LLM 调用
add_memory - 读取:用户提问涉及过往偏好/历史(“我之前说过什么”、“基于我的喜好推荐”)→ LLM 调用
search_memories - 更新/删除:用户明确要求修改或忘记某事 → 调用
update_memory/delete_memory
实体标识符
Mem0 通过实体标识符(entity identifiers)隔离记忆范围。MCP 工具支持按作用域过滤。
Mem0 支持四种实体:user / agent / app / run。你可以这样划分:
| 记忆类型 | 建议实体 | 示例 ID |
|---|---|---|
| 个人全局偏好 | user_id | user_id="alice" |
| 项目级记忆 | agent_id 或 app_id | app_id="project-foo" |
| 会话级临时记忆 | run_id |
作为 ai agent 的共享记忆层(howto,后续内容增多可以转移到单独的 howto 笔记中)
- 它适合做共享脑子
- 但显式规则、审批方式、验证要求仍更适合放在
AGENTS.md这类文件中
应该在AGENTS.md 这类文件明确规则,例如:
“涉及编码风格、通用偏好 → 用 user_id=‘me’;涉及当前项目代码/架构 → 额外带 app_id=‘<项目名>‘“