agentic_huge_data_base / wiki
页面 Mem0 · 11 高级特性·DeepWiki 中文全文译文

11 · 高级特性(Advanced Features)

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

项目Mem0 章节11 状态全文译文 模块测试、发布与运维、检索、召回与索引、记忆与上下文、接口与服务契约
源码线索
  • mem0-ts/src/client/config.ts
  • mem0-ts/src/client/telemetry.types.ts
  • mem0-ts/src/client/tests/telemetry-aliasing.test.ts
  • mem0/__init__.py
  • mem0/configs/prompts.py
  • mem0/memory/main.py
  • mem0/memory/setup.py
  • mem0/memory/storage.py
  • mem0/memory/telemetry.py
  • mem0/memory/utils.py
模块标签
  • 测试、发布与运维
  • 检索、召回与索引
  • 记忆与上下文
  • 接口与服务契约
  • 模型调用与提供方适配

章节正文

高级特性

高级功能

相关源文件

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

  • mem0-ts/src/client/config.ts
  • mem0-ts/src/client/telemetry.types.ts
  • mem0-ts/src/client/tests/telemetry-aliasing.test.ts
  • mem0/__init__.py
  • mem0/configs/prompts.py
  • mem0/memory/main.py
  • mem0/memory/setup.py
  • mem0/memory/storage.py
  • mem0/memory/telemetry.py
  • mem0/memory/utils.py
  • 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
  • tests/test_telemetry_aliasing.py

本文档介绍了 Mem0 的高级功能和优化技术。这些功能支持领域特定的定制、性能调优、复杂过滤模式以及面向生产部署的批量操作。

有关基本记忆操作,请参阅记忆操作。有关提供方配置,请参阅配置系统。有关部署模型,请参阅部署模型

自定义提示词

Memory 类使用基于大语言模型(LLM)的提示词进行事实提取和冲突解决。自定义提示词会覆盖默认行为,以提高特定领域的准确性。

通过 MemoryConfig 配置

自定义提示词在初始化时通过 MemoryConfigcustom_instructions 字段设置。

from mem0 import Memory
from mem0.configs.base import MemoryConfig

config = MemoryConfig(
    custom_instructions="从患者对话中提取医学事实...",
)

m = Memory(config)

来源:mem0/configs/base.py:29-58, tests/test_main.py:48-52

事实提取提示词选择

Memory 中的 _add_to_vector_store 方法会根据配置和消息上下文选择提示词。在 v1.1 管线中,事实提取和记忆操作(添加/更新/删除)被合并为一次大语言模型(LLM)调用,使用 ADDITIVE_EXTRACTION_PROMPT

提示词选择逻辑

Mem0 · 事实提取提示词选择 · 图 1
Mem0 · 事实提取提示词选择 · 图 1

来源:mem0/memory/main.py:425-440, mem0/memory/utils.py:15-29, mem0/configs/prompts.py:62-114

单次请求自定义指令

add() 方法接受一个 prompt 参数,用于单次调用覆盖。在 _add_to_vector_store 执行期间,该参数会优先于全局配置中定义的 custom_instructions

来源:mem0/memory/main.py:254-261, tests/memory/test_main.py:93-100

详情请参阅自定义提示词

遥测与分析

Mem0 通过 PostHog 集成捕获匿名使用遥测数据,以改进库的功能。

遥测事件捕获

capture_event 函数(位于 mem0.memory.telemetry)记录操作。它使用由 MEM0_TELEMETRY_SAMPLE_RATE(默认值为 0.1)定义的采样机制来处理高频事件,而 mem0.init 等生命周期事件则始终触发。

遥测流程

Mem0 · 遥测事件捕获 · 图 2
Mem0 · 遥测事件捕获 · 图 2

来源:mem0/memory/telemetry.py:29-69, mem0/memory/main.py:233, mem0/memory/telemetry.py:186-195

隐私与控制
  • 标识符哈希处理process_telemetry_filters 函数确保用户提供的 ID 不会以明文形式发送。
  • 禁用:在环境变量中设置 MEM0_TELEMETRY=False 可以完全禁用 AnonymousTelemetry 客户端。

来源:mem0/memory/utils.py:200-215, mem0/memory/telemetry.py:14-22

详情请参阅遥测与分析

性能优化

Mem0 实现了多种模式,以确保记忆操作的低延迟和高吞吐量。

并发处理

Memory.add()Memory.search() 方法利用 ThreadPoolExecutor(或在 AsyncMemory 中使用 asyncio)来并行执行向量存储搜索和图存储检索,从而显著减少混合查询的总响应时间。

来源:mem0/memory/main.py:369-383, mem0/memory/main.py:693-709

存储管理
  • SQLiteManager:使用线程安全锁定和结构化迁移来管理本地历史记录和消息持久化,涉及 historymessages 表。
  • 重排序RerankerFactory 允许集成 Cohere 等提供方来优化向量搜索结果,确保高精度而无需过度获取数据。

来源:mem0/memory/storage.py:11-18, mem0/utils/factory.py:39, mem0/memory/storage.py:128-148

详情请参阅性能优化

高级过滤

Mem0 支持通过元数据过滤对记忆检索进行细粒度控制。

运算符与逻辑

系统通过底层的 VectorStoreBase 实现来处理过滤器。支持的比较运算符包括:

运算符语法示例作用
eq{"status": {"eq": "active"}}相等
ne{"type": {"ne": "temporary"}}不等
in{"tag": {"in": ["work", "home"]}}集合包含
gt / lt{"priority": {"gt": 5}}数值比较

来源:mem0/memory/main.py:780-795, mem0/memory/main.py:810-815

详情请参阅高级过滤

批量操作

对于大规模数据管理,MemoryClient(平台版)和 SQLiteManager(开源版)提供了批量处理能力。

批量修改
  • 平台版MemoryClient 提供 batch_update()batch_delete() 方法,可以在单个网络请求中修改多个记忆 UUID。
  • 开源版存储SQLiteManager 包含 batch_add_history() 方法,可以高效地持久化多个生命周期事件。

来源:mem0/client/main.py:510-534, mem0/client/main.py:536-560, mem0/memory/storage.py:193-195

详情请参阅批量操作

总结

Mem0 的高级功能为生产级 AI 代理提供了所需的控制能力:

  • 定制化:使用 custom_instructions 进行领域特定的事实提取。
  • 分析:通过 MEM0_TELEMETRY 监控使用情况,同时通过哈希处理保护隐私。
  • 速度:利用并发执行和 RerankerFactory 实现精确检索。
  • 控制:使用复杂的元数据过滤器和批量操作进行数据生命周期管理。