Agent 聊两句就"失忆"?3 层记忆架构让它越用越聪明
为什么 Agent 总失忆
很多人抱怨 Agent"越用越笨":昨天刚教它记住服务器 IP、记住你的偏好,今天新开会话全忘了。这不是它不努力,是架构问题——大模型的上下文窗口就是"工作记忆",会话一断就清空。把重要信息全塞进上下文,又会被 token 上限和注意力稀释拖垮。
3 层记忆架构
我按"热数据 → 温数据 → 冷数据"的思路,给 Agent 搭了三层记忆:
第 1 层:会话内短期记忆(上下文窗口)。只放当前任务必需的东西:本轮目标、关键约束、最新几条对话。原则是"用完即弃",别把历史全堆进来。
第 2 层:持久化中期记忆(结构化存储)。把反复要用的事实抽出来单独存——服务器 IP、数据库连接、老板的偏好、踩过的坑。每次新会话启动时按需检索注入,而不是全量加载。我的做法是一个数据库/JSON 文件 + 按关键词检索。
第 3 层:外部长期知识库(Wiki / 文档)。项目文档、完整决策记录、踩坑复盘,这些不塞进上下文,Agent 需要时再去查。相当于给它配了个"图书馆"。
踩过的坑
最大的坑是"什么都想记"。一开始我把任务进度、临时状态也往中期记忆里塞,结果脏数据越堆越多,检索出来的全是过时信息。后来定了条铁律:只有跨会话还会用到的事实才进中期记忆,任务状态一律不记。
第二个坑是写入不及时。总想"等会儿再整理",结果 session 一断,经验全丢。现在改成"做完即写",重要决策立刻落库。
这套架构跑下来,Agent 从"每次都像新来的"变成"越用越懂你"。核心就一句话:记忆要分层,写入要即时,检索要按需。