客户端 SDKs
客户端 SDK
相关源文件
本章引用的主要源码文件:
docs/api-reference/entities/delete-user.mdxdocs/api-reference/entities/get-users.mdxdocs/api-reference/events/get-event.mdxdocs/api-reference/events/get-events.mdxdocs/openapi.jsondocs/platform/quickstart.mdxmem0-ts/package.jsonmem0-ts/src/client/index.tsmem0-ts/src/client/mem0.tsmem0-ts/src/client/mem0.types.tsmem0-ts/src/client/telemetry.tsmem0-ts/src/client/tests/memoryClient.webhooks.test.tsmem0/client/main.py
本文档概述了 Mem0 为 Python 和 TypeScript/JavaScript 提供的客户端 SDK。内容涵盖安装方式、包结构、部署模式及基本使用模式。详细的 API 参考和语言特定功能,请参见 Python SDK 和 TypeScript/JavaScript SDK。
Mem0 客户端 SDK 提供两种部署模式:
- 平台模式:使用
MemoryClient连接到托管在https://api.mem0.ai的 Mem0 平台 API。mem0/client/main.py:97-97,mem0-ts/src/client/mem0.ts:104-104 - 开源模式:使用
Memory类配合自托管的存储组件在本地运行记忆系统。
安装
两种 SDK 都通过标准包管理器分发。
Python
pip install mem0ai
环境要求:Python 3.10 或更高版本。docs/platform/quickstart.mdx:14-14
TypeScript/JavaScript
npm install mem0ai
环境要求:Node.js 18 或更高版本。mem0-ts/package.json:129-131
TypeScript SDK 使用对等依赖(peer dependencies)来集成各个提供商(例如 openai、@qdrant/js-client-rest、better-sqlite3)。请仅安装特定配置所需的依赖。mem0-ts/package.json:108-128
包结构
两种 SDK 都将导出内容组织到平台模式和开源模式各自的命名空间中。
SDK 组织架构图
来源:mem0/client/main.py:62-62,mem0-ts/src/client/mem0.ts:81-81,mem0-ts/package.json:18-29
包导出
| 语言 | 导入路径 | 类 | 模式 |
|---|---|---|---|
| Python | mem0.MemoryClient | MemoryClient | 平台(同步) |
| Python | mem0.AsyncMemoryClient | AsyncMemoryClient | 平台(异步) |
| TypeScript | mem0ai | MemoryClient | 平台 |
| TypeScript | mem0ai/oss | Memory | 开源 |
来源:mem0/client/main.py:62-62,mem0-ts/package.json:18-29
部署模式对比
平台模式架构
在平台模式下,SDK 作为 Mem0 REST API 的轻量封装,使用特定端点进行记忆管理。
来源:mem0/client/main.py:144-144,mem0-ts/src/client/mem0.ts:216-216,docs/openapi.json:25-89
模式对比表
| 特性 | 平台模式 | 开源模式 |
|---|---|---|
| 认证 | API 密钥(令牌) | 本地配置 |
| 初始化 | MemoryClient(api_key="...") | Memory(config={...}) |
| 遥测 | capture_client_event | capture_event |
| 异步支持 | AsyncMemoryClient(Python)/ 原生(TypeScript) | AsyncMemory(Python)/ 原生(TypeScript) |
| 实体作用域 | user_id、agent_id、app_id、run_id | user_id、agent_id、app_id、run_id |
来源:mem0/client/main.py:33-33,mem0-ts/src/client/mem0.ts:39-48,docs/platform/quickstart.mdx:32-54,mem0/client/main.py:23-23
配置模式
平台模式配置
两种 SDK 都需要 API 密钥。初始化时会执行 ping() 操作来验证密钥并获取项目元数据,例如 org_id 和 project_id。mem0/client/main.py:140-153,mem0-ts/src/client/mem0.ts:214-249
Python:
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
TypeScript:
import MemoryClient from 'mem0ai';
const client = new MemoryClient({ apiKey: 'your-api-key' });
来源:mem0/client/main.py:75-126,mem0-ts/src/client/mem0.ts:102-122,docs/platform/quickstart.mdx:32-43
核心 API 一致性
两种 SDK 都提供一致的记忆操作接口。
通用方法
add(messages, ...):从消息历史中提取并存储事实。mem0/client/main.py:164-164,mem0-ts/src/client/mem0.ts:251-251search(query, ...):基于自然语言查询检索相关记忆。mem0/client/main.py:235-235,mem0-ts/src/client/mem0.ts:316-316get(memory_id):通过 UUID 检索特定记忆。mem0/client/main.py:202-202,mem0-ts/src/client/mem0.ts:291-291get_all()/getAll():列出记忆,支持可选过滤和分页。mem0/client/main.py:277-277,mem0-ts/src/client/mem0.ts:344-344update(memory_id, ...):手动更新记忆内容或元数据。mem0/client/main.py:335-335,mem0-ts/src/client/mem0.ts:265-265delete(memory_id):删除特定记忆。mem0/client/main.py:382-382,mem0-ts/src/client/mem0.ts:376-376history(memory_id):检索记忆的修订历史。mem0/client/main.py:417-417,mem0-ts/src/client/mem0.ts:393-393
实体作用域与过滤
操作支持通过 user_id、agent_id、app_id 和 run_id 进行作用域限定。在平台 SDK 中,这些参数必须严格通过 filters 对象或特定的关键字参数传递,以防止顶层参数污染。mem0/client/main.py:33-33,mem0-ts/src/client/mem0.ts:39-48
后续步骤
有关每个 SDK 的详细用法:
- Python SDK — 全面的 Python SDK 文档:
MemoryClient、AsyncMemoryClient、Memory、AsyncMemory - TypeScript/JavaScript SDK — TypeScript SDK 文档:
@mem0ai包、客户端和开源模式、类型定义 - Vercel AI SDK 提供商 — 文档说明
@mem0/vercel-ai-provider集成、createMem0、增强记忆的大语言模型(LLM)调用
来源:mem0/client/main.py:32-33,mem0-ts/src/client/mem0.ts:38-48