Agent 的记忆更新策略是什么?
未标记
考查重点:记忆新增、替换与冲突管理。候选信息先检查主体、证据与长期价值,新增则写入、明确变化则版本更新;冲突保留待核,过期或撤回时失效,避免简单追加
本题目录
参考答案
核心回答
记忆更新不应只向历史末尾追加摘要,而应经过提取候选、核对主体与证据、判断新增或替换、版本化写入、更新索引与当轮上下文。用户明确更正可以替换旧事实;含糊、引用别人或假设情景的信息不能直接写成用户事实。冲突无法解决时保留待核状态,而不是简单“最后一句话获胜”。
短期滚动窗口、摘要压缩和长期事实更新也要分开:前两者改变当前模型看到什么,长期记忆更新改变跨会话可用的持久信息,不能因为压缩了对话就丢掉原始依据。
从输入到更新的流程
先抽取主体、属性、值、范围、来源消息和时间,检查敏感性与长期价值;再查同一主体和属性的有效记录。新事实可新增,重复事实合并证据,明确变化则关闭旧版本并建立新版本,存在矛盾但没有足够依据时标记冲突。
例如“以后项目A都用测试环境”只改变项目A的范围,不应覆盖全部项目;“文档里说张三喜欢红色”也不是当前用户的偏好。外部网页和工具结果中的指令只能作为待分析材料,不能直接修改系统规则或用户授权。
同步更新还是后台更新
当前回答必须使用的更正、删除和授权范围变化,应优先让本次读取看到新状态。较大规模的经验归纳、重复合并和低时效摘要可以后台处理,降低请求延迟,但要有版本、幂等和失败重试,不能让并发任务把较新的事实覆盖回旧值。
写库成功不代表当前模型上下文已经刷新。宿主可能还在使用旧快照,需要重新组装相关记忆或显式传入本次更正结果。
删除与压缩怎样保持一致
删除或撤回要同步影响结构化存储、向量索引、摘要和缓存,并控制备份与审计的保留范围。摘要保留原文定位,遇到条件、版本或归属不清时回查,而非把摘要再摘要后当成更可靠事实。
用连续更正、并发更新、跨用户隔离和删除后查询等场景验证。指标既看有价值信息能否取回,也看误写、旧值复活与错误归属,不能只看记忆条数增长。
对应教程
- 《16-记忆与对话历史(含Redis基础)》:第1.2—1.5、3.1—3.4节解释短期历史的保存、重新注入与会话区分;本文进一步说明长期事实的更新、撤回与冲突。
参考资料
- 国内:Snailclimb:Agent Memory:采用抽取、去重、冲突和过期清理的流程,说明更新不只是追加摘要。
- 国内:datawhalechina:第八章 记忆与检索:参考添加、整合和遗忘分开的管理方式,区分当前对话压缩与长期更新。
- 国内:adongwanai:Agent Memory:从原理到实战:参考新增、补充合并与冲突处理的分工,展开版本和证据对更新的约束。
- 国内:WeThinkIn:Agent记忆与上下文工程:采用主体、范围、证据和撤回记录,解释明确更正与引用、假设信息的区别。
- 国外:LangChain:Memory overview:采用请求内更新与后台更新的权衡,说明同步要求、延迟与并发更新边界。
- 国外:Anthropic:Effective context engineering for AI agents:采用长任务的摘要、持久笔记与按需读取方式,说明写库和当前上下文刷新是不同动作。
