agentic_huge_data_base / wiki
页面 Mem0 · 10.1 基础用量·DeepWiki 中文全文译文

10.1 · 基础用量(Basic Usage)

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

项目Mem0 章节10.1 状态全文译文 模块安装与启动、记忆与上下文、检索、召回与索引、界面与交互
源码线索
  • 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/integrations/healthcare-google-adk.mdx
  • docs/cookbooks/integrations/openai-tool-calls.mdx
  • docs/cookbooks/overview.mdx
  • docs/core-concepts/memory-operations/add.mdx
  • docs/core-concepts/memory-operations/delete.mdx
  • docs/core-concepts/memory-operations/search.mdx
模块标签
  • 安装与启动
  • 记忆与上下文
  • 检索、召回与索引
  • 界面与交互
  • 模型调用与提供方适配

章节正文

基础用量

基本用法

相关源文件

以下文件为本 Wiki 页面的生成提供了上下文:

  • 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/integrations/healthcare-google-adk.mdx
  • docs/cookbooks/integrations/openai-tool-calls.mdx
  • docs/cookbooks/overview.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/docs.json
  • docs/llms.txt
  • docs/open-source/configuration.mdx
  • docs/open-source/overview.mdx
  • docs/open-source/python-quickstart.mdx
  • docs/platform/advanced-memory-operations.mdx
  • docs/platform/features/contextual-add.mdx
  • docs/platform/features/entity-scoped-memory.mdx
  • docs/platform/features/platform-overview.mdx
  • docs/platform/features/v2-memory-filters.mdx
  • docs/platform/overview.mdx

本页面提供 Mem0 的技术示例,涵盖简单的添加/搜索模式以及基本的 CRUD 操作。你将学习如何安装 Mem0、初始化客户端,以及在平台版和开源版(OSS)部署中管理记忆生命周期。

安装

Mem0 提供 Python 和 JavaScript/TypeScript 的 SDK。

Python
pip install mem0ai
JavaScript/TypeScript
npm install mem0ai

来源:docs/llms.txt:16-17docs/open-source/python-quickstart.mdx:27-31

部署架构

Mem0 提供两种部署模型。虽然它们在概念模型上相似,但在基础设施和数据处理方式上有所不同。

系统流程:平台版 vs. 开源版

下图展示了自然语言操作在两种环境中对应的代码实体。

"自然语言空间到代码实体空间"

Mem0 · 系统流程:平台版 vs. 开源版 · 图 1
Mem0 · 系统流程:平台版 vs. 开源版 · 图 1

主要区别:

  • 平台版:使用 MemoryClient docs/llms.txt:27-32。基础设施(向量存储、图数据库、重排序器)由服务端管理 docs/platform/overview.mdx:13-15
  • 开源版:使用 Memory docs/llms.txt:87-92。通过 Memory.from_config() 控制整个技术栈 docs/cookbooks/essentials/building-ai-companion.mdx:94-120

来源:docs/llms.txt:3-12docs/platform/overview.mdx:9-15docs/open-source/overview.mdx:7-16

基本设置

平台版设置

MemoryClient 用于连接托管的 Mem0 API。

from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")

来源:docs/llms.txt:30-32docs/core-concepts/memory-operations/add.mdx:61-63

开源版设置

Memory 类在本地运行。默认情况下,它会查找 OPENAI_API_KEY 来驱动信息提取和嵌入向量生成。

from mem0 import Memory
# 默认配置:OpenAI LLM + Qdrant 向量存储
m = Memory()

