标准回答
一、先明确记忆的三层架构
Agent 记忆系统应该分三层:短期记忆是当前上下文窗口里的对话和工具结果,生命周期是单次会话;工作记忆是当前任务状态(计划、变量、已完成步骤),生命周期是单个任务;长期记忆是跨会话的知识(用户偏好、领域事实、历史经验),需要持久化存储。
二、重点讲可写记忆的写入链路
当 Agent 在交互中发现新知识(用户说"我换工作了"),不能直接 append 到数据库。写入流程应该是:(1)抽取候选事实("用户新工作是 X");(2)标注来源(哪次交互、哪个 Agent);(3)评估置信度(0-1,基于证据强度);(4)设置过期策略(TTL 或事件触发);(5)检查冲突(是否有旧版本"用户旧工作是 Y")。
三、冲突解决用版本化 + 置信度竞争
当新旧记忆冲突时("用户工作是 Y" vs "用户工作是 X"),不要直接覆盖。应该版本化存储,两条记忆并存,标记冲突。Agent 在检索时根据置信度、时间和来源可信度决定采纳哪条。如果新记忆置信度 0.9、旧记忆 0.7,采纳新的;如果置信度接近,可以主动询问用户确认。
四、过期策略用混合方案
不同类型记忆用不同过期策略:临时任务状态用 TTL(如 7 天);用户偏好长期保留,但置信度随时间衰减(长期未被验证的偏好,置信度逐渐降低);事件触发过期(用户明确说"我换工作了",旧工作记忆立即过期)。
五、候选人要主动补多 Agent 场景
如果是 Multi-Agent 系统,还需要考虑记忆隔离(用户 A 的记忆不能被用户 B 的 Agent 访问)和共享(组织级知识对所有 Agent 可用)。OpenWiki 的命名空间 + ACL 机制可以解决这个问题。
常见误区
⚠️ 常见踩坑
误区一:把记忆等同于 RAG。RAG 是只读的外部知识检索;可写记忆允许 Agent 在运行时主动写入新知识,是范式转变。
误区二:认为记得越多越好。没有过期和遗忘机制,记忆库会被噪声淹没。好的记忆系统一定有筛选、过期和纠错。
误区三:冲突时直接覆盖旧记忆。直接覆盖会丢失历史和审计能力。应该版本化存储,保留冲突解决的可追溯性。
追问
追问 1:OpenWiki 与 Mem0 的核心区别是什么?
追问 2:如何防止记忆注入攻击?
记忆注入攻击是指通过对话注入虚假记忆,试图影响 Agent 未来的推荐和决策。防范需要三层防御:(1)写入层——对异常高频的写入请求自动降低置信度,设置单用户单时段的写入速率限制;(2)存储层——每条记忆保留来源标注和版本历史,支持事后审计和回滚;(3)检索层——结合多个来源交叉验证,不依赖单一记忆源做关键决策。此外,定期审计记忆库中的异常模式(如同一用户反复写入矛盾信息)也是必要的。
追问 3:Multi-Agent 系统中如何平衡记忆隔离与共享?
核心方案是命名空间 + ACL 机制。记忆按归属分为三层:(1)用户级记忆——严格隔离,用户 A 的偏好不能被用户 B 的 Agent 访问,这是隐私底线;(2)组织级记忆——产品文档、流程规范等对所有 Agent 可用,但写入需要权限审批;(3)Agent 级记忆——不同职能 Agent 的记忆空间隔离,防止跨职能信息泄漏。在工程实现上,OpenWiki 的命名空间机制可以直接复用,配合 ACL 控制读写权限。关键原则是默认隔离,显式共享。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
