Agent 长短期记忆如何分层?
短期/长期记忆与检索机制,关键模块和数据流详解
原题:在设计AI agent的记忆系统时,通常需要考虑短期记忆、长期记忆以及记忆检索机制。请阐述你如何设计一个高效且可扩展的agent记忆架构,包括关键模块和数据流。
Agent · 字节真题
回答与解析
逻辑分层
Agent 记忆应按职责划分:工作记忆保存当前目标、约束和近期工具结果;会话或情景记忆保存任务状态、事件和未完成事项;长期记忆只沉淀经确认、可复用且允许保存的偏好与事实。这是逻辑职责,不要求每层使用固定数据库。
写入与读取
交互或工具结果先经过候选提取、结构校验、去重、来源、权限与敏感信息检查,再带时间和版本写入结构化库、文本库或向量索引。新请求按身份与任务作用域做关键词、向量和结构化混合检索,再按相关性、时效性、重要性和权限重排,在上下文预算内注入。
事实、原文和向量用稳定 ID 关联。向量用于候选检索,精确属性和状态由结构化存储承载;用户纠正应生成新版本或显式覆盖规则。摘要是有损表示,必须保留原始证据引用。
系统按租户和主体分区,使用事件日志、幂等写入、删除和过期策略。多 Agent 默认隔离,只共享明确授权的命名空间。评估写入精确率、检索 Recall@K、冲突率、任务成功率、P95 延迟和存储成本,并测试错误记忆注入与删除是否真正生效。
口语版讲法(约90秒)
- 按工作、情景和长期职责划分记忆
- 写入先做来源、权限和冲突检查
- 读取使用混合检索并受预算约束
- 版本、删除和隔离保证可靠性
- 用错误记忆注入与删除测试验收
Agent 记忆不是把所有历史塞进向量库,而是管理信息生命周期。工作记忆保存当前目标和近期工具结果;会话记忆保存任务状态;长期记忆只沉淀经确认、可复用且允许保存的信息。
写入时先做结构校验、去重、来源记录、权限和敏感信息检查。事实、原文和向量用稳定 ID 关联,向量负责候选检索,精确状态由结构化存储提供。摘要是有损的,所以要能回到原始证据。
读取时按用户和任务作用域做关键词、向量和结构化混合检索,再按相关性、时效性、重要性和权限重排。用户纠正应形成新版本或覆盖规则,不能让旧向量继续生效。
扩展时按租户分区,使用事件日志和幂等写入,并验证删除从索引和缓存生效。多 Agent 默认隔离,只有明确授权的命名空间才共享。
关键一句:可靠记忆依赖可追溯写入、受权检索、冲突处理和可验证删除。
核验来源
面试官还可能这样问
- 问法 1 · 场景切入
假设你做一个电商客服agent,用户今天问订单状态,明天又来问退款进度,你怎么让agent记得前天聊过什么?而且对话越来越多,总不能全存吧,你打算怎么设计记忆系统?
- 问法 2 · 层层追问
agent怎么记住用户之前说过的话?……如果对话很长,上下文窗口装不下怎么办?……那长期记忆和短期记忆怎么区分,数据怎么流动,你画一下整体架构?
- 问法 3 · 直球架构
设计一个高效可扩展的agent记忆架构,要求区分短期、长期记忆,并考虑检索机制和扩展性。你从关键模块、数据流、存储选型几个方面说说怎么实现。