agentic_huge_data_base / wiki
页面 Mem0 · 10.2 高级模式·DeepWiki 中文全文译文

10.2 · 高级模式(Advanced Patterns)

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

项目Mem0 章节10.2 状态全文译文 模块检索、召回与索引、测试、发布与运维、记忆与上下文、界面与交互
源码线索
  • docs/cookbooks/companions/nodejs-companion.mdx
  • docs/cookbooks/essentials/building-ai-companion.mdx
  • docs/cookbooks/essentials/controlling-memory-ingestion.mdx
  • docs/cookbooks/essentials/entity-partitioning-playbook.mdx
  • docs/cookbooks/essentials/exporting-memories.mdx
  • docs/cookbooks/frameworks/eliza-os-character.mdx
  • docs/cookbooks/frameworks/llamaindex-multiagent.mdx
  • docs/cookbooks/integrations/healthcare-google-adk.mdx
  • docs/cookbooks/integrations/mastra-agent.mdx
  • docs/cookbooks/integrations/openai-tool-calls.mdx
模块标签
  • 检索、召回与索引
  • 测试、发布与运维
  • 记忆与上下文
  • 界面与交互
  • 图谱与关系

章节正文

高级模式

高级模式

相关源文件

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

  • docs/cookbooks/companions/nodejs-companion.mdx
  • docs/cookbooks/essentials/building-ai-companion.mdx
  • docs/cookbooks/essentials/controlling-memory-ingestion.mdx
  • docs/cookbooks/essentials/entity-partitioning-playbook.mdx
  • docs/cookbooks/essentials/exporting-memories.mdx
  • docs/cookbooks/frameworks/eliza-os-character.mdx
  • docs/cookbooks/frameworks/llamaindex-multiagent.mdx
  • docs/cookbooks/integrations/healthcare-google-adk.mdx
  • docs/cookbooks/integrations/mastra-agent.mdx
  • docs/cookbooks/integrations/openai-tool-calls.mdx
  • docs/cookbooks/operations/team-task-agent.mdx
  • docs/cookbooks/overview.mdx
  • docs/docs.json
  • docs/llms.txt
  • docs/open-source/python-quickstart.mdx
  • docs/platform/features/contextual-add.mdx
  • docs/platform/features/entity-scoped-memory.mdx
  • docs/platform/features/v2-memory-filters.mdx
  • examples/misc/fitness_checker.py
  • examples/misc/multillm_memory.py
  • examples/misc/personal_assistant_agno.py
  • examples/misc/personalized_search.py

本文档介绍了将 Mem0 集成到生产级 AI 应用中的高级使用模式。这些模式超越了基本的添加/搜索操作,展示了多智能体系统、会话管理和智能记忆处理等复杂架构。

多智能体记忆共享

在复杂系统中,多个专用智能体可以共享一个公共记忆层。这实现了协调行为,一个智能体捕获的知识可以立即被其他智能体使用,前提是它们共享相同的实体范围。

共享记忆架构

下图展示了不同智能体(例如,旅行专员和健康顾问)如何使用共享标识符与统一的 MemoryClient 进行交互。

Mem0 · 共享记忆架构 · 图 1
Mem0 · 共享记忆架构 · 图 1

来源: docs/cookbooks/essentials/entity-partitioning-playbook.mdx:54-70docs/cookbooks/frameworks/llamaindex-multiagent.mdx:177-182

实现:实体分区

为防止"记忆泄露"(例如,旅行智能体看到不应看到的医疗数据),开发者会结合使用 user_idagent_idapp_id

字段用途代码实体标识符
user_id按最终用户隔离数据user_id="traveler_cam"
agent_id按特定智能体角色隔离数据agent_id="chef_recommender"
app_id按应用或租户隔离数据app_id="concierge_app"
run_id按特定会话或线程隔离数据run_id="trip-2025-03"

来源: docs/cookbooks/essentials/entity-partitioning-playbook.mdx:32-38docs/platform/features/v2-memory-filters.mdx:35-40docs/platform/features/entity-scoped-memory.mdx:30-35

会话与运行管理

Mem0 中的会话管理通过 run_id 实现。这允许在长期用户档案中实现短期上下文隔离。

模式:会话清理

一种常见的高级模式是在任务完成后删除临时"工作记忆",同时保留长期用户事实。

# 会话清理 - 删除特定工单的临时对话
def close_ticket(ticket_id: str, user_id: str):
    client.delete_all(user_id=user_id, run_id=ticket_id)

来源: docs/cookbooks/essentials/entity-partitioning-playbook.mdx:190-191docs/platform/features/entity-scoped-memory.mdx:156-161

智能记忆入库

高级系统不会存储所有内容。它们使用自定义指令置信度阈值来控制哪些内容进入记忆存储。

入库控制架构
Mem0 · 入库控制架构 · 图 2
Mem0 · 入库控制架构 · 图 2

来源: docs/cookbooks/essentials/controlling-memory-ingestion.mdx:17-28docs/open-source/python-quickstart.mdx:81-86docs/platform/features/contextual-add.mdx:1-10

实现:过滤推测性内容

通过更新项目级别的 custom_instructions,可以防止 AI 将推测性陈述转化为"事实"。

instructions = """
仅存储已确认的医疗事实。
忽略:推测性内容(包含'可能'、'也许'、'我认为'等词语的表述)
"""
client.project.update(custom_instructions=instructions)

来源: docs/cookbooks/essentials/controlling-memory-ingestion.mdx:79-94docs/platform/features/custom-instructions.mdx:1-15

图增强检索

Mem0 支持一种混合方法,将语义向量搜索与基于图的实体链接相结合,以改善关系型知识检索。

实体链接流程
Mem0 · 实体链接流程 · 图 3
Mem0 · 实体链接流程 · 图 3

来源: docs/platform/features/advanced-retrieval.mdx:1-20docs/platform/features/v2-memory-filters.mdx:52-54

实现:带重排序的搜索

为提高高级检索的准确性,rerank=True 参数会在初始混合检索后触发二次评分过程。

matches = client.search(
    "有食物过敏提醒吗?",
    user_id="traveler-42",
    filters={"metadata": {"trip": "japan-2025"}},
)

来源: docs/platform/features/v2-memory-filters.mdx:163-173docs/open-source/features/reranker-search.mdx:1-10

结构化记忆导出

为满足合规性要求(如 GDPR)或进行迁移,Mem0 支持使用过滤器来限定数据范围,将记忆导出为结构化格式。

导出实现
  1. 过滤数据:定义范围(例如,特定的 app_id)。
  2. 触发导出:调用 client.get_memory_export(filters=...)
  3. 下载:获取生成的数据集以进行外部处理。

来源: docs/cookbooks/essentials/entity-partitioning-playbook.mdx:194-195docs/platform/features/memory-export.mdx:1-10

高级参数总结

特性实现实体用途
异步支持AsyncMemoryClient / AsyncMemory高并发环境
元数据过滤filters={"metadata": {"key": "val"}}检索中的字段级精度
自定义指令project.update(custom_instructions=...)领域特定的记忆分类
通配符过滤器filters={"user_id": "*"}跨所有非空实体查询
工具集成zodResponsesFunction将记忆接入 OpenAI 函数调用

来源: docs/platform/features/async-client.mdx:1-5docs/platform/features/v2-memory-filters.mdx:61-63docs/cookbooks/integrations/openai-tool-calls.mdx:113-117