✨ mem0 Memory System:构建AI的记忆体系
概述
mem0-mcp是由pinkpixel-dev创建的一个现代化记忆管理系统,专为AI应用而设计。这个系统以其灵活的提供商支持,能够与OpenAI、Ollama等进行无缝整合,且通过MCP协议实现AI代理的长期记忆存储。mem0可以作为简单易用的API接口,也可以以MCP服务器的形式直接嵌入AI应用中。
功能特性
多提供商支持
- 开放性选择:mem0支持多种AI提供商,包括OpenAI、Anthropic、Google、DeepSeek、OpenRouter以及本地使用的Ollama。
- 嵌入灵活性:用户可以选择在OpenAI、HuggingFace或Ollama之间进行嵌入操作。
本地存储与配置
- 本地化存储:mem0支持通过ChromaDB和SQLite进行本地化的记忆存储。
- 可配置性强:用户可以根据需求自定义数据目录、模型和参数。
记忆管理自主性
- 自动化管理:无需显式命令,系统能够自动提取、存储和检索用户信息。
- 用户隔离:支持多用户使用,每个用户均有独立的记忆空间。
双重集成方式
- 服务器集成方式(MCP):提供RESTful API,便于与支持MCP协议的应用集成。
- 直接库集成方式:可直接嵌入到应用中,免去单独服务器运行的负担。
安装说明
方法一:手动安装
-
克隆仓库并导航至目录:
git clone https://github.com/pinkpixel-dev/mem0-mcp.git cd mem0-mcp
-
安装依赖:
pip install -r requirements.txt
-
创建
.env
配置文件:cp .env.example .env
-
编辑
.env
文件并填写API密钥和设置(详见环境配置指南)。
方法二:使用安装脚本
项目提供了便捷的安装脚本,自动化设置流程:
./install.sh
安装脚本功能包括:
- 创建Python虚拟环境
- 安装所有依赖项
- 配置环境设置
- 提供带有视觉反馈的指导安装体验
可自定义安装选项:
# 快速非交互式安装
./install.sh --quick
# 指定自定义环境目录
./install.sh --env-dir ./custom_env
# 使用特定安装方法(pip, uv, 或 conda)
./install.sh --method pip
服务器运行
方法一:直接运行Python脚本
用默认设置启动服务器:
python server.py
若端口8000被占用,服务器将自动查找下一个可用端口。
或使用命令行参数自定义:
python server.py --host 127.0.0.1 --port 8080 --provider ollama --embedding-provider ollama --data-dir ./custom_memory_data
可选项:
# 禁用自动端口查找
python server.py --no-auto-port
# 开启开发自动重载
python server.py --reload
方法二:使用运行服务器脚本
借助提供的shell脚本可以更方便地运行服务器:
./run_server.sh
此脚本支持与Python脚本相同的选项:
# 自定义主机和端口
./run_server.sh --host 127.0.0.1 --port 8080
# 指定提供商
./run_server.sh --provider openai --embedding ollama
# 设置自定义数据目录
./run_server.sh --data-dir ~/mem0_data
方法三:支持MCP的应用程序启动器
如果需要与使用MCP协议的命令行应用程序整合,使用launch脚本:
python start_mem0_server.py
此脚本专为MCP集成设计,并以MCP客户端预期的格式输出服务器信息。支持与前述方法相同的选项:
# 自定义设置
python start_mem0_server.py --host 127.0.0.1 --port 8080 --provider ollama
# 静默模式(减少输出)
python start_mem0_server.py --quiet
集成方法
方法一:MCP服务器(用于MCP兼容应用)
MCP服务器提供RESTful API,任何支持机器通信协议(MCP)的应用程序均可使用。
API端点
端点 | 方法 | 描述 |
---|---|---|
/configure | POST | 配置记忆提供商 |
/memory/add | POST | 添加记忆 |
/memory/search | POST | 搜索记忆 |
/memory/chat | POST | 使用记忆进行对话 |
/memory/{memory_id} | GET | 通过ID获取记忆 |
/memory/{memory_id} | DELETE | 删除特定ID的记忆 |
/memories | DELETE | 清空所有记忆 |
/health | GET | 健康检查 |
/providers | GET | 列出可用提供商 |
使用客户端
from client import Mem0Client
# 初始化客户端
client = Mem0Client(base_url="http://localhost:8000")
# 配置记忆提供商
client.configure(
provider="openai",
embedding_provider="openai",
data_dir="./memory_data"
)
# 添加记忆
memory_id = client.add_memory(
content="这是需要记住的重要事实",
user_id="user123"
)
# 搜索记忆
results = client.search_memories(
query="重要的事实",
user_id="user123"
)
# 使用记忆环境进行聊天
response = client.chat(
message="你有什么重要的信息?",
user_id="user123"
)
print(response)
MCP兼容应用集成步骤
-
使用启动器脚本启动mem0 MCP服务器:
python start_mem0_server.py
-
脚本将以MCP客户端预期的格式输出服务器信息:
{"name": "mem0", "capabilities": ["memory"], "url": "http://0.0.0.0:8000", "version": "1.0.0"}
-
配置应用程序使用MCP服务器URL
-
通过应用程序界面使用记忆功能
详细步骤请参考MCP集成指南。
方法二:直接库集成(适用于任何应用)
无需运行单独的服务器,你可以直接将记忆系统嵌入到自己的应用中:
from mem0.memory import MemoryManager
from mem0.providers import OpenAIProvider, OllamaEmbeddingProvider
# 初始化记忆管理器
memory_manager = MemoryManager(
provider=OpenAIProvider(api_key="your_openai_api_key"),
embedding_provider=OllamaEmbeddingProvider(),
data_dir="./memory_data"
)
# 添加记忆
memory_id = memory_manager.add_memory(
content="这是需要记住的重要事实",
user_id="user123"
)
# 搜索记忆
results = memory_manager.search_memories(
query="重要的事实",
user_id="user123"
)
# 通过ID获取记忆
memory = memory_manager.get_memory(memory_id)
# 删除记忆
memory_manager.delete_memory(memory_id)
# 清除用户的所有记忆
memory_manager.clear_memories(user_id="user123")
详细步骤请参考直接集成指南。
自主记忆系统
mem0记忆系统有独特的自主记忆功能,其特点包括:
- 自动提取 用户交互中的关键信息。
- 无需命令地存储记忆。
- 必要时检索相关记忆以提供上下文。
- 通过注入记忆增强AI的响应能力。
这种自动化的记忆管理使得AI能够自然地记住用户细节,而不需要显式的记忆命令。
尝试自主记忆示例
仓库中包括一个自主记忆系统的示例:
python examples/autonomous_memory.py
此示例演示了:
- 个人信息的自动提取
- 记忆的上下文检索
- 自然地将记忆融入响应中
环境配置
mem0记忆系统可以通过环境变量或
.env
文件进行配置:# LLM提供商配置
MEM0_PROVIDER=openai
OPENAI_API_KEY=your_openai_api_key
# 嵌入提供商配置
MEM0_EMBEDDING_PROVIDER=openai
# 存储配置
MEM0_DATA_DIR=~/mem0_memories
# 服务器配置
MEM0_HOST=0.0.0.0
MEM0_PORT=8000
关于完整的配置选项,请参阅环境配置指南。
贡献
欢迎贡献!请随时提交Pull Request。
开源许可
本项目基于MIT许可证授权,详细信息请查看LICENSE文件。
致谢
由 Pink Pixel 倾情打造 | GitHub