大模型的对话窗口有限,传统做法是把历史消息全塞进上下文。但这样会导致两个问题:一是 token 消耗暴增,成本直线上升;二是信息密度低,真正有用的上下文反而被稀释。当对话轮次增多,模型会遗忘关键事实,导致回答前后矛盾。
扩大上下文窗口只是延缓问题,并不能真正解决。AI 系统需要像人一样,能够记住用户偏好、提取关键信息、在合适的时候调取相关记忆。
这就是 Mem0 要解决的核心问题:为 AI Agent 提供一个智能的、可持续学习的记忆层。
一、定位
Mem0 和 RAG 有什么区别?RAG 从静态文档中检索信息,而 Mem0 管理的是动态的、个性化的交互记忆。
差异:
- 实体关系理解:Mem0 能跨多轮对话关联实体,理解“小明的妻子是小红,小红喜欢咖啡”这样的关系链
- 时间感知:自动标记记忆时间戳,优先使用最近的信息,逐渐淡化过时内容
- 上下文连续性:跨会话保持记忆,用户一个月后回来,系统依然记得他的偏好
- 自动更新:LLM 自动判断记忆需要增加、删除还是更新,无需手动维护
根据官方测试数据,在 LOCOMO 基准测试中,Mem0 比 OpenAI Memory 准确率高 26%,响应速度快 91%,token 使用量少 90%。
二、架构
Mem0 的记忆系统分为三个层次:
- 用户记忆(User Memory):跨会话的长期偏好,如“用户喜欢 Python,讨厌 Java”
- 会话记忆(Session Memory):单次对话的上下文,临时性的短期记忆
- Agent 记忆(Agent Memory):AI 助手自身的知识积累,如处理过的工单类型
每条记忆包含:内容本体、时间戳、标签(20 种自动分类)、自定义元数据(key-value 结构)。检索时支持按标签、时间、元数据过滤,精准定位需要的记忆片段。
流程:
用户输入 → 检索相关记忆 → 注入提示词 → LLM 生成回复 → 提取新记忆 → 存储/更新Mem0 用 LLM(默认 gpt-4.1-nano)对每次对话进行总结,自动决定是新增、更新还是删除记忆,这是它的“自我改进”能力。
三、快速上手
安装:
pip install mem0ai基础用法:
import os from mem0 import Memory os.environ["OPENAI_API_KEY"] = "your-api-key" # 初始化 memory = Memory() # 添加记忆 messages = [ {"role": "user", "content": "我叫张三,是Python开发者"}, {"role": "assistant", "content": "很高兴认识你,张三!"} ] memory.add(messages, user_id="user_001") # 搜索记忆 results = memory.search("用户职业", user_id="user_001") print(results) # 获取全部记忆 all_memories = memory.get_all(user_id="user_001")输出示例:
[ { "id": "mem_abc123", "memory": "用户名叫张三,职业是Python开发者", "user_id": "user_001", "created_at": "2025-01-15T10:30:00Z" } ]注意:Mem0 本身不提供对话能力,它是作为 LLM 的插件存在,需要手动触发记忆的存储和读取。
四、与 LangChain 集成
Mem0 天然适配 LangChain 生态,可以作为自定义工具嵌入 Agent。
# import ... # 初始化 llm = ChatOpenAI(model="gpt-4") memory = Memory() user_id = "user_001" def chat_with_memory(user_input): # 1. 检索相关记忆 memories = memory.search(user_input, user_id=user_id) context = "\n".join([m['memory'] for m in memories]) # 2. 构建提示词 messages = [ SystemMessage(content=f"用户记忆:{context}"), HumanMessage(content=user_input) ] # 3. LLM生成回复 response = llm.invoke(messages) # 4. 存储新记忆 memory.add([ {"role": "user", "content": user_input}, {"role": "assistant", "content": response.content} ], user_id=user_id) return response.content # 使用 print(chat_with_memory("我喜欢喝美式咖啡")) print(chat_with_memory("推荐一个咖啡品牌")) # 会记住用户喜欢美式 张三!"} ] memory.add(messages, user_id="user_001") # 搜索记忆 results = memory.search("用户职业", user_id="user_001") print(results) # 获取全部记忆 all_memories = memory.get_all(user_id="user_001")五、向量数据库配置
Mem0 支持 24+种向量数据库,可以根据场景选择。
Qdrant 配置:
from mem0 import Memory config = { "vector_store": { "provider": "qdrant", "config": { "host": "localhost", "port": 6333, "collection_name": "mem0_collection" } } } memory = Memory.from_config(config)Chroma 配置:
# import ... # 初始化LangChain向量库 embeddings = OpenAIEmbeddings() vector_store = Chroma( persist_directory="./chroma_db", embedding_function=embeddings, collection_name="mem0" # 必须使用这个名字 ) # 传递给Mem0 config = { "vector_store": { "provider": "langchain", "config": { "client": vector_store } } } memory = Memory.from_config(config)六、场景
1. 智能客服系统
客服机器人记住用户的历史工单、产品偏好、投诉记录,提供连贯的支持体验。用户三个月后再来咨询,系统依然记得上次的问题和解决方案。
2. 个性化学习助手
学习助手记录学生的知识盲区、学习进度、偏好的学习方式(视频/文字),动态调整教学策略。
3. 医疗健康助理
追踪患者的病史、用药记录、过敏信息,确保每次问诊都能获取完整的健康档案,避免重复询问。
4. 生产力工具
记住用户的工作习惯、常用文档、项目偏好,自动推荐相关资源,减少重复劳动。
这些场景的共同特点是:需要跨会话的长期记忆、个性化内容生成、上下文连续性。
七、多 LLM 支持
Mem0 不绑定特定 LLM,支持 OpenAI、Anthropic、Groq、本地模型等。这种灵活性让你可以根据成本、延迟、隐私需求选择合适的模型。
八、总结
Mem0 让 AI Agent 具备了“长期记忆”能力,不再依赖有限的上下文窗口。它的核心价值在于:自动化的记忆管理、智能的信息提取、跨会话的连续性。与 LangChain、向量数据库的深度集成,让它成为构建个性化 AI 应用的必备工具。
无论是客服系统、学习助手还是医疗应用,只要涉及多轮对话和个性化需求,Mem0 都能显著提升用户体验。从安装到集成只需 5 分钟,云托管和自部署两种模式满足不同场景需求。如果你正在构建 AI Agent,Mem0 值得一试。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。