agentic_huge_data_base / wiki
页面 Mem0 · 1.1 系统架构·DeepWiki 中文全文译文

1.1 · 系统架构(System Architecture)

长期记忆与上下文管理 · 聚焦本章的模块关系、源码依据与实现要点。

项目Mem0 章节1.1 状态全文译文 模块模型调用与提供方适配、系统架构、检索、召回与索引、界面与交互
源码线索
  • AGENTS.md
  • CLAUDE.md
  • Makefile
  • README.md
  • docs/components/vectordbs/config.mdx
  • docs/components/vectordbs/dbs/chroma.mdx
  • docs/components/vectordbs/dbs/qdrant.mdx
  • docs/components/vectordbs/overview.mdx
  • docs/vibecoding.mdx
  • mem0/__init__.py
模块标签
  • 模型调用与提供方适配
  • 系统架构
  • 检索、召回与索引
  • 界面与交互
  • 配置治理

章节正文

系统架构

系统架构

相关源文件

本章引用的主要源码文件:

  • AGENTS.md
  • CLAUDE.md
  • Makefile
  • README.md
  • docs/components/vectordbs/config.mdx
  • docs/components/vectordbs/dbs/chroma.mdx
  • docs/components/vectordbs/dbs/qdrant.mdx
  • docs/components/vectordbs/overview.mdx
  • docs/vibecoding.mdx
  • mem0/__init__.py
  • mem0/configs/prompts.py
  • mem0/memory/main.py
  • mem0/memory/storage.py
  • mem0/memory/utils.py
  • mem0/utils/factory.py
  • mem0/vector_stores/configs.py
  • poetry.lock
  • pyproject.toml
  • skills/README.md
  • skills/mem0-integrate/LICENSE
  • skills/mem0-integrate/README.md
  • skills/mem0-integrate/SKILL.md
  • skills/mem0-test-integration/LICENSE
  • skills/mem0-test-integration/README.md
  • skills/mem0-test-integration/SKILL.md
  • tests/configs/test_prompts.py
  • tests/memory/test_main.py
  • tests/test_chatty_llm_parsing.py
  • tests/test_main.py
  • tests/test_memory.py
  • tests/test_proxy.py

本文档描述了 Mem0 的三层架构:客户端层(SDK 和 API)、核心记忆系统(编排和工厂)以及存储后端(向量数据库、图数据库和历史记录追踪)。

架构总览

Mem0 采用模块化的三层架构,将客户端接口、记忆编排和存储关注点分离。这种设计支持灵活的部署模式(平台托管与自托管),同时在不同编程语言之间保持一致的 API 表面。

架构分为以下三层:

  1. 客户端层:多种访问方式(Python SDK、TypeScript SDK、REST API、CLI 和框架集成)。
  2. 核心记忆系统:通过 MemoryAsyncMemory 类进行集中编排,并采用工厂模式实例化组件。
  3. 存储后端:可插拔的向量数据库、图数据库和历史记录追踪。
系统组件与代码实体

下图将自然语言中的系统概念映射到仓库中对应的代码实体。

Mem0 · 系统组件与代码实体 · 图 1
Mem0 · 系统组件与代码实体 · 图 1

来源mem0/memory/main.py:15-41mem0/utils/factory.py:30-41mem0/configs/base.py:15-16mem0/memory/storage.py:26-27

客户端层

客户端层提供了针对不同部署场景优化的主要访问模式。

Python SDK
  • 自托管(开源版)Memory mem0/memory/main.py:172-234AsyncMemory mem0/memory/main.py:1140-1160 类提供对基础设施的完全控制。用户通过 MemoryConfig 实例化它们。
  • 平台 APIMemoryClient 类通过 REST 与 Mem0 托管的 API 通信。
TypeScript SDK 和集成

TypeScript SDK(mem0ai npm 包)提供平台 API 访问。像 @mem0/vercel-ai-provider 这样的集成通过将记忆层包装到 Vercel AI SDK 中,实现增强记忆的大语言模型调用 README.md:111-115

CLI

mem0-cli 包允许用户直接从终端使用 mem0 addmem0 search 等命令管理记忆 README.md:140-148

来源mem0/memory/main.py:172-234README.md:100-148

核心记忆系统

Memory 类是开源版本的中心入口点。它编排了大语言模型(LLM)、嵌入向量生成器和存储后端之间的流程。

组件初始化

在初始化时,Memory 类使用各种工厂根据 MemoryConfig 实例化提供者 mem0/memory/main.py:173-234

  • 嵌入向量生成器EmbedderFactory.create() 创建 OpenAIEmbeddingHuggingFaceEmbedding 等实例 mem0/utils/factory.py:139-165
  • 向量数据库VectorStoreFactory.create() 初始化 QdrantPineconeChromaDB 等提供者 mem0/utils/factory.py:167-205
  • 大语言模型(LLM)LlmFactory.create() 设置用于事实提取和记忆处理的语言模型 mem0/utils/factory.py:30-137
  • 历史记录:初始化 SQLiteManager 以追踪记忆变更和版本管理 mem0/memory/main.py:187
记忆处理管线(v3 算法)

最新的记忆算法专注于 Token 高效的单次提取过程 README.md:45-62

Mem0 · 记忆处理管线(v3 算法) · 图 2
Mem0 · 记忆处理管线(v3 算法) · 图 2

来源mem0/memory/main.py:281-384README.md:56-60mem0/configs/prompts.py:18-22

组件工厂

工厂模式抽象了支持 60 多个提供者的复杂性。

LlmFactory

LlmFactory 将提供者字符串映射到实现类及其特定配置 mem0/utils/factory.py:37-56。它支持的提供者包括 OpenAI、Anthropic、Groq、Ollama 和 AWS Bedrock。

VectorStoreFactory

VectorStoreFactory 管理向量数据库的实例化。支持的提供者在 VectorStoreConfig 中定义 mem0/vector_stores/configs.py:13-38

类别提供者
云/托管Pinecone、Upstash、MongoDB、Azure AI Search
开源Qdrant、Chroma、Milvus、PGVector、Weaviate
本地/嵌入式FAISS、SQLite(通过扩展)

来源mem0/utils/factory.py:167-205mem0/vector_stores/configs.py:13-38

存储后端

Mem0 采用多级存储方法:

  1. 向量存储:存储事实的高维嵌入向量,用于语义检索。
  2. 图存储:存储实体和关系(例如,用户 -- 喜欢 -- Python),以支持关系推理 README.md:59
  3. 关系存储(SQLite)SQLiteManager mem0/memory/storage.py:26 存储所有记忆的元数据、原始文本和历史/审计追踪。

来源mem0/memory/storage.py:26-100mem0/memory/main.py:187-206

配置系统

配置通过 mem0/configs/ 中的 Pydantic 模型进行管理。

  • MemoryConfig:顶层配置对象 mem0/configs/base.py:15
  • VectorStoreConfig:验证提供者特定的设置并设置默认路径(例如,/tmp/qdrantmem0/vector_stores/configs.py:6-67
  • 校验:系统使用 model_validator 确保提供者特定的配置类(如 QdrantConfigOpenAIConfig)正确实例化 mem0/vector_stores/configs.py:40-67

来源mem0/configs/base.py:15-16mem0/vector_stores/configs.py:6-67