mem0 架构与设计思路分析
mem0ai/mem0 是通用应用/agent 记忆层,而不是单一 coding-agent 插件。仓库同时包含 Python SDK、TypeScript SDK、自托管 server、OpenMemory dashboard/API、CLI、MCP server 和多 agent/editor 集成。2026 年 README 强调新算法从 UPDATE/DELETE 记忆维护转向 ADD-only fact accumulation,并通过 entity linking、BM25、semantic 和时间信号融合检索。
核心架构图
┌──────────────────── app / agent / CLI / MCP client ──────────────────────────┐
│ add/search/get/update/delete · user_id/agent_id/run_id scoped filters │
└───────────────────────────────┬───────────────────────────────────────────────┘
│
┌───────────────────────────────▼───────────────────────────────────────────────┐
│ mem0 Memory SDK (`mem0/memory/main.py`) │
│ validation · additive extraction · entity extraction · telemetry-safe config │
└───────────────┬───────────────────────────────┬───────────────────────────────┘
│ │
┌───────────────▼──────────────┐ ┌─────────────▼──────────────────────────────┐
│ LLM / embedder / reranker │ │ storage backends │
│ factories + provider configs │ │ vector stores · SQLite history · graph/db │
└───────────────┬──────────────┘ └─────────────┬──────────────────────────────┘
│ │
┌───────────────▼───────────────────────────────▼──────────────────────────────┐
│ retrieval fusion: semantic similarity · BM25 lemma tokens · entities · time │
└───────────────────────────────────────────────────────────────────────────────┘
模块分层
| 层/目录 | 责任 |
|---|---|
mem0/memory/main.py |
SDK 核心:参数校验、config 安全拷贝/脱敏、LLM 抽取、entity extraction、BM25 预处理、score/rank。 |
mem0/vector_stores/** |
多向量库适配层,是 mem0 保持通用性的关键。 |
openmemory/api/** |
自托管 API/dashboard 后端,包含 SQLite 模型、权限、配置、MCP server。 |
mem0-ts/** |
TypeScript SDK,与 Python SDK 形成双语言应用接入面。 |
关键数据流
- 写入时,app 传入 text/messages 和 filters,SDK 拒绝顶层
user_id/agent_id/run_id,要求进入 filters,避免 scope 混乱。 Memory.add通过 LLM 做 additive extraction,提取 facts,不再默认修改旧事实;entity extractor 生成实体链接信号。- 检索时 query 先被校验并 embedding;vector hit、BM25 keyword、entity matching、时间/metadata 信号进入
score_and_rank融合。
设计决策
- ADD-only 降低记忆更新/删除误判风险,代价是长期需要检索排序和冗余控制更强。
- 把 cloud/self-host/library 分成三层:library 适合原型,自托管补 dashboard/auth,cloud 承接高级产品能力。
- 多后端 factory 让它比 powermem 更轻数据库绑定,但一致性和运维语义也更分散。
对比定位
与 powermem 相比,mem0 更像云产品 + SDK 生态,后端中立;PowerMem 更强调 OceanBase 四路混合检索和数据库内聚。与 memsearch 相比,mem0 没有 Markdown truth source,而是 API/DB/向量层。与 agentmemory 相比,mem0 更偏应用用户记忆,不是 coding-agent 本地工作流。
相关链接
- GitHub 当前状态底稿:src-github-stars-backlog-current-state
- 选型地图:github-stars-backlog-implementation-map