llm-wiki wiki · sources 2026-06-12

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 形成双语言应用接入面。

关键数据流

  1. 写入时,app 传入 text/messages 和 filters,SDK 拒绝顶层 user_id/agent_id/run_id,要求进入 filters,避免 scope 混乱。
  2. Memory.add 通过 LLM 做 additive extraction,提取 facts,不再默认修改旧事实;entity extractor 生成实体链接信号。
  3. 检索时 query 先被校验并 embedding;vector hit、BM25 keyword、entity matching、时间/metadata 信号进入 score_and_rank 融合。

设计决策

对比定位

powermem 相比,mem0 更像云产品 + SDK 生态,后端中立;PowerMem 更强调 OceanBase 四路混合检索和数据库内聚。与 memsearch 相比,mem0 没有 Markdown truth source,而是 API/DB/向量层。与 agentmemory 相比,mem0 更偏应用用户记忆,不是 coding-agent 本地工作流。

相关链接