Agent 架构记忆系统上下文速答 · 约 6 分钟更新 2026-09-16

Agent 的记忆系统怎么设计?

一句话结论

按寿命分层:上下文窗口是工作记忆,向量库放长期记忆,数据库放结构化事实;要点是定清楚「什么值得记、怎么检索回来、什么时候过期」。

先这样答

设计记忆系统先分层,按信息寿命从短到长。

最内层是工作记忆,就是上下文窗口本身:当前对话、最近几轮的工具结果都在这里,随窗口淘汰。这层的工程问题是空间不够用,要做历史裁剪(保留最近 N 轮 + 摘要更早的)、工具结果压缩(长文档只留结论)。

往外是长期记忆:跨会话还要用的信息,比如用户偏好、项目背景、历史结论。这层通常放向量库,会话结束或产生稳定结论时写入,下次会话开始或话题相关时检索回来。写入要有门槛,不是什么都存:存得越杂,检索时噪音越多。

最外层是结构化存储:用户档案、订单状态、明确的偏好设定,这类信息要精确读写,放数据库,用键值或表结构管理,检索靠查询不靠相似度。

三层之上还有三个横切问题,面试一定要点到。什么值得记:稳定、复用价值高的信息才写长期层,一次性的中间过程不写。怎么记:写入时做抽取和归纳,把一整段对话提炼成一两条事实,而不是原文照存。怎么过期:记忆要有时间戳和更新机制,新结论覆盖旧结论,否则用户改了需求,旧记忆还在干扰。

面试官会怎么追问

  • 记忆检索和 RAG 有什么区别? 机制上都是向量检索,差别在数据源和粒度:RAG 检索外部文档,记忆检索的是这个用户/这个 Agent 的历史交互;记忆条目更碎、更个人化,冲突更新也更频繁。
  • 怎么防止记错、记偏? 写入时带来源和置信度,检索时给模型提示「这是历史记忆,与当前对话冲突时以当前为准」;关键事实类记忆允许用户查看和删除。
  • 记忆会不会把上下文撑爆? 记忆检索和 RAG 一样只取 top 几条进上下文,进多少、以什么格式拼,都是可调的工程参数。

回答的坑

  • 把记忆说成「存到向量库」一步。分层、写入门槛、过期机制三件事不提,等于没设计过。
  • 忽略用户视角。记忆牵扯隐私,能查看、能删除是企业落地绕不开的要求。
—— 本题完 ——