依赖引导回滚修复:为记忆增强 Agent 恢复错误记忆后的答案与状态
From Faulty Memories to Corrected Actions: Dependency-Guided Rollback Repair for Memory-Augmented Agents
依赖引导回滚在受控基准、GPT-4o上Recovery达85.3%,高于LLM-judge的77.3%。
故障诊断在范围外。修复时只见用户会话、活跃记忆库、失败轨迹、已诊断故障记忆、可用工具和运行时溯源;干净轨迹与标签不暴露。
- 持久记忆让错误跨会话保留:有毒、过期或错归因记录会改变推理、工具使用、回答和后续写入。只删源头或只改当前回答留不下已传播状态;清空或全量重放又毁掉良性状态。作者因此形式化故障后记忆恢复。
- 依赖引导回滚修复从运行时溯源建类型化记忆—动作图,沿传播边追踪下游,保留有独立可信支持的节点,停用无支持记忆,并只重放与答案相关的受影响计算。诊断由上游给出。
- 受控基准、GPT-4o上Ours的Recovery为85.3%,LLM-judge为77.3%;Recurrence为0.266,不是最低。适配子集Recovery为68.0%,AgentTrace-style为54.0%。
- 作者在结论中把受控集上的复发差距列为后续方向:提高复发稳健性和声明状态识别,同时保持选择性修复。附录I说明适配子集不代表完整LongMemEval-V2分布。附录A称trust score未用于算法,后续可接入支持检查。
- 威胁模型
- 故障诊断在范围外。修复时只见用户会话、活跃记忆库、失败轨迹、已诊断故障记忆、可用工具和运行时溯源;干净轨迹与标签不暴露。回滚修的是智能体维护的轨迹与记忆,不能撤销不可逆外部副作用;重放有副作用的工具需可重置、幂等或补偿接口。
- 被测模型
- GPT-4oGemini-3.6-FlashQwen3.6-27B
- 基准
- controlled memory-repair benchmarkadapted LongMemEval-V2 subset
- 指标
- RecoveryRecurrenceFaulty removalBenign preservationClaim-inv. F1Replay ratioLLM count
研究者提出依赖引导回滚修复(dependency-guided rollback repair),用于在记忆增强 Agent 执行失败并诊断出错误记忆后,同时恢复答案与持久状态并保留未受影响的工作。该方法从运行时溯源构建带类型的记忆到动作图,追踪显式下游依赖,保留有独立可信支持的候选,停用无支持的记忆状态,并只选择性重放与答案相关的受影响计算。在覆盖三个工具使用领域、四类记忆故障的 150 例受控基准上,恢复率达 85.3%,高于最佳对比方法的 77.3%,同时移除全部被诊断的错误记忆并保留全部良性记忆;在改编自 LongMemEval-V2 的 50 例轨迹压力测试中恢复率为 68.0%,对比方法为 54.0%,主张失效 F1 为 0.669 对 0.603。作者指出结果并不代表轨迹重建全面更优,而是显示该方法在恢复与成本之间取得较好权衡。
深度解读
这篇论文试图解决什么问题?
故障记忆被消费后,需同时恢复回答、清理下游状态并保留良性记忆。
持久记忆被消费后的错误会留在回答、轨迹和记忆库里,现有删除或改写并不共同修复这三者。
- 场景:作者认为持久记忆支持跨会话个性化,但有毒、过期、错归因或漂移的记录会被检索,支撑错误声明、改变工具计划与回答,并被巩固成新记忆,从而在原轮次之后再次出现。Figure 1 用一条错误偏好同时改变声明、工具计划、回答和派生记忆来说明下游状态。
- 现有不足:作者称现有工作多在两个边界上动作:记忆防御审计、过滤或删除可疑记录,回答级反思修订失败输出。删源头留已传播的声明、动作和派生记忆;清空记忆库或重放整条轨迹则毁掉良性个性化并重复模型和工具调用。作者的前提是:故障移除不等于状态恢复。
- 要决定的事:故障记忆已被消费后,哪些后果应失效,哪些仍有独立证据,哪些必须重算。诊断本身不在本文范围内。
- 本文提出:依赖引导回滚修复(dependency-guided rollback repair),以及 150 例受控基准和 50 例改编自 LongMemEval-V2 的轨迹压力测试。
- 威胁模型:
- 可见输入:用户会话、活跃记忆库、失败轨迹、已诊断故障记忆、可用工具和运行时溯源;干净轨迹与评测标签不暴露。
- 系统前提:运行时须记下记忆读取、声明、计划、动作、观察、回答和变更之间的溯源。方法假定智能体已被插桩;从原始自然语言日志补边不在范围内。不完整溯源可能少追到污染,多余边可能造成不必要失效。
- 副作用:回滚不能撤销不可逆的外部副作用。重放有副作用的工具需要可重置、幂等或领域特定的补偿接口。
- 恢复目标:纠正后的回答、修复后的轨迹和修复后的活跃库;保留仍有独立证据的状态,只重算纠正后回答所需的计算。
有哪些相关研究?
相关工作多停在记忆进出、级联修复或回答修订,本文做执行后的联合状态恢复。
智能体记忆与故障检测
- Park 等(2023)、Packer 等(2023)、Xu 等(2026)、Du 等(2026)、Zhao 等(2026b)做跨会话个性化与经验复用的持久记忆。
- Xiong 等(2026)、Chen 等(2025)、Chao 等(2026)、Zou 等(2025)、Chen 等(2024)、Tan 等(2026)研究错误传播、幻觉更新、过期状态、检索或记忆投毒,以及事后审计。作者称这些方法主要改进进入、留在或被检索出记忆库的内容;本文则在故障已经影响一次执行之后,以已诊断故障为条件做恢复。
记忆级联修复
- MemoRepair(Zhao 等,2026a)撤回失效后代,从保留的支持重建后继,并用前驱闭包做成本感知的再发布。作者称它是最接近的记忆侧恢复框架;本文设置互补,但执行范围更广:同时修持久记忆和含声明、计划、工具动作、观察与回答的轨迹,并由答案相关性决定重放哪些失效节点。作者称不替代其发布契约或故障检测器。
溯源、切片与回滚
- Weiser(1984)、Agrawal 与 Horgan(1990)的程序与动态切片,Cheney、Chiticariu 与 Tan(2009)的数据库溯源,以及 Mohan 等(1992)的事务回滚,提供前向依赖追踪与选择性重算。作者称不把图可达性或逻辑撤销当作新贡献,而是用到类型化记忆–执行图上:有效性取决于独立证据,重放会产生模型和工具成本。
轨迹调试与回答修复
- ReAct(Yao 等,2022)露出推理与工具结构;Reflexion(Shinn 等,2023)和 Self-Refine(Madaan 等,2023)修订失败行为或输出;AgentTrace(Wang,2026)从日志重建因果图做根因定位。作者称定位或只改回答不必停用已污染的持久状态。
基线与基准
- 基线为 No repair、Full memory reset、Delete retrieved memories、MemAudit-style(改编自 Tan 等,2026)、LLM-judge repair(受 Reflexion 与 Self-Refine 启发)、AgentTrace-style(改编自 Wang,2026)。
- 受控任务结构借鉴 Yao 等(2024)、Deng 等(2023)、Xue 等(2025);50 例迁移子集改编自 LongMemEval-V2(Wu 等,2026)。
作者把本文定位为:已诊断记忆故障进入执行之后的端到端回答与状态恢复,而不是只修一条记忆或最终回答。
论文如何解决这个问题?
五阶段:建依赖图、追踪污染、独立支持过滤、规则规划,再选择性重放。
作者提出 dependency-guided rollback repair。输入是失败执行和已诊断故障记忆,输出纠正回答、修复轨迹和修复后的活跃记忆库。Figure 2 分为五阶段。回滚修的是智能体自己维护的轨迹与记忆。
问题设定与依赖图
- 记会话为 U、活跃记忆库为 M、失败轨迹为 T、已诊断故障集为 F。步骤类型包括记忆读取、声明、计划、工具动作、工具观察、回答和记忆变更。修复时只见 (U, M, T, F)、可用工具和运行时溯源。
- 图由用户输入、执行步骤和记忆记录确定性地建成,不用 F 或基准标注。边从前提指向依赖,标签包括 initiate、cite、support、produce、delete、update、consolidate、supersede、derive;另有只保留执行顺序的 chain 边。附录 A 给边语义与数据模式。
- 传播边不含纯 chain:后发生不等于被污染。作者称顺序后缀里可能有无关的有效工作。建图依赖运行时写出的标识;推断缺失边不在范围内。
受影响子图与独立支持
- 对每个故障记忆,沿 delete、update、consolidate 找谱系。有失败变更则以其为种子,否则沿 produce 找到产生步骤;记录执行中未创建且无产生步骤时,记忆本身为种子。只考虑时间不早于种子的依赖。本阶段不用 poisoned、stale、wrong-user、summary-drift 这些类型标签。
- 原始候选是各种子沿传播边的可达并集。偏向召回,会过度近似。节点仅因排在故障之后,不会被标成受影响。
- 对可做语义检查的候选,沿 support、derive、supersede,以及溯源契约标为充分的 cite,收集充分证据前驱。固定信任策略下,可接受来源是当前轮显式指令、未被诊断为故障的活跃记忆、成功的工具观察,或未受影响且已验证的声明。
A_0=\bigcup_{m\in F}\mathrm{Reach}_{(V,E_{\mathrm{prop}})}(r(m))表示从各故障种子沿传播边到达的原始受影响候选。- TrustedSupport(v)⟺∃ p∈Predsup(v): p∉ F∪ A0∧Admissible(p) 表示只有该集合之外的可接受证据才能保住候选。已诊断故障记忆从不保留。动作继承计划的判定,观察继承产生它的动作。保住的候选不递归验证其他候选。无支持集是原始候选去掉保住集合。
规则引导规划
- 规划器是确定的规则,不是优化。记忆处置与轨迹动作正交。故障记忆离开活跃库;无支持的受影响记忆被隔离,可留在单独审计分区,但检索和执行用不到;有支持的记忆保持活跃。附录 C 的 Table 14 列出规则。
- 无支持轨迹节点标为无效,其输出不能再当证据。计划把无效传给动作,动作传给观察;观察不直接重放,只通过调度产生它的动作来刷新。故障记忆若有可恢复的产生步骤,或过期状态来自失败的生命周期操作,该步骤仍可重放。
- 答案相关集是:删除和隔离的记忆被切断之后,仍能到达最终回答的无支持执行节点。其外的节点失效但不重放。可执行重放集是答案相关节点加最终回答的执行闭包,并补上重算所需的失效前提;安全前提作为固定上下文,不重放。
选择性重放
- 先从活跃库去掉删除和隔离的记录,再按原轨迹顺序重放。记忆生命周期关系不作重放先后约束。失效声明在替换生成前不进入上下文。记忆读取只查当前修复库;记忆变更仅在修复后的执行仍支持时才应用。
- 工具按修复后的计划选择性重发。产生动作已失效时,旧观察不复用、也不单独重生成。有副作用的工具只经问题设定中的可重置、幂等或补偿接口重放。最终回答节点始终重生成。
- 附录 B 给出基础智能体、回滚执行器和 LLM-judge 基线的提示词契约:各阶段的输入、须引用的证据标识和 JSON 字段。成功判定在评测中定义,不在规划器内打分。
论文做了哪些实验?
受控基准、GPT-4o上Recovery为85.3%,复发与声明失效F1并非各方法中最靠前的。
实验设置
- 骨干:主实验全部方法用 GPT-4o。附录 F 另报 Gemini-3.6-Flash 与 Qwen3.6-27B,只比较 Ours、LLM-judge repair、AgentTrace-style。temperature 为 0,单次运行;GPT-4o 与 Qwen3.6-27B 的 seed 为 42,Gemini-3.6-Flash 不暴露 seed。
- 数据:受控基准 150 例,购物 48、旅行 49、客服 53(Table 1)。主故障类型为 poisoned 42、stale 34、wrong-user 34、summary-drift 40。128 例一个已诊断故障记忆,22 例两个或三个。适配子集 50 例,只针对 poisoned;5 例一个故障记忆,45 例 2–4 个(Table 21)。
- 注入与可见信息:案例仅在注入改变最终回答且至少有一个下游影响时保留。修复时各方法收到故障库、故障轨迹和已诊断标识;干净轨迹、期望回答、良性标签和受影响节点标注只用于评测。作者称基准评的是诊断之后的恢复,不估计自然故障发生率或检测器准确率。
- 基线:No repair、Full memory reset、Delete retrieved memories、MemAudit-style(候选集为空时用 oracle 辅助的诊断回退)、LLM-judge repair、AgentTrace-style。基于计划的方法由同一回滚执行器执行。细节在附录 H。
- 指标:Recovery 用确定性任务预言机;受控任务要求最终回答包含全部必需事实,适配任务用原 LongMemEval-V2 回答评测器。Recurrence 只在恢复成功的案例上计算:清空状态、只载入修复后的活跃记忆、重跑最后一条用户输入,答案再失败则记复发。Faulty removal、Benign preservation、Claim-inv. F1、Replay ratio 为跨案例微平均。LLM count 是每例修复过程的平均调用次数,不含原故障执行、评测和复发探测。定义见附录 E。
- Claim-inv. F1:金标准是需要失效或再推导的故障轨迹声明步骤,预测是被标为失效或重放的集合。只改记忆库的基线该分为 0。
主结果
据 Table 2,受控基准、GPT-4o、单次运行。表注中 Recurrence 的“–”表示没有案例被恢复。
表格较宽,可左右滑动
方法 Recovery Recurrence Claim-inv. F1 Replay ratio LLM count No repair 0.000 – 0.000 0.000 0.00 Full memory reset 0.407 0.197 0.000 0.061 4.03 Delete retrieved memories 0.340 0.431 0.000 0.061 4.05 MemAudit-style 0.320 0.292 0.000 0.051 10.43 LLM-judge repair 0.773 0.121 0.946 0.217 9.80 AgentTrace-style 0.607 0.341 0.853 0.091 4.69 Ours 0.853 0.266 0.566 0.123 5.70 - 作者称 Ours 的 Recovery 最高,相对 LLM-judge repair 和 AgentTrace-style 的绝对增益为 8.0 和 24.6 个百分点;并称相对 Full memory reset 超过两倍,相对 Delete retrieved memories 与 MemAudit-style 约 2.5 倍。
- Table 2 中 Ours 的故障记忆移除和良性记忆保留均为 1.000。Full memory reset 的故障移除为 1.000、良性保留为 0.000;Delete retrieved memories 为 0.881 与 0.789;MemAudit-style 为 0.311 与 0.980。附录 E 写明 AgentTrace-style 的故障移除为 0.000,因为它不改记忆库。作者称 Ours 约保留 Delete retrieved memories 的 1.27 倍良性状态。
- 作者称复发需和 Recovery、故障移除、良性保留一起看:Ours 的 0.266 低于 AgentTrace-style 与 Delete retrieved memories,但不是全体最低。受控集上 LLM-judge repair 与 AgentTrace-style 的 Claim-inv. F1 更高,作者称这没有变成更好的端到端修复。相对 LLM-judge repair,作者称 Replay ratio 降低 43.3%、LLM 调用降低 41.8%。作者称结果并不意味着轨迹重建一律更好。
消融
Table 3,同一受控基准、GPT-4o。
- 去掉回滚规划器:Recovery 从 0.853 降到 0.713,Recurrence 从 0.266 升到 0.430,良性保留从 1.000 到 0.996,LLM count 从 5.70 到 9.19。作者称完整方法比该变体少 38.0% 的 LLM 调用。
- 去掉支持检查:Recovery 升到 0.880,Recurrence 为 0.265,良性保留降到 0.986。作者称 Replay ratio 与 LLM 调用分别增加 25.2% 和 14.2%,即用少量 Recovery 换保留独立支持状态。
- 去掉选择性重放:Recovery 为 0.840,Recurrence 降到 0.071,Replay ratio 从 0.123 到 0.755,LLM count 从 5.70 到 24.01。作者称相对该变体,选择性重放把这两项分别降低 83.7% 和 76.3%,并带有复发与成本的折中。
迁移到适配子集
Table 4,50 例、同一 GPT-4o 协议。
- Ours 的 Recovery 为 0.680,AgentTrace-style 为 0.540,LLM-judge repair 为 0.260。作者称绝对 Recovery 从受控集的 85.3% 降到 68.0%,是受控结果为上界而非部署估计的最清楚证据。
- 与受控集不同,Ours 的 Claim-inv. F1 在该子集最高,为 0.669,对照 0.603 和 0.369。作者称这些轨迹以答案路径上的 poisoned 记忆为主,需要修复的声明步骤与被选来重放的区域大体重合。故障记忆移除为 1.000,与 Full memory reset 并列最高;良性保留为 0.993。
- AgentTrace-style 的 Replay ratio 为 0.123、LLM count 为 6.98,Recurrence 为 0.037 对 0.059,良性保留为 0.997 对 0.993,Recovery 低 14.0 个百分点。相对 LLM-judge repair,作者称 Ours 在全部已报告迁移指标上更好,且 Replay ratio 与 LLM 调用分别为对方的 73.4% 和 77.3%。
骨干、领域与故障类型
- Table 17:Gemini-3.6-Flash 上 LLM-judge repair 的 Recovery 为 0.740,Ours 为 0.733;作者称只多恢复 1 例。Ours 的 Recurrence 为 0.091 对 0.108,良性保留为 1.000,Replay ratio 与 LLM count 为 0.123 和 5.53。Qwen3.6-27B 上 Ours 为 0.660,LLM-judge repair 为 0.613,AgentTrace-style 为 0.487。作者称三种方法的 Recovery 都低于 GPT-4o,降幅在 Qwen3.6-27B 上最大。LLM-judge repair 的良性保留在 Gemini 上为 0.987、在 Qwen 上为 0.993;作者称这反映偶发过度修复。
- Table 15 只报 Ours:客服 Recovery 0.943(n=53),旅行 0.878(n=49),购物 0.729(n=48)且 Recurrence 0.400。作者将购物难度归因于商品标识、卖家、价格、库存和偏好上的细粒度区分。
- Table 16 按主故障类型、只报 Ours:summary-drift 的 Recovery 为 0.950、Claim-inv. F1 为 0.870(n=40);stale 的 Recovery 为 0.941、Recurrence 为 0.781(n=34),作者称最终回答可以修好而过期状态抑制仍然脆弱;wrong-user 的 Recovery 为 0.706、LLM count 为 7.12(n=34);poisoned 的 Claim-inv. F1 为 0.341,已恢复案例的 Recurrence 为 0.000(n=42)。
其他消融与分析
- Table 18:Ours 总 token 为 12697.55,LLM-judge repair 为 28175.28;作者称不到后者的一半。去掉选择性重放后总 token 为 55018.01。
- Table 19:一故障 Recovery 0.852(n=128),两故障 0.824(n=17),三故障 1.000(n=5)。良性活跃记忆 6–8 条时 Recovery 0.778(n=36),9–11 条时 0.914(n=58)。作者称桶大小与故障构成未独立控制,不是规模定律。
- 附录 G 用客服 summary-drift、旅行 wrong-user、购物 poisoned 和一条多故障适配案例说明支持检查、派生记忆清理和工具重放;故障原文不转述。
有什么可以进一步探索的点?
作者将复发稳健性与声明识别列为后续方向,并把适配子集限定为迁移测试。
作者指出的局限与后续方向
- 复发与声明识别:结论写明,受控集上复发仍有差距;后续方向是提高复发稳健性和声明状态识别,同时不牺牲选择性修复。
- 适配子集的代表性:附录 I 的 Limitations 写明,该子集是迁移压力测试,不是完整 LongMemEval-V2 的替代;只保留能在修复模式上建成可靠干净数据的案例,不代表完整分布,不应用来声称一般的 LongMemEval-V2 表现。
- trust score:附录 A 写明,当前实现里 trust score 只记录供分析,不进入修复算法;后续可以更稳健地估计,并接入支持检查。
实验覆盖范围
- 主比较在 GPT-4o 上、temperature 0、单次运行(Section 5)。附录 F 的 Gemini-3.6-Flash 与 Qwen3.6-27B 只比较 Ours、LLM-judge repair 和 AgentTrace-style。论文未报告重复运行或方差。
- 受控基准为 150 例、三个工具域、四类记忆故障(Table 1,Section 4);128 例单一已诊断故障记忆,22 例两个或三个。
- 适配子集为 50 例,故障类型为 poisoned,且以多故障为主(Section 5.3,Table 21)。作者称它不是故障类型覆盖研究。
- 修复输入包含上游给出的已诊断故障标识。作者称基准不估计自然故障发生率或检测器准确率(Section 4);诊断本身在方法范围外(Section 3.1)。
- 重放有副作用的工具时,问题设定假定存在可重置、幂等或补偿接口(Section 3)。从原始自然语言日志推断缺失的支持边或生命周期边不在方法范围内。
总结一下论文的主要内容
诊断后选择性回滚:受控集Recovery为0.853,复发与声明F1并不各方法领先。
依赖引导回滚修复处理的是记忆增强智能体在故障记忆已被消费之后的恢复,诊断由上游提供。
- 问题:持久记忆让有毒、过期、错归因或漂移记录改变声明、工具计划、回答和后续写入。只删源头留已传播状态;清空记忆库或全量重放则丢掉良性状态并重复计算。作者的前提是故障移除不等于状态恢复。
- 方法:从运行时溯源建记忆到动作的类型化图,沿显式传播边追踪,用独立可信支持保住候选,再按规则删除故障记忆、隔离无支持派生状态,并只重放与答案相关的受影响步骤。回滚不能撤销不可逆外部副作用。
- 受控结果:150 例、GPT-4o、单次运行下,Ours 的 Recovery 为 0.853,LLM-judge repair 为 0.773,AgentTrace-style 为 0.607(Table 2)。故障记忆移除与良性记忆保留均为 1.000。Recurrence 为 0.266,高于 LLM-judge repair 的 0.121;Claim-inv. F1 为 0.566,低于 0.946 和 0.853。
- 迁移与消融:适配子集上 Recovery 为 0.680,AgentTrace-style 为 0.540;Claim-inv. F1 为 0.669,高于 0.603(Table 4)。去掉支持检查时 Recovery 升到 0.880、良性保留降到 0.986;去掉选择性重放时 Recurrence 降到 0.071,LLM count 升到 24.01(Table 3)。Gemini-3.6-Flash 上 LLM-judge repair 的 Recovery 为 0.740,Ours 为 0.733(Table 17)。
- 作者结论:作者称该方法在修好故障记忆并保留良性记忆的同时,给出恢复与成本的折中;结果并不意味着轨迹重建一律更好。结论把受控集上的复发差距列为后续方向。