默认开源版组件:

  • 大语言模型(LLM):使用 OpenAI gpt-4o-mini(部分文档中曾称为 gpt-5-mini)进行事实提取 docs/open-source/python-quickstart.mdx:82-82
  • 嵌入向量:使用 OpenAI text-embedding-3-small(1536 维)docs/open-source/python-quickstart.mdx:83-83
  • 向量存储:Qdrant(磁盘存储,路径为 /tmp/qdrantdocs/open-source/python-quickstart.mdx:84-84
  • 历史记录:SQLite,路径为 ~/.mem0/history.db docs/open-source/python-quickstart.mdx:85-85

来源:docs/llms.txt:90-92docs/open-source/python-quickstart.mdx:33-39docs/open-source/overview.mdx:66-72

核心 CRUD 操作

1. 添加记忆

add() 方法会触发一个管线:信息提取 -> 冲突解决 -> 存储 docs/core-concepts/memory-operations/add.mdx:39-49

"记忆入库的数据流"

Mem0 · 1. 添加记忆 · 图 2
Mem0 · 1. 添加记忆 · 图 2

示例(Python 开源版):

messages = [
    {"role": "user", "content": "我是 Alex。我喜欢篮球和游戏。"},
    {"role": "assistant", "content": "你好 Alex!我会记住这些信息。"}
]
m.add(messages, user_id="alex")

来源:docs/open-source/python-quickstart.mdx:42-49docs/core-concepts/memory-operations/add.mdx:26-49

2. 搜索记忆

search() 将查询转换为向量并执行相似度搜索。

示例(Python 平台版):

# 使用元数据过滤器进行搜索
results = client.search(
    "Alex 的兴趣爱好是什么?",
    filters={"user_id": "alex"}
)

来源:docs/core-concepts/memory-operations/search.mdx:53-60docs/open-source/python-quickstart.mdx:53-57

3. 更新与删除

可以通过 ID 更新记忆,也可以通过 ID 或过滤器删除记忆。

操作方法作用范围
更新update(memory_id, data)指定记忆 ID docs/llms.txt:46-46
删除delete(memory_id)单条记录 docs/core-concepts/memory-operations/delete.mdx:48-49
删除全部delete_all(user_id="alice")按用户/代理/运行过滤 docs/core-concepts/memory-operations/delete.mdx:108-116

警告delete_all 现在需要显式指定过滤器。要清空整个项目,请使用通配符:client.delete_all(user_id="*", agent_id="*", app_id="*", run_id="*") docs/core-concepts/memory-operations/delete.mdx:135-157

来源:docs/core-concepts/memory-operations/delete.mdx:10-24docs/llms.txt:102-107

会话范围与过滤器

Mem0 使用标识符来隔离数据。在平台版中,这些标识符通过 filters 字典传递。在开源版中,它们通常是顶级关键字参数(不过 v3 版本正在与平台版语法对齐)。

参数代码实体描述
user_idfilters={"user_id": "..."}长期用户偏好 docs/core-concepts/memory-operations/add.mdx:24-24
agent_idfilters={"agent_id": "..."}特定 AI 代理的记忆 docs/core-concepts/memory-operations/delete.mdx:112-112
run_idfilters={"run_id": "..."}限定到特定执行或会话 docs/core-concepts/memory-operations/delete.mdx:115-115
metadatametadata={"category": "..."}用于过滤的自定义键值对 docs/core-concepts/memory-operations/add.mdx:115-115

来源:docs/core-concepts/memory-operations/add.mdx:19-25docs/core-concepts/memory-operations/search.mdx:75-82

实战示例:AI 伴侣循环

一个常见的模式是:在调用大语言模型(LLM)之前先搜索上下文,然后存储新的交互。

def chat(user_input, user_id):
    # 1. 检索相关记忆
    memories = client.search(user_input, filters={"user_id": user_id}, top_k=5)
    context = "\n".join(m["memory"] for m in memories["results"])

    # 2. 使用记忆上下文调用大语言模型(LLM)
    response = openai_client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": f"你是一名教练。记忆信息:{context}"},
            {"role": "user", "content": user_input}
        ]
    ).choices[0].message.content

    # 3. 存储对话内容
    client.add([
        {"role": "user", "content": user_input},
        {"role": "assistant", "content": response}
    ], user_id=user_id)

    return response

来源:docs/cookbooks/essentials/building-ai-companion.mdx:63-84docs/cookbooks/essentials/building-ai-companion.mdx:124-147