记忆管理三板斧:窗口、摘要与混合策略
作者:程序员马丁
note
Ragent AI —— 从 0 到 1 纯手工打造企业级 Agentic RAG,拒绝 Demo 玩具!AI 时代,助你拿个offer。
上一篇咱们从一个多轮对话失败的场景切入,讲清楚了 Agent 为什么需要记忆——大模型没有持久记忆,它的记忆完全取决于你在 messages 数组里放了什么。然后用 ChatMemory 接口和 InMemoryChatMemory 给 TinyAgent 装上了最基础的短期记忆,让它在同一个会话里能记住之前聊过的内容。
但上一篇的结尾也埋了一个问题:InMemoryChatMemory 只追加、不删减。用户聊 5 轮没事,聊 20 轮历史消息就开始膨胀,Token 预算被大量无关的历史信息占据,Agent 能做有用工作的空间越来越小。
这一篇,咱们正式动手解决这个问题——实现三种记忆管理策略:滑动窗口、摘要压缩、混合策略,让记忆可控、可配、不爆预算。
本项目中具体代码已上传 GitHub TinyAgent,大家 Clone 项目后,将代码分支切换到 1.6.x,默认主分支是最新代码。运行前复制
.env.example为.env,把自己的 API Key 填进去,默认阿里云百炼平台;.env已加入.gitignore,切分支时不会丢。