Mem0 智能记忆层
为 AI 助手和智能体保存、检索并复用长期记忆。
- 源仓库
- mem0ai/mem0
- Star 数
- ★ 68k
- 最近更新
- 2 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 52/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台ChatGPT · Codex · Claude Code · Claude.ai · OpenAI API
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 开发聊天助手的团队,希望按 user_id 检索用户偏好,再把相关记忆放入每轮回答的系统提示词。
- 不适合
- 需要完全离线、不调用任何云端 LLM 的团队
- 希望记忆自动更新或删除旧条目的团队(新算法只增不改)
- 不愿把用户对话数据发送给 OpenAI 等第三方模型的团队
- 源码审查
- 52/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Mem0 是面向 AI 助手与智能体的长期记忆层,提供 Python、npm、CLI、云平台和自托管服务器等接入方式。核心 Python 接口是 mem0.Memory;应用可先搜索用户相关记忆,将结果写入模型提示词,再把对话及助手回复加入记忆。其 README 描述的新算法使用单次 ADD-only 抽取,并结合实体链接、语义检索、BM25 关键词匹配和时间感知检索。团队可在 server 目录通过 Docker Compose 自托管,并使用浏览器向导或 bootstrap 初始化认证与首个 API 密钥。它适合需要跨会话个性化和历史上下文的应用,但本身仍需要配置 LLM,默认示例使用 OpenAI。
应用创建 Memory() 后,调用 memory.search(query=message, filters={"user_id": user_id}, top_k=3) 读取匹配的记忆结果,将 results 中的 memory 字段拼接到系统提示词;示例随后使用 OpenAI().chat.completions.create(model="gpt-5-mini", messages=messages) 生成回复,并通过 memory.add(messages, user_id=user_id) 从用户与助手消息写入新记忆。命令行可用 mem0 init 创建账户或初始化配置、mem0 add 写入文本记忆、mem0 search 查询记忆;自托管服务可由 cd server && make bootstrap 启动并创建管理员和首个 API key。启用 mem0ai[nlp] 并下载 en_core_web_sm 后,可获得 README 所述的 BM25 关键词匹配与实体抽取支持。
- 开发聊天助手的团队,希望按 user_id 检索用户偏好,再把相关记忆放入每轮回答的系统提示词。
- 客服机器人开发者,需要根据用户过往工单或互动历史生成更有针对性的回复。
- 构建自主系统的工程师,需要保存用户、会话和 Agent 状态,并在后续任务中检索相关记录。
- 在自有基础设施运行应用的团队,需要使用 Docker Compose 部署带认证和 API key 的记忆服务。
- 使用 ChatGPT、Perplexity 或 Claude 的个人或团队,需要通过浏览器扩展跨这些产品保存记忆。
如何安装或部署这个 Agent?
Python 库:
pip install mem0ai需要 BM25 和实体抽取时:
pip install mem0ai[nlp]
python -m spacy download en_core_web_smNode SDK:
npm install mem0ai自托管:
cd server && make bootstrapCLI:
npm install -g @mem0/cli
mem0 init基础用法需要 LLM;README 默认使用 OpenAI 的 gpt-5-mini 和 text-embedding-3-small,因此需让 OpenAI 客户端具备可用凭据。
如何使用这个 Agent?
最小流程是在 Python 中导入并创建 from mem0 import Memory 与 memory = Memory()。每次收到消息时,用 memory.search(query=message, filters={"user_id": user_id}, top_k=3) 检索记忆,把返回的 results 写入提示词,使用 OpenAI().chat.completions.create(model="gpt-5-mini", messages=messages) 生成回答,最后执行 memory.add(messages, user_id=user_id) 写入该轮对话。也可先用 CLI 验证:mem0 init --agent --agent-caller claude-code,再执行 mem0 add "I am using mem0" 和 mem0 search "am I using mem0"。
这个 Agent 有哪些优点和局限?
- 同时提供 Python、npm、CLI、云平台和 Docker Compose 自托管路径,原型与团队部署可使用不同入口。
- Memory 的 search/add 流程直接对应聊天应用的“检索—生成—写回”闭环,并支持 user_id 过滤。
- README 描述的检索组合了语义、BM25、实体匹配和时间信号;可选 NLP 安装明确提供关键词与实体能力。
- 自托管认证默认开启,bootstrap 可创建管理员和首个 API key。
- Mem0 运行需要 LLM;默认示例依赖 OpenAI 的 gpt-5-mini 和 text-embedding-3-small。
- 新算法采用 ADD-only 抽取,不执行 UPDATE 或 DELETE,因此记忆会累积而非被覆盖。
- README 中的基准成绩针对含专有优化的托管平台,开源 SDK 的结果被说明为方向性相近但不保证相同。
- 自托管旧版本升级需要配置 ADMIN_API_KEY、通过向导注册管理员,或仅在本地开发时设置 AUTH_DISABLED=true。
这个 Agent 与同类方案有什么区别?
库模式适合测试和原型;自托管服务器适合在自有基础设施中运行的团队,并提供仪表板、认证与 API key;云平台面向零运维生产使用。README 将高级功能标为云平台“全部包含”,自托管为“Teasers”。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Mem0 智能记忆层 当前 | 52 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 68k | 2 天前 | Python | ChatGPT · Codex · Claude Code · Claude.ai · OpenAI API |
| Memanto | 50 · 缺口较多 | 命令行工具免费版 + 付费版 | ★ 2.4k | 6 天前 | Python | Codex · Claude Code |
| Hindsight | 46 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 59k | 今天 | Python | OpenAI API · Claude API |
| FlowCraft | 77 · 表现良好 | 命令行工具免费 + 模型费 | ★ 410 | 4 天前 | Go | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 描述了 agent 模式(mem0 init --agent)和 CLI 命令,但未明确权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属。SECURITY.md 提供了漏洞报告流程,但未涉及权限。pyproject.toml 列出了依赖,但未提供安全审计。因此,所有标准均得 1 分,因为存在部分证据但不够充分。
证据显示:README 和测试文件(如 cli/node/tests/agent-mode.test.ts)表明 CLI 行为一致,测试覆盖了帮助和错误处理。但依赖可用性未验证,失败消息在测试中有提及但未全面。因此,self_consistency 得 2 分,dependency_availability 得 1 分,failure_messages 得 2 分。
证据显示:README 描述了多种使用场景(AI 助手、客户支持、医疗等),并提供了库、自托管服务器、云平台和 CLI 的安装说明。能力边界在 README 中有所说明(如需要 LLM 和嵌入模型),但触发精度和环境影响未详细说明。因此,所有标准均得 2 分。
证据显示:README 提供了清晰的信息架构、安装说明、示例和许可证。命名稳定性未明确,已知限制未提及,版本变更日志未提供,但维护责任在 SECURITY.md 和 CI 工作流中有所体现。因此,information_architecture、install_notes、naming_stability、examples_and_faq、license、maintenance_responsibility 得 2 分,known_limitations 和 versioning_changelog 得 1 分。
证据显示:README 提供了使用示例,输出可用性良好。边际价值在于提供了记忆层功能,成本效益未明确但合理。因此,所有标准均得 2 分。
证据显示:README 中的基准测试声称有研究支持,但未提供可复现的细节。跨来源验证不足,事实与推断未明确分离。因此,所有标准均得 1 分。
- 静态审查无法验证实际运行行为,所有结论基于源代码和文档。
- 依赖安全未审计,建议检查依赖漏洞。
- 权限和数据处理细节未明确,需进一步审查。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
ts-v3.3.1 Mem0 Node SDK (v3.3.1)
发布说明摘录
Bug Fixes: - Config (OSS): ConfigManager no longer injects OpenAI's default baseURL and model into non-OpenAI LLM providers. The defaults now apply only to openai and openai_structured, so a DeepSeek, xAI, or other provider config without an explicit baseURL or model falls back to that provider's own defaults and env vars (DEEPSEEK_API_BASE, XAI_API_BASE, ...) instead of pointing at OpenAI with an OpenAI model name ([#7350](https://github.com/mem0ai/mem0/pull/7350)) …在 GitHub 查看 ↗ -
v2.2.1 Mem0 Python SDK (v2.2.1)
发布说明摘录
Bug Fixes: - Core: add() (Memory and AsyncMemory) no longer reports records the vector store rejected as successful ADD events. Only records that were actually inserted are written to history, entity-linked, and returned. If none of the extracted memories could be inserted, add() now raises VectorStoreError instead of returning memories that were never stored ([#7066](https://github.com/mem0ai/mem0/pull/7066)) …在 GitHub 查看 ↗ -
deepseek-plugin-v0.3.2 Mem0 DeepSeek Plugin (v0.3.2)
发布说明摘录
Improvements: - Search: The search_memory tool description no longer asks the agent to search proactively before answering anything that may depend on earlier context. It now asks for a search before repeating investigation or when earlier decisions, fixes, commands, or results may help ([#7420](https://github.com/mem0ai/mem0/pull/7420)) …在 GitHub 查看 ↗