【免费下载链接】Agent_Memory_Techniques
Agent memory for LLMs: 30 runnable Jupyter notebooks covering conversation buffers, vector stores, knowledge graphs, episodic and semantic memory, MemGPT, Mem0, Letta, Zep, Graphiti, LoCoMo benchmarks, and production patterns.
Agent_Memory_Techniques 是一个专门讲解 **AI 记忆技术(Agent memory)**的开源项目,包含 30 个可直接运行的 Jupyter Notebook,覆盖 LLM 智能体的短期记忆、向量库、知识图谱、Mem0、Letta、Zep 等生产级模式。本文重点拆解其中最具"人类味"的三大认知架构机制:Memory Routing(记忆路由)、Temporal Memory(时间记忆)与 Forgetting & Decay(遗忘与衰减),帮你理解如何让 AI 的记忆系统更聪明地存、更准地取、更优雅地忘。
🧠 为什么 AI 总"失忆"?三大人类记忆机制
大多数 AI 智能体有个通病:它会把所有东西一股脑塞进同一个记忆库。于是出现了三个典型问题:
- 找不到:查"上周发生了什么"时,把事实和流程搅在一起,检索质量下降;
- 信错时间:把三个月前的旧信息当成最新事实回答用户;
- 存太多:记忆库无限膨胀,噪声淹没关键信息,成本持续上涨。
认知科学早就给出答案:人类的记忆并不是"硬盘",而是有分类、有时间戳、会遗忘的动态系统。这个项目把同样的机制搬进了 LLM Agent:
| 机制 | 模拟人类行为 | 解决的核心问题 |
|---|---|---|
| Memory Routing 🚦 | 大脑把不同记忆分门别类存放 | 该存哪、该查哪 |
| Temporal Memory 🕐 | "最近发生的"印象更深 | 信息新旧、时间线 |
| Forgetting & Decay 🍂 | 用不上的记忆自然消退 | 存储膨胀、检索噪声 |
下面逐一拆解。
一、Memory Routing:给 AI 记忆装一个"交通指挥"
想象一座图书馆:历史书在西区、食谱在中区、维修手册在东区。好的图书管理员不会满馆乱找,而是先判断你问的是哪类问题,再走向正确的区域。Memory Routing 就是 Agent 的"图书管理员"。
它如何工作?
根据 17_memory_routing/README.md 的 TL;DR 描述:
- 分类:每条读/写操作先经过一个 LLM 分类器,判断内容类型——是"经历"(episodic)、"事实"(semantic)还是"操作步骤"(procedural);
- 写入路由:新内容被写入对应的专业记忆库,各存其位;
- 读取路由:提问"昨天发生了什么?"只查情景记忆库;问"我们的限流策略是什么?"只查语义记忆库;
- 兜底策略:当路由不确定时,同时搜索所有库并合并去重结果。
对应的人类类比:你记住"妈妈过敏"(事实)、"第一次见妈妈"(经历)和"怎么煮咖啡"(技能)时,大脑确实用的是不同的记忆系统。
值得权衡的代价
- 每次读写都会触发一次 LLM 分类调用,增加200~500ms延迟;
- 如果分类器判错类型,数据会被静默存进错误的库,导致"该找的地方找不到"。
适合场景:多记忆库并存的模块化架构、个人助理类 Agent。更多实现细节见 memory_routing.ipynb。
二、Temporal Memory:让 AI 记住"时间"这个维度
Temporal Memory 的思路像一本写满日期的笔记本:当有人问"项目进展如何"时,你不会通读整本笔记,而是直接翻到最新一页。
核心能力:时间戳 + 新鲜度加权
根据 18_temporal_memory/README.md 的说明,每条记忆都携带created_at、event_time、last_accessed等结构化时间字段,检索时叠加一层时间衰减评分:
例如半衰期设为 7 天时,一条上周的记忆在同等相关度下,得分只有今天记忆的一半。
它支持四种检索模式:
| 模式 | 举例 |
|---|---|
| 标准查询 | 综合语义相关度 + 新鲜度打分 |
| 时间范围查询 | "过去 24 小时的对话有哪些?" |
| "As of" 查询 | "还原 3 月 1 日那天 Agent 知道什么" |
| 时间线构建 | 把相关事件按时间顺序串成叙事 |
这对项目跟踪、客服机器人、市场监控类 Agent 至关重要——因为事实会变。
一个容易踩的坑
"越新越好"并不总是对的:数学公式、用户姓名这类常青事实不该被衰减惩罚。项目建议给事实打上 stable / volatile 标签,让稳定事实绕过衰减(详见其 FAQ 部分)。完整实现与一个"30 天项目跟踪"示例见 temporal_memory.ipynb。
三、Forgetting & Decay:故意遗忘,反而是更好的记忆
人类神经科学的一个反直觉结论:遗忘不是记忆系统的故障,而是它的自适应功能。Forgetting & Decay 机制正是把这一原则引入 AI。
它如何工作?
根据 19_forgetting_and_decay/README.md 的说明,机制分五步:
- 初始强度:每条记忆按重要性获得一个初始强度分;
- 指数衰减:随时间推移强度自然下降,公式来自 1885 年 Ebbinghaus 遗忘曲线
S(t) = S₀ · e^(-λt); - 访问强化:每次被检索到的记忆都会"回血",类似间隔重复复习——越常用的记忆活得越久;
- 阈值修剪:低于阈值的记忆被软删除(归档)或硬删除;
- 存储压力调节:记忆库接近容量上限时,自动提高修剪力度。
用一个厨房类比:从不扔过期食品的储藏室,最终你会花更多时间找调料而不是做饭。目标不是丢失信息,而是维持记忆库的高信噪比。
必须设置的安全阀
衰减对"年龄"一视同仁,所以关键信息(用户过敏史、法律合规约束)需要设置pinned(置顶保护)标记豁免衰减。典型实现中,半衰期根据领域在 1~30 天之间调整。完整的DecayEngine、ForgettingMemoryStore与"记忆随模拟时间淡出"演示见 forgetting_and_decay.ipynb。
四大机制速查表:何时用哪个?
| 你的需求 | 推荐机制 | 记忆会被删除吗? |
|---|---|---|
| 多库并存,不知道该查哪个库 | Memory Routing | 否 |
| 信息会过期,需"时间线 / 当时状态"查询 | Temporal Memory | 否(只降权) |
| 存储成本敏感,要自动清理低价值记忆 | Forgetting & Decay | 是(可归档) |
| 合规审计要求保留全部数据,但仍优先新结果 | Temporal Memory | 否 |
项目官方文档还给出了更完整的横向对比:docs/comparison.md 覆盖全部 30 种技术,docs/learning_path.md 提供了进阶学习路径(17 Memory Routing → 19 Forgetting & Decay 正位于"认知架构"进阶路线上)。
🚀 快速上手:跑起来这三个 Notebook
# 克隆仓库 git clone https://gitcode.com/gh_mirrors/ag/Agent_Memory_Techniques cd Agent_Memory_Techniques # 安装依赖(OpenAI、LangChain、ChromaDB 等) pip install -r requirements.txt三个 Notebook 均标注中级难度、约 35 分钟可完成,建议先阅读 docs/topics.md 了解术语表,或直接打开笔记本文档:
- 17_memory_routing/README.md + memory_routing.ipynb
- 18_temporal_memory/README.md + temporal_memory.ipynb
- 19_forgetting_and_decay/README.md + forgetting_and_decay.ipynb
🎯 小结
让 AI 记忆更像人类,关键不在"存得更多",而在存得有序、取得有准、忘得有度:
- Memory Routing解决"存哪查哪",是多库架构的交通指挥;
- Temporal Memory解决"新旧之辨",用时间戳和衰减打分让检索更贴近当下;
- Forgetting & Decay解决"膨胀与噪声",用遗忘曲线让记忆库自我清洁。
三者可以叠加使用,共同构成一个可持续运行的认知记忆架构。如果你对更完整的版图感兴趣,下面这张图展示了项目全部 30 种 AI 记忆技术的分类——从短期上下文管理到生产级部署模式,每一类都有对应可运行的示例:
【免费下载链接】Agent_Memory_Techniques
Agent memory for LLMs: 30 runnable Jupyter notebooks covering conversation buffers, vector stores, knowledge graphs, episodic and semantic memory, MemGPT, Mem0, Letta, Zep, Graphiti, LoCoMo benchmarks, and production patterns.
相关推荐
一条 bsk 命令截出 10 万像素长页面:BrowserSkill 三种模式安装、开拍与排错指南
一条 bsk 命令截出 10 万像素长页面:BrowserSkill 三种模式安装、开拍与排错指南 要把一个已登录的超长数据页做成完整存档,靠
人工智能AI 应用AI 技能浏览器控制dsh-plugin大麦抢票自动化完整指南:从环境搭建到首次运行只需 10 分钟
大麦抢票自动化完整指南:从环境搭建到首次运行只需 10 分钟 还在开售瞬间刷新到手指抽筋,却只看到"已售罄"三个字吗? ticket purchase 是一个基
GUI 自动化RPADLSS Swapper 安装与版本管理教程:不更新游戏也能切换 DLSS 版本
DLSS Swapper 安装与版本管理教程:不更新游戏也能切换 DLSS 版本 DLSS Swapper 是一款免费开源的 Windows 工具,专门做游戏内
桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考