名称: mem0-集成 描述: 为AI智能体集成Mem0记忆层。实现持久化、语义化的记忆,用于长期上下文保留和个性化。 允许工具: 读取, 搜索, 写入, 编辑, Bash, 全局查找, 网页获取
mem0-集成
将Mem0(原MemGPT)集成为AI智能体的通用记忆层。实现持久化记忆存储、跨记忆的语义搜索和个性化上下文检索。
概述
Mem0为AI应用提供智能记忆管理:
- 对话历史和事实的持久化存储
- 跨存储记忆的语义搜索
- 用户特定的记忆隔离
- 从对话中自动提取记忆
- 支持本地和云端部署
功能
记忆操作
- 从文本或对话中添加记忆
- 语义搜索记忆
- 按用户/智能体检索相关上下文
- 更新和删除记忆
- 获取带时间戳的记忆历史
记忆类型
- 对话记忆(对话历史)
- 事实记忆(提取的信息)
- 偏好记忆(用户偏好)
- 实体记忆(人物、地点、事物)
存储后端
- 本地SQLite/JSON存储
- 生产环境用PostgreSQL
- Qdrant向量数据库集成
- 云端托管的Mem0平台
集成模式
- LangChain记忆集成
- 直接API使用
- MCP服务器连接
- CrewAI和AutoGen兼容性
使用
基本设置
from mem0 import Memory
# 使用默认本地存储初始化
m = Memory()
# 或使用自定义配置
config = {
"vector_store": {
"provider": "qdrant",
"config": {
"host": "localhost",
"port": 6333,
}
},
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.1,
}
}
}
m = Memory.from_config(config)
添加记忆
# 从对话添加记忆
messages = [
{"role": "user", "content": "我更喜欢所有应用都用深色模式"},
{"role": "assistant", "content": "我会记住您更喜欢深色模式。"}
]
m.add(messages, user_id="user123")
# 从纯文本添加记忆
m.add("用户在Acme公司担任软件工程师", user_id="user123")
# 带元数据添加
m.add(
"相比JavaScript更偏好Python",
user_id="user123",
metadata={"category": "preferences", "confidence": 0.9}
)
搜索记忆
# 搜索相关记忆
results = m.search(
query="用户的偏好是什么?",
user_id="user123",
limit=5
)
for memory in results:
print(f"记忆: {memory['memory']}")
print(f"相关性: {memory['score']}")
print(f"创建时间: {memory['created_at']}")
获取所有记忆
# 获取用户的所有记忆
all_memories = m.get_all(user_id="user123")
# 按元数据过滤
filtered = m.get_all(
user_id="user123",
metadata={"category": "preferences"}
)
记忆历史
# 获取记忆随时间的变化
history = m.history(memory_id="mem_abc123")
for entry in history:
print(f"版本: {entry['version']}")
print(f"内容: {entry['memory']}")
print(f"更新时间: {entry['updated_at']}")
LangChain集成
from langchain_openai import ChatOpenAI
from mem0 import MemoryClient
# 初始化Mem0客户端
mem0_client = MemoryClient(api_key="your-api-key")
# 创建带记忆增强上下文的LLM
llm = ChatOpenAI(model="gpt-4")
def chat_with_memory(user_message: str, user_id: str) -> str:
# 检索相关记忆
memories = mem0_client.search(user_message, user_id=user_id, limit=5)
memory_context = "
".join([m["memory"] for m in memories])
# 构建带记忆上下文的提示词
system_prompt = f"""你是一个乐于助人的助手。
以下是你对该用户的记忆:
{memory_context}
使用此上下文来个性化你的回复。"""
# 生成回复
response = llm.invoke([
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_message}
])
# 从对话中存储新记忆
mem0_client.add(
[
{"role": "user", "content": user_message},
{"role": "assistant", "content": response.content}
],
user_id=user_id
)
return response.content
MCP服务器使用
# 在Claude中使用Mem0 MCP服务器
# 在claude_desktop_config.json中配置:
{
"mcpServers": {
"mem0": {
"command": "npx",
"args": ["-y", "@mem0/mcp-server"]
}
}
}
任务定义
const mem0IntegrationTask = defineTask({
name: 'mem0-集成-设置',
description: '为AI智能体配置Mem0记忆层',
inputs: {
storageBackend: { type: 'string', default: 'local' }, // 'local', 'qdrant', 'postgres', 'cloud'
vectorDimension: { type: 'number', default: 1536 },
embeddingModel: { type: 'string', default: 'text-embedding-3-small' },
memoryCategories: { type: 'array', default: ['facts', 'preferences', 'conversations'] },
userIsolation: { type: 'boolean', default: true }
},
outputs: {
configured: { type: 'boolean' },
memoryStats: { type: 'object' },
artifacts: { type: 'array' }
},
async run(inputs, taskCtx) {
return {
kind: 'skill',
title: `使用${inputs.storageBackend}后端配置Mem0`,
skill: {
name: 'mem0-集成',
context: {
storageBackend: inputs.storageBackend,
vectorDimension: inputs.vectorDimension,
embeddingModel: inputs.embeddingModel,
memoryCategories: inputs.memoryCategories,
userIsolation: inputs.userIsolation,
instructions: [
'验证存储后端可用性',
'配置嵌入模型和向量维度',
'设置记忆类别和元数据模式',
'如果启用则实现用户隔离',
'创建记忆添加/搜索/检索功能',
'使用样本数据测试记忆操作',
'为应用程序记录集成模式'
]
}
},
io: {
inputJsonPath: `tasks/${taskCtx.effectId}/input.json`,
outputJsonPath: `tasks/${taskCtx.effectId}/result.json`
}
};
}
});
适用流程
- 对话记忆系统
- 长期记忆管理
- 聊天机器人设计与实现
- 对话角色设计
外部依赖
- mem0ai Python包
- 向量数据库(可选:Qdrant, Pinecone)
- LLM提供商(OpenAI, Anthropic等)
- Mem0平台API密钥(用于云端)
参考资料
相关技能
- SK-MEM-001 zep-记忆集成
- SK-MEM-003 redis-记忆后端
- SK-MEM-004 记忆摘要
- SK-MEM-005 实体记忆提取
相关智能体
- AG-MEM-001 记忆架构师
- AG-MEM-002 用户画像构建器
- AG-MEM-003 语义记忆策展人