先这样答
设计记忆系统先分层,按信息寿命从短到长。
最内层是工作记忆,就是上下文窗口本身:当前对话、最近几轮的工具结果都在这里,随窗口淘汰。这层的工程问题是空间不够用,要做历史裁剪(保留最近 N 轮 + 摘要更早的)、工具结果压缩(长文档只留结论)。
往外是长期记忆:跨会话还要用的信息,比如用户偏好、项目背景、历史结论。这层通常放向量库,会话结束或产生稳定结论时写入,下次会话开始或话题相关时检索回来。写入要有门槛,不是什么都存:存得越杂,检索时噪音越多。
最外层是结构化存储:用户档案、订单状态、明确的偏好设定,这类信息要精确读写,放数据库,用键值或表结构管理,检索靠查询不靠相似度。
三层之上还有三个横切问题,面试一定要点到。什么值得记:稳定、复用价值高的信息才写长期层,一次性的中间过程不写。怎么记:写入时做抽取和归纳,把一整段对话提炼成一两条事实,而不是原文照存。怎么过期:记忆要有时间戳和更新机制,新结论覆盖旧结论,否则用户改了需求,旧记忆还在干扰。
面试官会怎么追问
- 记忆检索和 RAG 有什么区别? 机制上都是向量检索,差别在数据源和粒度:RAG 检索外部文档,记忆检索的是这个用户/这个 Agent 的历史交互;记忆条目更碎、更个人化,冲突更新也更频繁。
- 怎么防止记错、记偏? 写入时带来源和置信度,检索时给模型提示「这是历史记忆,与当前对话冲突时以当前为准」;关键事实类记忆允许用户查看和删除。
- 记忆会不会把上下文撑爆? 记忆检索和 RAG 一样只取 top 几条进上下文,进多少、以什么格式拼,都是可调的工程参数。
回答的坑
- 把记忆说成「存到向量库」一步。分层、写入门槛、过期机制三件事不提,等于没设计过。
- 忽略用户视角。记忆牵扯隐私,能查看、能删除是企业落地绕不开的要求。
同系列的题
—— 本题完 ——