Agent_Memory_Techniques
30个可运行Notebook,系统讲解AI Agent记忆系统:向量库、知识图谱、MemGPT、Le
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
30个可运行Notebook,系统讲解AI Agent记忆系统:向量库、知识图谱、MemGPT、Le
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你跟Claude聊了三轮,它突然问:"我们刚才讨论的是啥?"——这不是Claude笨,而是大多数AI应用根本没有记忆机制。每一轮对话都是"空白状态",模型只能靠上下文窗口里残留的信息来维持连贯性。当对话变长、用户需求变复杂,这种"金鱼记忆"就成了致命瓶颈。
Nir Diamant 在2024年推出的 Agent Memory Techniques 项目,就是为了解决这个问题而来。这个GitHub仓库用30个可直接运行的Jupyter Notebook,系统性地讲解了AI Agent记忆系统的所有主流实现方式——从最简单的"对话缓冲区"到生产级别的MemGPT、Letta、Zep、Graphiti集成,完整覆盖了短时记忆、长时记忆、认知架构三大类别。
项目链接:https://github.com/NirDiamant/Agent_Memory_Techniques
Stars: 542 | Forks: 73 | License: Apache 2.0
作者博客: https://diamantai.substack.com/
这个项目的核心价值在于系统性。作者不是简单罗列方案,而是按照认知科学的经典记忆模型(短时记忆→长时记忆→认知层)来组织内容,让读者理解每种技术的适用边界和演进逻辑。
AI Agent的"工作记忆"相当于人类的注意力范围——只能同时持有有限的信息。相关技术围绕如何在这个有限空间内高效管理对话历史:
| 技术 | 编号 | 核心思路 | 适用场景 |
|---|---|---|---|
| Conversation Buffer | #01 | 原封不动存储全部对话 | 原型开发,短期对话 |
| Sliding Window | #02 | 固定保留最近K轮对话 | 有明确上下文长度限制 |
| Summary Memory | #03 | 每轮对话后LLM自总结 | 长对话,只需保留要点 |
| Summary Buffer | #04 | 总结 + 最近2轮原始对话 | 既要长程上下文又要近期细节 |
| Token Buffer | #05 | 按token数硬截断 | 严格的token预算场景 |
真正的"记忆宫殿"从这里开始。当对话结束、用户重新发起会话时,长时记忆系统需要把之前积累的信息持久化存储,并在需要时精准召回。
向量数据库方案(#06 Vector Store Memory) 是目前最流行的方式:将对话片段转为高维向量,通过语义相似度搜索(cosine similarity)找到相关记忆。每次Agent需要回复时,先从向量库中检索top-K最相关的记忆,注入到prompt中。
# 典型的向量检索流程(notebook #06 核心代码)
from langchain_community.vectorstores import ChromaDB
from langchain_openai import OpenAIEmbeddings
# 存储记忆
vectorstore = ChromaDB.from_documents(docs, OpenAIEmbeddings())
# 检索最相关记忆
relevant = vectorstore.similarity_search(user_message, k=5)
知识图谱方案(#08 Knowledge Graph Memory) 更进一步:用NetworkX等图数据库存储实体和关系,支持多跳推理问答。例如"Alice上周跟Bob提到的那个项目进展如何?"——知识图谱可以追踪 Alice → mentioned → project → (last week) → discussed with → Bob 这样的复杂关系链。
项目后半部分(#24-#27)聚焦于生产级记忆框架,这些不是toy project,而是真实部署的AI产品所使用的系统:
最后四个 Notebook(#28-#30)从更高层次审视记忆系统:如何评估记忆效果(LoCoMo基准)、如何在生产环境组合多种记忆策略。这代表了当前AI Agent研究的前沿方向——不是某一种技术最好,而是根据任务类型动态组合才是最优解。
从 requirements.txt 可以看出,这个项目的技术栈以 LangChain 为核心:
# 依赖生态
langchain # Agent框架
langchain-community # 第三方集成(ChromaDB等向量库)
langchain-openai # OpenAI模型接口
langchain-anthropic # Claude模型接口
chromadb # 向量数据库
faiss-cpu # Facebook开源向量索引
sentence-transformers # 嵌入模型
mem0ai # Mem0框架
letta-client # Letta服务客户端
networkx # 知识图谱构建
值得注意的是,项目同时支持 Anthropic Claude 和 OpenAI GPT 两种模型,代码中两种SDK都有示例。这种双线支持让学习者可以对比不同模型在相同记忆策略下的表现差异。
从代码质量来看,30个Notebook都遵循统一的结构规范:
项目还包含 utils/ 目录下的验证工具(cell验证、import检查)和完整的 tests/ 目录,确保每个notebook的核心代码都能通过自动化测试。
这个项目的学习曲线设计得非常友好。对于初学者,作者提供了明确的学习路径建议:
每个notebook都有配套的 README.md 和 SVG架构图(images/diagrams目录下),用可视化的方式解释数据流向和组件关系。
不过需要注意:这个项目全部是本地Jupyter Notebook,没有Web界面、没有API服务、不支持Docker一键部署。要运行这些代码,你需要:
AI Agent的记忆系统是当前最活跃的研究领域之一。2024年下半年开始,MemGPT、Mem0、Letta等框架接连爆火,背后反映的是行业共识:没有记忆能力的Agent只是玩具,有记忆的Agent才能真正落地。
这个项目的价值在于降低了学习门槛。在此之前,如果你想系统学习知识图谱记忆,需要啃LangChain文档 + 看论文 + 自己摸索。现在,你只需要克隆仓库、pip install、逐个运行notebook,就能完整掌握一种技术的原理和实现细节。
从趋势来看,未来AI Agent的记忆系统会向多层组合架构演进:短时用Buffer、长时用向量库/知识图谱、跨会话用Mem0、推理时动态组合。这个项目的30种技术恰好覆盖了这个演进链条中的每一个节点。
一句话总结:Agent Memory Techniques 是目前最完整的AI Agent记忆系统学习资源,30个可运行Notebook从原理到生产全覆盖,适合所有想深入AI Agent开发的工程师和研究人员。唯一的遗憾是没有Web界面,必须本地运行——不过对于学习目的来说,这反而是最纯粹的方式。