Mem0 源码学习
为 AI Agent 提供可抽取、存储、检索和个性化使用的长期记忆层。这不是 API 速查表,而是一条可以重复走的源码路线:每天用 30 分钟,从一个真实相对路径出发,先用类比建立直觉,再把它接回整条运行链路。
开篇 · 这是个什么项目
Mem0 可以先想成一间智能体的长期记忆卡片盒。它的代码不是一堆孤立文件:入口接到需求,核心对象做判断,工具或模型完成工作,状态把结果交给下一个环节。
架构全景(动起来看)
发光扫过的每一层都是一次任务可能经过的站点。不同仓库命名不同,但「接入 → 编排 → 核心能力 → 资源」的责任边界很相似。
怎么使用这份教程
每天 30 分钟
6 讲,每讲先问问题,再给本质和大白话。
真实相对路径
所有路径都从项目根目录算,不把你的机器路径写进源码引用。
先验证再推理
每页都有可复制 bash 命令;文件版本变化时以本地实际内容为准。
可迁移方法
学会从入口、数据结构、循环和扩展点读任何 AI 项目。
认识记忆层问题
README.md:区分短上下文、会话记忆与长期个性化记忆。
Python 包与依赖
pyproject.toml:理解核心依赖与可选 LLM、向量库 extras。
配置模型
mem0/configs/base.py:阅读 MemoryConfig、记忆项和后端配置。
Memory 主入口
mem0/memory/main.py:定位 add、search、get、update、delete 的主流程。
消息规范化
mem0/memory/utils.py:学习消息、视觉消息与模型 JSON 输出解析。
事实抽取提示词
mem0/configs/prompts.py:理解 ADD-only 事实抽取与 Agent 上下文提示。
记忆抽象与存储
mem0/memory/base.py:学习 MemoryBase 的职责与扩展边界。
向量检索接口
mem0/vector_stores/base.py:理解插入、搜索、过滤和删除的统一能力。
Qdrant 具体实现
mem0/vector_stores/qdrant.py:将接口映射到真实向量数据库操作。
Embedding 适配
mem0/embeddings:理解 OpenAI、本地和云模型的向量化封装。
混合检索与评分
mem0/utils/scoring.py:学习 BM25、归一化和多信号融合。
实体提取
mem0/utils/entity_extraction.py:理解实体如何提升关联记忆的召回。
LLM 抽象
mem0/llms/base.py:学习模型提供商可替换的接口设计。
工厂模式
mem0/utils/factory.py:追踪 LLM、Embedding、重排器和向量库的装配。