当前位置:首页>python>mem0,一个持久的 Python 库

mem0,一个持久的 Python 库

  • 2026-10-11 07:50:25
mem0,一个持久的 Python 库

大家好,我是木木。

今天给大家分享一个持久的 Python 库,mem0。

mem0

AI Agent 用一次很好玩,但真正进入工作流后,用户往往希望它“记得我”:记得偏好、历史、上下文、长期目标和之前踩过的坑。mem0 做的就是这层记忆能力。

它不是简单把聊天记录拼回 Prompt,而是把记忆抽取、存储、检索和用户维度组织起来。对于连续使用的 Agent,这个概念非常好讲,也很容易落到真实产品里。

项目地址:https://github.com/mem0ai/mem0

官方文档:https://docs.mem0.ai

三大特点

长期记忆

可以围绕用户、会话、Agent 或应用保存长期上下文,让智能体不必每次从零开始。

检索可用

记忆通常会进入向量检索或混合检索流程,按当前任务召回相关片段,而不是把所有历史都塞进上下文。

产品友好

用户偏好、行为历史、业务状态和个性化配置都可以作为记忆层的一部分,适合做连续体验。

最佳实践

安装方式:python -m pip install mem0ai==2.0.2

下面的 Demo 不连接 Mem0 云服务,也不调用外部 LLM。它用配置类和 Mock Embedding 展示记忆层的核心结构。

功能一:定义记忆层配置

这段代码解决什么问题:先把向量库、embedding、LLM 和历史数据库位置描述清楚。真实项目里,这些配置应该放在本地配置文件或密钥系统里,不要硬塞进 Prompt。

importwarningswarnings.filterwarnings('ignore')frommem0.configs.baseimportMemoryConfigfrommem0.vector_stores.configsimportVectorStoreConfigfrommem0.embeddings.configsimportEmbedderConfigfrommem0.llms.configsimportLlmConfigconfig=MemoryConfig(vector_store=VectorStoreConfig(provider='qdrant',config={'collection_name':'agent_memory','embedding_model_dims':1536}),embedder=EmbedderConfig(provider='openai',config={'model':'text-embedding-3-small'}),llm=LlmConfig(provider='openai',config={'model':'gpt-4o-mini'}),history_db_path='data/mem0-history.db',)print('vector store:',config.vector_store.provider)print('embedder:',config.embedder.provider)print('llm provider:',config.llm.provider)print('history db:',config.history_db_path)

记忆层最怕“先跑起来再说”。上线前要先想清楚哪些内容能记、记多久、谁能读、用户如何删除,以及哪些内容绝对不能进入记忆。

功能二:把记忆文本转成向量

这段代码解决什么问题:记忆要被检索,通常需要先变成向量。这里用 Mock Embedding 演示形状,不访问任何外部 API。

importwarningswarnings.filterwarnings('ignore')frommem0.embeddings.mockimportMockEmbeddingsembedder=MockEmbeddings()texts=['用户喜欢简洁的文章开头','用户正在写 Python 库日更']fortextintexts:vector=embedder.embed(text)print(text[:12],'-> dim',len(vector),'head',vector[:3])print('embedder:',type(embedder).__name__)print('no external api:',True)

真实使用时,embedding 模型会影响记忆召回效果。中文场景尤其要测试相似表达、同义词、简称和跨轮对话里的召回质量。

环境与版本信息

  • Demo 环境:Windows 11,Python 3.11
  • 本文安装的 PyPI 包名:mem0ai
  • 本文安装的 mem0ai 版本:2.0.2
  • 当前包要求 Python:>=3.10,<4.0
  • 关键依赖版本:qdrant-client 1.17.1、openai 2.35.1
  • 官方定位:Long-term memory for AI Agents

高级功能

这段代码解决什么问题:记忆不能只按“相似”召回,还要有用户、应用、租户、权限等过滤条件。否则很容易把别人的记忆或不相关业务上下文带进回答。

importwarningswarnings.filterwarnings('ignore')memories=[{'user_id':'u-1','app':'writer','text':'喜欢文章开头不要太长','score':0.92},{'user_id':'u-1','app':'agent','text':'需要记录工具调用权限','score':0.81},{'user_id':'u-2','app':'writer','text':'偏好英文标题','score':0.77},]query_user='u-1'query_app='writer'matched=[mforminmemoriesifm['user_id']==query_userandm['app']==query_app]matched.sort(key=lambdaitem:item['score'],reverse=True)print('matched:',len(matched))foriteminmatched:print(item['user_id'],item['app'],item['score'],item['text'])print('memory keys:',', '.join(memories[0].keys()))

记忆层是强能力,也有强风险。越是个性化,越要重视权限、删除、审计和用户可见性。

适用场景

  • 你在做长期使用的 Agent,希望它记住用户偏好和历史上下文
  • 你需要按用户、应用、组织或任务维度召回记忆
  • 你想把聊天记录、偏好、事实和业务状态整理成可检索的长期记忆

不适用场景

  • 只是一次性问答,不需要跨会话上下文
  • 业务涉及高敏隐私,但还没有权限、删除和审计机制
  • 你只是想把所有历史消息无脑拼回 Prompt

上线检查

  1. 明确哪些信息可以写入记忆,哪些必须禁止。
  2. 检索时必须加用户、租户、应用和权限过滤。
  3. 提供记忆查看、删除、过期和审计机制,避免黑盒记忆。

总结

mem0 适合给 AI Agent 补长期记忆层。它让智能体从“一次性聊天”走向“连续协作”,但也要求我们认真设计权限、隐私和召回边界。记得住很重要,记得安全更重要。

最新文章

随机文章