agentic_huge_data_base / wiki
页面 Mem0 · 4.1 Graph 记忆总览·DeepWiki 中文全文译文

4.1 · Graph 记忆总览(Graph Memory Overview)

长期记忆与上下文管理 · 本章是 Mem0 DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Mem0 章节4.1 状态全文译文 模块图谱与关系、系统架构、检索、召回与索引、测试、发布与运维
源码线索
  • docs/components/vectordbs/dbs/neptune_analytics.mdx
  • docs/core-concepts/memory-operations/add.mdx
  • docs/core-concepts/memory-operations/delete.mdx
  • docs/core-concepts/memory-operations/search.mdx
  • docs/core-concepts/memory-operations/update.mdx
  • docs/core-concepts/memory-types.mdx
  • docs/open-source/configuration.mdx
  • docs/open-source/overview.mdx
  • docs/platform/advanced-memory-operations.mdx
  • docs/platform/features/platform-overview.mdx
模块标签
  • 图谱与关系
  • 系统架构
  • 检索、召回与索引
  • 测试、发布与运维
  • 界面与交互

中文译文

Graph 记忆总览(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/4.1-graph-memory-overview
翻译时间:2026-05-27T08:44:56.395Z
翻译模型:deepseek-chat
原文字符数:9692
项目:Mem0 (mem0)

---

图谱记忆概述

相关源文件

以下文件被用作生成此 Wiki 页面的上下文:

  • docs/components/vectordbs/dbs/neptune_analytics.mdx
  • docs/core-concepts/memory-operations/add.mdx
  • docs/core-concepts/memory-operations/delete.mdx
  • docs/core-concepts/memory-operations/search.mdx
  • docs/core-concepts/memory-operations/update.mdx
  • docs/core-concepts/memory-types.mdx
  • docs/open-source/configuration.mdx
  • docs/open-source/overview.mdx
  • docs/platform/advanced-memory-operations.mdx
  • docs/platform/features/platform-overview.mdx
  • docs/platform/overview.mdx
  • examples/graph-db-demo/neptune-example.ipynb
  • mem0/configs/enums.py
  • mem0/configs/vector_stores/neptune.py
  • mem0/configs/vector_stores/supabase.py
  • mem0/vector_stores/neptune_analytics.py
  • tests/vector_stores/test_neptune_analytics.py

图谱记忆是 Mem0 核心向量记忆系统的可选扩展,它将知识表示为实体(节点)及其关系(边)构成的图谱。这种方式支持结构化知识表示、复杂关系查询以及理解不同信息片段之间的语义关联。

关于图存储提供商(Neo4j、Kuzu、Memgraph、Neptune)的配置详情,请参见 4.2 图存储提供商。关于实体提取和关系建立的具体实现,请参见 4.3 实体与关系提取

什么是图谱记忆

图谱记忆通过将信息存储在图数据库结构中,补充了 Mem0 基于向量的记忆系统。向量记忆擅长语义相似性搜索,而图谱记忆则捕获实体之间的显式关系,支持诸如"谁认识谁"或"用户 X 购买了哪些产品"这类查询。

系统使用大语言模型(LLM)自动从对话文本中提取实体(人物、地点、事物)及其关系,然后将它们作为节点和边存储在图数据库中。每个实体节点包含一个用于相似性匹配和去重的向量嵌入。

主要特性:

  • 以实体为中心:将离散实体(人物、地点、概念)存储为节点。
  • 关系感知:捕获显式关系(认识、工作于、喜欢)作为边。
  • 混合存储:将图结构与向量嵌入结合用于节点匹配。
  • 自动提取:基于大语言模型(LLM)的工具调用进行实体和关系识别。
  • 可选功能:需要安装 graph 额外依赖并进行特定配置。

来源:docs/core-concepts/memory-operations/add.mdx:46-48docs/platform/advanced-memory-operations.mdx:67-68examples/graph-db-demo/neptune-example.ipynb:11-13

图谱记忆与向量记忆对比

下图展示了单条信息的不同处理路径。

对比:自然语言到代码实体空间
graph TB
    subgraph "自然语言输入"
        Input["'Alice works at Google'"]
    end

    subgraph "向量记忆管线(代码空间)"
        VM_Main["Memory.add()"]
        VM_LLM["基于LLM的事实提取"]
        VM_Store["VectorStoreBase.insert()"]

        Input --> VM_Main
        VM_Main --> VM_LLM
        VM_LLM --> VM_Store
    end

    subgraph "图谱记忆管线(代码空间)"
        GM_Main["MemoryGraph._add_to_graph()"]
        GM_Tools["LLM工具调用"]
        GM_Store["GraphStoreBase.add_node_relationships()"]

        Input --> GM_Main
        GM_Main --> GM_Tools
        GM_Tools --> GM_Store
    end
方面向量记忆图谱记忆
结构扁平嵌入向量节点和边
查询语义相似性搜索关系遍历
去重文本相似度/冲突解决通过嵌入向量进行实体匹配
关系隐式(通过嵌入向量)显式(通过边)
使用场景"查找相似记忆""查找实体 X 的所有关系"
存储向量数据库(Qdrant、Pinecone 等)图数据库(Neo4j、Neptune 等)

来源:docs/core-concepts/memory-operations/add.mdx:40-49docs/core-concepts/memory-operations/search.mdx:32-45examples/graph-db-demo/neptune-example.ipynb:11-13

架构与集成

系统组件

Memory 类充当编排器。当配置中启用了图谱功能时,它会在向量和图谱存储后端之间进行协调。

graph TB
    subgraph "核心编排"
        Main["Memory(开源版)/ MemoryClient(平台版)"]
    end

    subgraph "图谱子系统"
        MG["MemoryGraph / GraphStoreFactory"]
        GStore["NeptuneGraph / Neo4jGraph / KuzuGraph"]
    end

    subgraph "支持工具"
        LLM["LlmFactory"]
        Embed["EmbedderFactory"]
        Hist["History(SQLiteManager / Postgres)"]
    end

    Main -->|"初始化"| MG
    MG -->|"使用"| GStore
    MG -->|"提取"| LLM
    MG -->|"匹配"| Embed
    Main -->|"审计追踪"| Hist

来源:docs/open-source/overview.mdx:66-85docs/open-source/configuration.mdx:59-83examples/graph-db-demo/neptune-example.ipynb:131-160

并行执行模型

当用户调用 add() 时,Mem0 会同时处理向量和图谱更新。

  1. 向量路径:从消息中提取事实,并存储在配置的 VectorStore 中。
  2. 图谱路径:将相同的消息传递给图谱子系统进行实体/关系提取。
  3. 合并:最终响应同时返回向量记忆结果和图谱关系。

来源:docs/core-concepts/memory-operations/add.mdx:40-49docs/platform/advanced-memory-operations.mdx:111-113

实体与关系模型

节点属性

图中的每个实体节点都包含用于范围限定和检索的属性。

属性描述
name节点的唯一标识符(例如"Alice")。
user_id用于隔离不同用户之间的图谱。
agent_id用于隔离不同智能体之间的图谱。
embedding实体名称的向量表示,用于去重。

来源:docs/core-concepts/memory-operations/add.mdx:19-25docs/core-concepts/memory-operations/search.mdx:19-24examples/graph-db-demo/neptune-example.ipynb:11-13

关系格式

关系通常以三元组格式提取:source -- RELATIONSHIP -- destination。例如,Alice -- WORKS_AT -- Google

来源:docs/platform/advanced-memory-operations.mdx:111-113examples/graph-db-demo/neptune-example.ipynb:11-13

基本用法

初始化

通过配置提供商启用图谱记忆。

# 使用 Amazon Neptune 作为图谱记忆的示例
config = {
    "graph_store": {
        "provider": "neptune",
        "config": {
            "endpoint": "neptune-graph://my-graph-identifier",
        },
    },
    "llm": {
        "provider": "aws_bedrock",
        "config": {"model": "us.anthropic.claude-3-7-sonnet-20250219-v1:0"}
    }
}
from mem0 import Memory
m = Memory.from_config(config)

来源:examples/graph-db-demo/neptune-example.ipynb:131-160docs/open-source/configuration.mdx:59-83

添加与搜索
# 添加记忆会同时触发向量和图谱提取
m.add("我更喜欢东京的精品酒店", user_id="morgan")

# 搜索会检索语义相似的事实以及图谱关系
results = m.search("Morgan 对酒店有什么偏好?", user_id="morgan")

来源:docs/platform/advanced-memory-operations.mdx:73-86docs/platform/advanced-memory-operations.mdx:122-129

数据流:提取与存储

提取过程利用大语言模型(LLM)识别事实,然后进一步处理为实体和关系。

sequenceDiagram
    participant M as 记忆编排器
    participant MG as 图谱模块
    participant LLM as LLM 提供商
    participant GS as 图存储(例如 Neptune)

    M->>MG: 从消息中提取
    MG->>LLM: 识别实体与关系
    LLM-->>MG: 提取的三元组
    MG->>GS: 合并节点和关系
    GS-->>MG: 成功
    MG-->>M: 图谱元数据

来源:docs/core-concepts/memory-operations/add.mdx:40-49docs/platform/advanced-memory-operations.mdx:111-113examples/graph-db-demo/neptune-example.ipynb:11-13

会话范围限定与隔离

图谱记忆遵循与向量记忆相同的范围限定规则。使用 user_idagent_idrun_id 等过滤器,确保在一个用户上下文中搜索"Alice"时不会返回另一个用户上下文中的"Alice"。

来源:docs/core-concepts/memory-operations/search.mdx:62-64docs/core-concepts/memory-operations/search.mdx:159-175docs/core-concepts/memory-types.mdx:50-57