AI Agent 记忆架构怎么设计?2026年别再把所有对话塞进上下文

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

Agent记不住事、忘得快、成本失控,多半是记忆架构没设计好。本文讲清短期/长期/工作记忆的分层与主流实现方案。

Agent 为什么”健忘”

你做一个客服 Agent,第一天它能记住用户偏好,聊了十轮后它又问了同样的问题。你加长上下文,成本飙升还变慢。这不是模型不行,是你的记忆架构缺失。

把所有历史都塞进上下文,是最偷懒也最糟糕的做法:成本随对话长度线性上涨,关键信息被淹没在噪声里,还容易触发”中间遗忘”。

记忆分三层,别混在一起

短期记忆(工作记忆):当前会话的最近几轮。放在上下文里,有明确的滑动窗口或摘要机制。

长期记忆:跨会话持久化的用户偏好、历史事实、关键结论。存在外部存储(数据库/向量库/知识图谱),按需检索。

程序记忆:Agent 的技能、工具用法、SOP。可以理解为”会做什么”,通常写在系统提示或技能库里。

分层的意义:不同寿命、不同访问频率的信息,用不同机制管理。

主流实现方案

方案一:滑动窗口 + 摘要 保留最近 N 轮原文,更早的压缩成摘要。简单有效,适合大多数对话场景。 关键:摘要要保留实体和结论,丢掉寒暄和冗余。

方案二:向量检索记忆 把历史对话切块、做嵌入、存向量库。每轮根据当前问题检索最相关的记忆。 适合:用户历史很长、需要”想起很久以前提过的事”。坑:检索不准时会把无关记忆拉进来。

方案三:结构化记忆 把关键事实抽成结构化字段(用户姓名、偏好、订单号、未解决问题),存关系库。 适合:业务信息明确的场景。最可靠,但需要设计 schema。

方案四:知识图谱 把实体和关系建成图,支持多跳推理(“用户A的同事B上个月反馈过类似问题”)。 适合:关系复杂的场景。成本高,小项目慎用。

实用组合:滑动窗口管当前轮 + 结构化记忆存关键事实 + 向量检索补长尾历史。三者叠加,覆盖 90% 场景。

记忆生命周期:写入、检索、更新、遗忘

写入:不是每句话都值得记。用规则或一个轻量模型判断”这条信息是否需要长期保存”。乱存会污染检索。

检索:根据当前输入召回相关记忆。关键是相关性和时效性排序,别把三年前的偏好当成当前事实。

更新:信息冲突时如何合并?用户改了偏好,旧记忆要标记失效,而不是并存两条。处理冲突是记忆系统的核心难点。

遗忘:定期清理过期、低价值记忆。没有遗忘机制的记忆库会越来越慢越来越脏。

提示词里的记忆注入

检索到的记忆怎么放进提示?给出结构:

【当前会话】最近对话...
【用户档案】姓名/偏好/历史(结构化)
【相关历史】召回的3条最相关记忆,附时间戳
【注意事项】如信息冲突,以最新为准

明确标注时间和来源,让模型知道哪些可靠。

常见坑

  • 无脑全塞:成本高、噪声大、变慢。别做。
  • 只存不检索:存了一堆却召不回来,等于没存。
  • 不处理冲突:旧偏好和新偏好并存,Agent 行为矛盾。
  • 没有遗忘:记忆库无限膨胀。
  • 摘要丢实体:压缩后丢了关键名字和数字,信息失效。

度量什么

  • 记忆命中率:该想起的时候有没有想起
  • 误召回率:拉进来的记忆是否相关
  • 一致性:同一问题跨会话的回答是否稳定
  • 成本:记忆检索和注入的额外 token 开销

小结

Agent 记忆的本质是在”记得住”和”记得准、记得省”之间找平衡。分三层管理:短期用窗口、长期用结构化+向量、技能放程序记忆。管好写入、检索、更新、遗忘四个生命周期,尤其是冲突处理和定期清理。设计好了,你的 Agent 才从”三秒记忆”变成”越用越懂你”的老员工。

📤 分享到