革命性的AI记忆技术
Mem0通过智能记忆层,让AI助手拥有持久记忆能力,实现真正的个性化交互体验
多级记忆系统
无缝保持用户、会话和代理状态,提供自适应个性化体验,让AI真正理解用户需求。
卓越性能表现
比OpenAI Memory准确度高26%,响应速度快91%,token使用减少90%,显著降低成本。
开发者友好
直观的API设计,跨平台SDK支持,完全托管服务选项,几分钟内即可集成。
广泛兼容性
支持OpenAI、LangGraph、CrewAI等主流框架,Python和JavaScript双语言支持。
多场景应用
适用于客户支持、医疗保健、教育培训、生产力工具等多个领域的AI应用。
企业级安全
SOC 2和HIPAA合规,支持本地部署、私有云和Kubernetes,确保数据安全。
技术架构与生态
基于Python生态构建,支持多种LLM和向量数据库,提供灵活的部署选项
🐍 核心技术栈
🤖 支持的LLM
🗄️ 向量数据库
🔗 框架集成
快速开始
选择适合你的安装方式,几分钟内即可为你的AI应用添加记忆能力
1. 安装Mem0
pip install mem0ai
2. 基础使用示例
from openai import OpenAI
from mem0 import Memory
# 初始化
openai_client = OpenAI()
memory = Memory()
def chat_with_memories(message: str, user_id: str = "default_user") -> str:
# 检索相关记忆
relevant_memories = memory.search(query=message, user_id=user_id, limit=3)
memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories["results"])
# 生成回复
system_prompt = f"基于用户记忆回答问题。\n用户记忆:\n{memories_str}"
messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": message}]
response = openai_client.chat.completions.create(model="gpt-4o-mini", messages=messages)
assistant_response = response.choices[0].message.content
# 创建新记忆
messages.append({"role": "assistant", "content": assistant_response})
memory.add(messages, user_id=user_id)
return assistant_response
1. 安装Mem0
npm install mem0ai
2. JavaScript使用示例
import { Memory } from 'mem0ai';
const memory = new Memory();
async function chatWithMemories(message, userId = 'default_user') {
// 检索相关记忆
const relevantMemories = await memory.search({
query: message,
user_id: userId,
limit: 3
});
// 处理记忆并生成回复
const memoriesStr = relevantMemories.results
.map(entry => `- ${entry.memory}`)
.join('\n');
// 添加新记忆
await memory.add([
{ role: 'user', content: message },
{ role: 'assistant', content: response }
], userId);
return response;
}
1. 注册Mem0平台
访问 Mem0平台 注册账户,获取API密钥
2. 配置API密钥
import os
from mem0 import Memory
# 设置API密钥
os.environ['MEM0_API_KEY'] = 'your-api-key-here'
# 使用托管服务
memory = Memory.from_config({
"provider": "mem0",
"config": {
"api_key": os.environ['MEM0_API_KEY']
}
})
核心架构深度解析
深入了解Mem0的内部工作机制和技术实现
记忆提取引擎
使用先进的LLM技术从对话中智能提取关键事实,支持多种记忆类型:个人偏好、重要细节、计划意图等。
向量化存储系统
采用高维向量空间存储记忆,支持语义相似性搜索,实现快速准确的记忆检索。
图数据库集成
可选的图数据库支持,建立记忆之间的关联关系,实现更复杂的记忆网络。
会话管理系统
多级会话标识符支持,灵活的元数据管理,确保记忆的正确归属和高效检索。
高级配置与定制
深度定制Mem0以满足特定需求
🎛️ 记忆配置选项
from mem0 import Memory
# 高级配置示例
config = {
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.1,
"max_tokens": 1500,
"enable_vision": True, # 支持图像记忆
"vision_details": "high"
}
},
"embedder": {
"provider": "openai",
"config": {
"model": "text-embedding-3-large",
"embedding_dims": 3072
}
},
"vector_store": {
"provider": "qdrant",
"config": {
"collection_name": "mem0_collection",
"host": "localhost",
"port": 6333,
"embedding_model_dims": 3072
}
},
"graph_store": {
"provider": "neo4j",
"config": {
"url": "bolt://localhost:7687",
"username": "neo4j",
"password": "password"
}
}
}
memory = Memory.from_config(config)
🔧 自定义记忆提取
# 自定义提取提示词
custom_prompt = """
你是一个专业的记忆提取器,专门从医疗对话中提取关键信息。
重点关注:
1. 症状描述和持续时间
2. 过敏史和药物反应
3. 家族病史
4. 生活习惯和偏好
5. 治疗计划和预约
从以下对话中提取相关医疗信息:
"""
# 使用自定义提示词
result = memory.add(
messages=[
{"role": "user", "content": "我对青霉素过敏,最近头痛持续一周了"},
{"role": "assistant", "content": "我会记住您的过敏史,建议您预约神经科检查"}
],
user_id="patient_001",
prompt=custom_prompt,
metadata={"type": "medical_consultation", "department": "neurology"}
)
📊 记忆分析与管理
# 获取用户所有记忆
all_memories = memory.get_all(user_id="user_123")
# 更新特定记忆
memory.update(
memory_id="mem_456",
data="用户偏好素食,不吃乳制品"
)
# 删除过期记忆
memory.delete(memory_id="mem_789")
# 搜索特定类型记忆
health_memories = memory.search(
query="健康相关",
user_id="user_123",
filters={"type": "health_info"},
limit=10
)
# 记忆历史版本管理
memory.history(memory_id="mem_456")
应用场景与实战案例
Mem0在各个行业和领域的深度应用
智能医疗助手
为医疗机构提供患者记忆管理,跟踪症状、过敏史、治疗偏好,实现个性化医疗服务。
个性化教育平台
记录学生学习进度、知识掌握情况、学习偏好,提供自适应学习体验。
智能浏览器自动化
为浏览器自动化工具提供记忆能力,记住用户操作模式和偏好设置。
企业客服系统
构建具有记忆能力的客服机器人,记住客户历史问题、偏好和解决方案。
电商推荐引擎
记录用户购买行为、浏览偏好、评价反馈,提供精准的商品推荐。
企业知识管理
为企业AI助手提供组织记忆,记录会议内容、决策过程、项目进展。
API文档与集成指南
完整的API参考和集成示例
🔧 核心API方法
添加新的记忆到系统中,支持自动事实提取和记忆推理
参数:
messages- 消息内容(字符串或消息列表)user_id- 用户标识符(可选)agent_id- 代理标识符(可选)run_id- 运行标识符(可选)metadata- 元数据字典(可选)infer- 是否启用智能推理(默认True)
基于语义相似性搜索相关记忆
参数:
query- 搜索查询字符串user_id- 用户标识符(可选)limit- 返回结果数量限制(默认100)filters- 过滤条件字典(可选)threshold- 相似度阈值(可选)
获取指定用户的所有记忆
参数:
user_id- 用户标识符(可选)agent_id- 代理标识符(可选)run_id- 运行标识符(可选)limit- 返回结果数量限制(可选)
更新现有记忆内容
参数:
memory_id- 记忆唯一标识符data- 新的记忆内容
删除指定记忆
参数:
memory_id- 记忆唯一标识符
🔗 框架集成示例
LangGraph集成
from langgraph.graph import StateGraph
from mem0 import Memory
memory = Memory()
def memory_node(state):
# 检索相关记忆
memories = memory.search(
query=state["query"],
user_id=state["user_id"],
limit=5
)
# 将记忆添加到状态
state["memories"] = memories
return state
def response_node(state):
# 基于记忆生成回复
context = "\n".join([m["memory"] for m in state["memories"]])
# ... 生成回复逻辑
return state
# 构建图
graph = StateGraph()
graph.add_node("memory", memory_node)
graph.add_node("response", response_node)
graph.add_edge("memory", "response")
CrewAI集成
from crewai import Agent, Task, Crew
from mem0 import Memory
memory = Memory()
# 创建具有记忆能力的代理
agent = Agent(
role="Personal Assistant",
goal="帮助用户管理日常任务",
backstory="我是一个具有记忆能力的个人助手",
tools=[
# 自定义记忆工具
lambda query: memory.search(query, user_id="user_123"),
lambda data: memory.add(data, user_id="user_123")
]
)
task = Task(
description="根据用户历史偏好推荐餐厅",
agent=agent
)
crew = Crew(agents=[agent], tasks=[task])
AutoGen集成
import autogen
from mem0 import Memory
memory = Memory()
class MemoryAgent(autogen.ConversableAgent):
def __init__(self, name, **kwargs):
super().__init__(name, **kwargs)
self.memory = memory
def generate_reply(self, messages, sender, **kwargs):
# 检索相关记忆
last_message = messages[-1]["content"]
memories = self.memory.search(
query=last_message,
user_id=sender.name,
limit=3
)
# 将记忆添加到上下文
context = f"相关记忆: {memories}"
enhanced_messages = messages + [{"role": "system", "content": context}]
# 生成回复
reply = super().generate_reply(enhanced_messages, sender, **kwargs)
# 存储新记忆
self.memory.add(
[{"role": "user", "content": last_message},
{"role": "assistant", "content": reply}],
user_id=sender.name
)
return reply
性能优化与最佳实践
充分发挥Mem0的性能潜力
性能优化策略
- 批量操作:使用批量添加减少API调用次数
- 缓存策略:本地缓存频繁访问的记忆
- 索引优化:合理设置向量数据库索引
- 并发控制:使用连接池管理数据库连接
- 内存管理:定期清理过期和无用记忆
安全与隐私
- 数据加密:敏感记忆内容加密存储
- 访问控制:基于角色的记忆访问权限
- 数据脱敏:自动识别并脱敏敏感信息
- 审计日志:记录所有记忆操作日志
- 合规性:支持GDPR、HIPAA等合规要求
监控与分析
- 性能指标:监控响应时间、吞吐量
- 记忆质量:评估记忆提取准确性
- 使用统计:分析记忆访问模式
- 错误追踪:记录和分析系统错误
- 容量规划:预测存储和计算需求
扩展性设计
- 水平扩展:支持多实例部署
- 负载均衡:智能分发请求负载
- 分片策略:大规模数据分片存储
- 异步处理:后台异步处理重型任务
- 弹性伸缩:根据负载自动调整资源