Mem0代理内存
](https://pypi.org/project/mem0-agent-memory/) ](https://pepy.tech/projects/mem0-agent-memory) ](https://pypi.org/project/mem0-agent-memory/) ](https://pypi.org/project/mem0-agent-memory/) 
一种模型上下文协议(MCP)服务器,为使用Mem0的AI代理提供持久内存功能。通过支持多个后端和LLM提供商,跨对话存储、搜索和管理上下文信息。
特性
核心能力:
- 🧠 持久性内存:跨会话存储和检索上下文信息
- 🔍 语义搜索:使用自然语言查询查找相关记忆
- 📚 文件摄入:导入PDF、DOCX、Markdown和文本文件作为知识库
- 🏷️ 元数据筛选:按类型、优先级、状态和自定义字段组织和筛选内存
- 📊 内存管理:具有历史跟踪和批量操作的完整CRUD操作
后端支持:
- 矢量存储:FAISS(本地)、Qdrant(嵌入式/服务器)、OpenSearch(AWS)、Mem0平台(云)
- LLM提供商:AWS基岩(克劳德、泰坦)、Ollama(当地)、LM工作室(当地)
- 图形存储:用于关系跟踪的KuzuDB集成(实验性)
开发人员经验:
- ⚡ 自动配置:从系统上下文中自动检测用户/代理
- 🎯 内存优先工作流:Kiro IDE集成的一个命令设置
- 🔧 性能调整:可配置的推理、相关性过滤和连接池
- 📦 会话分区:通过run_id隔离内存以进行多会话管理
快速开始
安装
pip install mem0-agent-memory基本设置
添加到MCP客户端配置中:
基罗: .kiro/settings/mcp.json 亚马逊Q CLI: ~/.aws/amazonq/mcp.json 或 .amazonq/mcp.json
{
"mcpServers": {
"mem0-agent-memory": {
"command": "uvx",
"args": ["mem0-agent-memory"],
"env": {
"AWS_ACCESS_KEY_ID": "your-key",
"AWS_SECRET_ACCESS_KEY": "your-secret",
"AWS_REGION": "us-west-2"
}
}
}
}启用内存优先工作流(仅限Kiro)
在您的第一次聊天会话中:
setup steering for memory这配置了AI在执行任务之前自动检查内存并存储重要结果。
配置
LLM提供商
通过设置适当的环境变量来选择LLM后端:
AWS Bedrock (Recommended)
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-west-2"
# Optional: Customize models
export BEDROCK_LLM_MODEL="us.anthropic.claude-3-5-haiku-20241022-v1:0"
export BEDROCK_EMBED_MODEL="amazon.titan-embed-text-v2:0"
export BEDROCK_MAX_TOKENS="1500" # Default: 1500演出:内置优化包括连接池(50个连接)、自适应重试和减少延迟设置。
Ollama (Local)
export OLLAMA_HOST="http://localhost:11434"
export OLLAMA_LLM_MODEL="llama3.2" # Default
export OLLAMA_EMBED_MODEL="nomic-embed-text" # Default
# Pull models first:
ollama pull llama3.2
ollama pull nomic-embed-text备注:对于Nomic嵌入,设置 NOMIC_USE_PREFIXES=true 以获得更好的搜索精度。
LM Studio (Local)
export LMSTUDIO_HOST="http://localhost:1234"
export LMSTUDIO_LLM_MODEL="llama-3.2-3b-instruct"
export LMSTUDIO_EMBED_MODEL="text-embedding-nomic-embed-text-v1.5"矢量存储后端
FAISS (Default - Local)
export FAISS_PATH="/path/to/.mem0/memory" # Optional, defaults to .mem0/memory最适合:开发、中小型数据集(\
Qdrant (Embedded or Server)
嵌入式模式(无Docker):
export QDRANT_PATH=".mem0/qdrant"服务器模式(生产):
export QDRANT_HOST="localhost"
export QDRANT_PORT="6333" # Optional好处:原生元数据过滤,复杂查询的性能更好,生产就绪的集群。 看 Qdrant设置指南 了解详情。
OpenSearch (AWS)
export OPENSEARCH_HOST="your-opensearch-endpoint"
export AWS_REGION="us-west-2"最适合:大型数据集(>10万内存)、复杂的过滤、企业部署。
Mem0 Platform (Cloud)
export MEM0_API_KEY="your-api-key"最适合:托管服务,无基础设施管理,内置功能。
其他设置
# User/Agent ID (optional - auto-detected if not set)
export MEM0_USER_ID="custom-user-id" # Defaults to system username
export MEM0_AGENT_ID="custom-agent-id" # Defaults to workspace name
export MEM0_RUN_ID="session-123" # Optional: session partitioning
# Performance
export MEM0_INFER_DEFAULT="true" # LLM inference for fact extraction
export MEM0_MIN_RELEVANCE_SCORE="0.7" # Search result threshold (0.0-1.0)
# Response Optimization (v1.3.0+)
export MEM0_VERBOSE="false" # Compact responses (default) vs verbose
export MEM0_MAX_RELATIONS="20" # Max graph relations in compact mode
# Nomic embeddings (Ollama only)
export NOMIC_USE_PREFIXES="true" # Improves search accuracy响应模式(v1.3.0+):
- 紧凑型(默认):仅返回基本字段(id、内存、元数据、分数)。每个内存的令牌使用量减少约55%。
- 冗长的:返回所有字段,包括哈希、时间戳、user_id、agent_id等。
- 图形关系:在两种模式下都保留,在紧凑模式下截断为20,以防止令牌膨胀
- 每次通话控制
verbose参数或全局MEM0_VERBOSE环境变量。
可用工具
核心业务
| 工具 | 说明 |
|---|---|
store_memory | 使用可选元数据和推理控制存储内存 |
search_memories | 具有相关性过滤的语义搜索 |
list_memories | 列出所有带分页的内存 |
get_memory | 按ID检索特定内存 |
get_recent_memories | 获取最近添加/更新的记忆 |
高级操作
| 工具 | 说明 |
|---|---|
update_memory | 直接更新现有内存(无LLM处理) |
search_by_metadata | 按元数据字段(类型、优先级、状态)过滤内存 |
get_memory_history | 查看内存的更改历史记录 |
get_memory_stats | 获取内存使用统计信息 |
批量操作
| 工具 | 说明 |
|---|---|
delete_memory | 删除单个内存(永久) |
delete_all_memories | 删除作用域的所有内存(永久) |
bulk_delete_memories | 通过过滤器删除多个内存(支持模拟运行) |
导入/导出
| 工具 | 说明 |
|---|---|
export_memories | 导出为JSON或Markdown格式 |
import_memories | 从JSON导出导入内存 |
ingest_documents | 将PDF、DOCX、MD、TXT文件作为知识库 |
公用事业
| 工具 | 说明 |
|---|---|
health_check | 验证后端连接 |
reset_memory | 重置整个内存存储(破坏性) |
setup_steering | 创建Kiro内存优先导向文件 |
有关详细的参数文档,请参阅MCP客户端中的工具说明。
用法示例
基本内存操作
# Store a memory
store_memory(
content="User prefers React over Vue for frontend development",
metadata={"type": "preference", "priority": "high"}
)
# Search memories
search_memories(query="React preferences", limit=5)
# Get recent memories
get_recent_memories(days=7, limit=10)
# Filter by metadata
search_by_metadata(type="preference", priority="high")文件摄入
# Ingest single file
ingest_documents(path="/path/to/manual.pdf")
# Ingest directory recursively
ingest_documents(
path="/path/to/docs",
recursive=True,
chunk_size=2048,
chunk_overlap=400,
file_metadata={"type": "documentation", "version": "2.0"}
)
# Search ingested documents
search_memories(query="how to configure authentication")会话分区
# Store memory for specific session
store_memory(
content="Current task: Implementing user authentication",
run_id="session-123",
metadata={"type": "task", "status": "in_progress"}
)
# Search within session
search_memories(query="authentication", run_id="session-123")
# Clean up session
delete_all_memories(run_id="session-123")性能优化
# Fast storage (no LLM inference)
store_memory(
content="Completed: API refactoring - 30% faster response times",
metadata={"type": "task_completion"},
infer=False # 5-10x faster
)
# Smart storage (with deduplication)
store_memory(
content="User mentioned they prefer TypeScript for type safety",
metadata={"type": "preference"},
infer=True # Extracts facts, prevents duplicates
)
# Compact response (default - saves tokens)
search_memories(query="React preferences", limit=5)
# Returns: {"memories": [{"id": "...", "memory": "...", "metadata": {...}}], "count": 5}
# Verbose response (full details)
search_memories(query="React preferences", limit=5, verbose=True)
# Returns: Full details including hash, timestamps, user_id, agent_id, etc.性能提示
存储速度:
- 使用
infer=false当您不需要重复数据删除时,写入速度可提高5-10倍 - 使用
infer=true(默认)用于重要信息,以防止重复
响应优化:
- 使用
verbose=false(默认)每个内存减少55%的令牌 - 紧凑模式仅返回:id、内存、元数据、分数
- 在紧凑模式下,图形关系被保留并截断为20
- 详细模式返回所有字段,包括时间戳、哈希值等。
- 集
MEM0_VERBOSE=true全球或使用verbose每次调用的参数 - 配置关系限制
MEM0_MAX_RELATIONS(默认值:20)
搜索优化:
- FAISS使用L2距离:得分越低=相似度越高
- 调整
MEM0_MIN_RELEVANCE_SCORE过滤不太相关的结果 - 使用元数据过滤进行精确查询
后端选择:
- FAISS:最适合小于10万内存、单用户、开发
- Qdrant:最适合元数据密集型查询、生产部署
- OpenSearch:最适合超过10万个内存,企业级
LLM提供者:
- 基岩:内置优化,生产就绪,速度最快
- 奥拉玛:有利于当地发展,注重隐私
- LM 工作室:具有UI的替代本地选项
高级功能
KuzuDB图形库(实验)
跟踪实体(人、公司、技术)之间的关系以及向量嵌入。看 docs/KUZU_GRAPH_STORE.md 了解详情。
已知限制
- 亚马逊Nova型号:现在通过bedrock_patch.py完全兼容
- 元数据筛选:mem0 v1.0.x仅支持隐式AND操作(平面字典)
- 平台特性:某些功能(custom_categories、expiration_date)仅在Mem0平台中可用
有关故障排除,请参阅 故障排除.md
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 提交拉取请求
看 贡献.md 作为指导方针。
文档
- Qdrant设置指南 -详细的Qdrant配置
- KuzuDB图形库 -关系跟踪(实验)
- 名义嵌入 -标称模型配置
- 故障排除 -常见问题和解决方案
引用
如果您在研究或工作中使用此项目,请引用:
@software{selvam_mem0_agent_memory_2025,
author = {Selvam, Arunkumar},
title = {Mem0 Agent Memory - MCP Server},
url = {https://github.com/arunkumars-mf/mem0-agent-memory},
version = {1.3.0},
year = {2025}
}看 引文.cff 更多格式。
许可证
MIT许可证-请参阅 许可证 了解详情。
