论文链接:
- One Assistant, Many Memories: Benchmarking Real-World Group Assistance When Recall Is Not Enough (GroupAssistBench)
- WASP-Mem: Let Agent Organize Procedural Memory. Human Spend Effort on Diagnosis
- Can Agents Forget When Asked? A Benchmark for Memory Unlearning in LLM Agents (BEMULA)
代码仓库:
- BEMULA:https://github.com/Nboxff/bemula-benchmark
- GroupAssistBench:论文承诺接收后公开脱敏基准与代码(正文未给 URL)
- WASP-Mem:原文未提及开源 URL
发表时间:均为 2026 年 10-11 月(arXiv 2611.04867 / 2611.04003 / 2610.18052) 机构:
- GroupAssistBench:腾讯元宝团队 + 伦敦国王学院 KCL + 齐鲁工业大学 + 中国人民大学 + 山东大学——企业-多高校合作,共同一作 Zhanghao Hu / Linhai Zhang
- WASP-Mem:UIUC(Peizhi Niu)+ Amazon(7 人)——企业-高校合作,共一 Peizhi Niu / Ge Shi
- BEMULA:清华大学(6 人)+ 新浪微博(Wei Wang)——高校-企业合作 领域标签:cs.CL / cs.AI——Agent 记忆评测、程序性记忆整合、记忆遗忘(unlearning)
〇、为什么把这三篇放在一起读
这三篇论文分属评测、方法、安全三个社区,却在回答同一个母问题:当长期记忆成为 LLM Agent 的标配组件后,我们对「记忆系统到底好不好」的评估,是否还停留在最表层的读取维度?
三篇各自把一个被忽视的切面推到了台前:
| 论文 | 记忆生命周期切面 | 核心发现 | 关键数字 |
|---|---|---|---|
| GroupAssistBench | 使用(用记忆服务开放请求) | 最强外部记忆召回超全上下文、使用却全面落败 | EverMemOS L1 0.621 vs 0.570;L2 0.247 vs 0.431 |
| WASP-Mem | 写入(经验如何整合成程序性知识) | agent 自组织优于人工预设 schema,人应做诊断 | Free Form 72.3-72.5% 超最强 baseline 4.6-6.1pp |
| BEMULA | 删除(用户要求遗忘) | 全部系统遗忘请求通过率 ≤1.5%,选择性遗忘未解决 | 6 系统×3 骨干 RPR≤1.5%,多数为 0 |
一条贯穿三篇的主线是:Agent 记忆系统全部围绕「写 / 取 / 组」设计,而记忆的真正价值落点——用得好、写得对、删得掉——恰恰是现有设计范式覆盖不到的三块盲区。GroupAssistBench 的作者把这一点说得很直白:记忆的价值不仅在召回,而在用它提供恰当的帮助。WASP-Mem 发现预设 schema(写侧的人工干预)损害整合质量;BEMULA 发现删除只服务于信息新鲜度而从不服务于用户意图(删侧缺位)。三篇合起来,恰好是记忆生命周期的完整审计。
读这三篇还有一个实用理由:它们分别代表了当前 Agent 记忆研究的三种典型方法论——真实部署数据基准(80K 消息、$53K 成本)、受控设计空间实验(4 维矩阵、3 模型)、配对反事实评测(每个遗忘请求配无请求对照版)——对想做记忆方向研究的人,三套方法论本身就很值得学。
一、题目:三篇在做什么
1.1 GroupAssistBench:群聊助手记忆的真实使用基准
论文标题的信息量很大:One Assistant, Many Memories——一个助手面对许多成员的记忆;When Recall Is Not Enough——当召回不够时。任务设定是群聊里的 AI 助手:它必须整合多成员的信息、追踪随时间的修订与冲突、最后给出一个对全群有效的响应。而现有群记忆基准用 LLM 合成对话、只测对固定答案的召回,无法回答「能找回记忆的系统,能否把它用在无固定答案的服务请求上」。基准覆盖 50 个真实部署群、80,299 条消息、2,395 个实例,构建总成本超过 $53K。
1.2 WASP-Mem:让 agent 组织程序性记忆
标题就是结论:Let Agent Organize Procedural Memory. Human Spend Effort on Diagnosis——让 agent 组织程序性记忆,人把精力花在诊断上。企业流程自动化中,静态 harness 无法覆盖文档不全的 API、组织特有策略、异常服务状态这些只在执行中才暴露的专有知识。WASP-Mem(Wiki-based Agent-Synthesized Procedural Memory)用一个 consolidator agent 把执行轨迹与反馈蒸馏进持久互联的 wiki 页,并系统性地做了整合方法×反馈类型×摄取范围×精炼轮数的受控实验。
1.3 BEMULA:Agent 记忆遗忘基准
标题是个问句:Can Agents Forget When Asked?——agent 能在被要求时遗忘吗?用户在真实部署中越来越多地要求 agent 删除敏感或过时的信息(泄露的家庭住址、医疗记录、财务细节)。BEMULA 是第一个专用于记忆遗忘(memory unlearning)的基准:50 个对话实例、135 个 6 类遗忘请求、1,742 道测试题,每个遗忘版都配一个无请求的控制版。答案是否定的:没有任何系统-骨干组合的请求通过率超过 1.5%。
二、背景:三篇各自面对的问题场
2.1 记忆评测从召回走向使用——但群聊场景没人测过
记忆评测的演进路径是:长程事实召回(LoCoMo、LongMemEval 一脉)→ 记忆支持下游行为(个性化响应、多会话 agent 任务)。但单用户场景的证据已经提示了问题:论文引用 AlpsBench 上记忆把 persona 感知从 0.41 提到 0.72、却把情感适切性降到骨干无记忆水平以下——记住不等于用好。
群聊把这个问题放大到极端:助手服务于全群,必须调和分布在不同成员、随时间修订、群内有争议的信息,并产出单一响应。已有群记忆基准(GroupMemBench、EverMemBench、SocialMemBench、GateMem)确实考察了归属、整合、更新,但它们的对话全是 LLM 合成的,评测继承了「对着固定答案测召回」的束缚——服务类任务要么是多选题,要么是闭集动作选择。真实群里协议、纠正、协助失败如何发生,合成对话回答不了。
2.2 程序性记忆:agent 经验里最难整合的一类
认知科学的经典三分法把记忆分为情景(episodic,发生了什么)、语义(semantic,一般事实)、程序性(procedural,特定条件下如何行动)。WASP-Mem 论文指出,前两类已有大量系统(MemGPT、Mem0、A-MEM 等),且都用对话问答式召回评测;而程序性记忆的单位不是一段转录或孤立陈述,而是可复用的指导——何时适用、执行哪些动作、什么会失败、如何恢复。它要求整合(consolidation)而非天真积累:重复的成功要合并、矛盾要解决、诊断过的失败要变成缺失前置条件或排障路径。
现有程序性方法三类各有缺陷:案例法(Reflexion、Memento)保留确切证据但案例特定、冗余累积;抽象法(ExpeL、AutoGuide、Insights)独立蒸馏每条轨迹、无跨会话去重与核验;技能法(Voyager、Agent Workflow Memory、SkillX)可复用组件跨技能重复、冲突不解决。更根本的是,企业反馈依赖专有环境与组织特定结果,评测与诊断昂贵得多——这决定了「人的精力往哪投」本身就是一个必须回答的设计问题。
2.3 遗忘:被所有记忆系统忽略的第四操作
BEMULA 的出发点是组织理论中的 competency trap(胜任力陷阱):对过去成功的记忆常常成为未来失败的根源。对 agent 而言,遗忘清理过时与敏感信息,与记住可用信息同样重要。无法可靠遗忘的系统,即使用户明确要求删除,被删信息仍可通过检索、推断或提示词提取访问——结果是隐私泄漏;而过时信息滞留还会干扰决策。
现状是系统性缺失:现有系统围绕写、取、组设计,删除只服务于信息新鲜度(更新过时信息)而非用户意图。冗余表示让问题更糟——同一信息以原始轮次、抽取事实、压缩笔记多种形式存在,删一漏其余。相关评测也有同样的洞:LongMemEval 的知识更新分支和 MemoryAgentBench 的冲突解决分支只测「是否回答最新事实」,不测旧事实是否被移除;Memora 的 FAMA 指标惩罚对失效记忆的依赖,但失效隐式伴随对话演化而来、从不显式探测提取或再学习。
三、定位与关联工作
3.1 GroupAssistBench:第一个真实群聊+开放服务+反馈派生准则的基准
论文 Table 1 的对照矩阵很清晰。与单用户/agent 任务基准(MemoryArena、AMA-Bench、PersonaMem-v2、AlpsBench、DynamicMem)相比,它们全无群聊;与群记忆基准(GroupMemBench、EverMemBench、SocialMemBench、GateMem)相比,它们全部用合成对话、开放服务要么缺失要么受限(多选/模板/闭集动作)、准则从不来自真实用户反馈。GroupAssistBench 五项全满:真实群聊来源 ✓、更新与冲突 ✓、无固定答案的开放服务 ✓、逐实例 rubric ✓、真实反馈派生准则 ✓。
方法论上它还贡献了两点:锚点(anchor)机制——每条必需记忆锚定到原文消息的逐字证据跨度,使「检索到的证据」可对照「应找到的记忆」核查;rubric 评分——L2 的罚项准则不是设计者拍脑袋,而是从 97 条真实用户负反馈聚类出的五类失败模式(扭曲事实、违背已定计划、违反显式约定或成员约束、误读成员当前状态、依赖被取代值)。
3.2 WASP-Mem:不是又一个记忆系统,而是一组设计原则的实验
WASP-Mem 的定位巧在「方法+受控研究」双轮:wiki 式整合方法本身足够简单(index.md 路由 + 语义检索 + shell 导航 + Obsidian 风格 wikilinks,灵感来自 Karpathy 的 LLM wiki 设想),真正的贡献是四个维度的系统受控实验:
- 整合方法(7 种):No Memory / No Consolidation(原始轨迹检索)/ Insights(平铺洞察)/ SkillX(三层技能库)vs 三个 WASP-Mem 变体(Free Form 自由页隐式去重、Schema Form 加人工 schema、Schema Form-ED 再加显式去重);
- 反馈类型(4 级丰富度):Self-Judge 自评 → Task-binary → Checkpoint-binary → Checkpoint-binary + Human 人类诊断;
- 摄取范围:只成功 vs 成功+失败;
- 精炼轮数:R0-R4。
它还主动处理了两个评测方法论问题:TheAgentCompany 训练测试同任务分布(建模重复性企业工作而非泛化),用严格整合后护栏防案例级泄漏;τ2-Bench Retail 自定义不写进 harness 的操作流程、用不相交 train/test 测域内泛化。
3.3 BEMULA:把遗忘从「更新」里剥离出来
BEMULA 在谱系上的位置是「机器遗忘(machine unlearning)→ 上下文遗忘(in-context forgetting)→ 记忆系统遗忘」三级跳的前两级之后。参数级遗忘改权重、不适用冻结模型;上下文遗忘(ICF-Bench 一脉)在单会话推理时抑制干扰信息。而部署 agent 中用户要删的信息在外部记忆里,任何单条 prompt 够不着——BEMULA 测的是记忆系统而非 LLM 本身。
最关键的设计是配对控制版:每个对话的遗忘版与控制版(遗忘请求换成等长中性闲聊)逐轮相同。这堵住了退化策略刷分的漏洞——从不存储目标、全删记忆、拒答相关问题的系统在只看「目标消失了吗」的指标上都能拿满分,但 retention 探针(控制版上必须答对)+ 条件化打分(效能题以对应 retention 题通过为前提)保证只有真正存过又删掉的系统才能得分。这个思路与 GroupAssistBench 的反事实校验(有历史/无历史双答对比定位记忆敏感请求)在方法论上同源:都是用配对反事实分离两个混杂的能力。
3.4 三篇合起来的定位
| 生命周期阶段 | 之前的隐含假设 | 三篇的实际发现 |
|---|---|---|
| 写入(整合) | 更多经验 = 更强记忆,schema 帮助组织 | 过滤的选择性比体量重要;预设 schema 是过度过滤 |
| 读取(召回) | 召回是记忆价值的主度量 | 召回好只解决一半问题,甚至不是难的那一半 |
| 使用(应用) | 召回了自然会用 | 召回-使用转化率与使用排名相关 ρ=0.89,召回仅 0.56 |
| 删除 | 删除服务于新鲜度(更新) | 用户意图驱动的精确删除几乎全部失败 |
四、问题定义:三篇如何形式化各自的任务
4.1 GroupAssistBench:双轴实例元组
一个实例是元组 (c, q, A, K):截止点 c 限定可访问历史 H<c;q 是 cutoff 处的查询;A ⊂ H<c 是必需记忆集合(答案所依赖的历史事实,每条锚定到某条消息);K 是答案键(L1 的参考事实集或 L2 的 rubric)。A 从不展示给被测系统——它决定依赖类型、生成 K、并允许把系统检索到的证据对照应找到的记忆核查。
两条正交轴:
- 任务轴:L1 记忆召回(问历史本身,有参考答案)× L2 记忆使用(开放服务请求,无固定答案,rubric 打分)。同一批群历史上建两级,使「召回 vs 使用」可直接对比。
- 依赖轴:M1 单一记忆 / M2 多条分布记忆(群聊里通常来自不同成员)/ M3 冲突记忆(含冲突对 (a_old, a_new),对话已使 a_new 成为现值;查询不提示任何变化,系统须自己察觉修订)。
L2 的 rubric 由三类准则组装:接地准则(从锚点实例化)∪ 罚项准则(对锚点与记忆状态的确定性触发器)∪ 服务准则(LLM 针对请求本身提出)。加权评分:正准则 +1 到 +3(必需记忆最重),罚项 -1 到 -3,归一化公式为 S = Σ w·m / Σ_{w>0} w。
4.2 WASP-Mem:多轮执行-整合循环
形式化核心是整合算子 M_{r+1} = C(M_r, B_r, F_r; S):第 r 轮的持久记忆库 M_r、执行轨迹批 B_r、对应反馈 F_r、摄取范围 S 决定哪些轨迹与反馈可进入整合。执行阶段检索零或多条相关页面、行动、记录轨迹;整合阶段读取当前库、抽象出可复用程序性知识(何时适用、做什么、什么会失败、如何诊断恢复)、按记忆系统的表示与接口写入或合并。只有更新后的记忆库带入下一轮,模型参数与 harness 保持固定。
程序性充分性标准规定整合后的过程必须包含四要素:(i) 目的、(ii) 适用条件、(iii) 可执行动作与实现细节、(iv) 失败时的恢复行为——这个标准允许表面表示不同但排除纯重放。
4.3 BEMULA:冻结模型下的记忆更新方程
agent 在第 t 轮依 a_t = π_θ(u_t, W_t, R(M_t, u_t)) 生成响应,随后 M_{t+1} = WRITE(M_t, W_t, u_t, a_t)。工作上下文 W_t 只存当前会话近期轮次,持久记忆 M_t 跨会话、由被测记忆系统维护。公式对记忆内部组织不可知,只假设检索 R 与写入 WRITE 两个操作——遗忘请求以自然语言到来,系统必须把它解释为删除指令并更新 M。成功标准:被请求的信息在请求后既不可检索也不可推断,其余内容完好,且类似事实仍可学习。
六类遗忘请求沿三轴组织(目标粒度 × 信息性质 × 操作语义):F1 事实(删单条原子事实)/ F2 组合(删多条)/ F3 语义(删整类,如全部医疗信息)/ F4 推断(删从未明说但可从已存事实推出的结论——数据保护法公认的难题)/ F5 时间(删某时段)/ F6 替换(旧值换新值)。
五、解法:三篇的核心机制与实验结果
5.1 GroupAssistBench:构建管线与两条改进方向
构建管线五步,每步规则+模型+人工三层质检:
- 定位请求:枚举 @ 助手的消息,同一模型带历史/无历史各答一次,比较器只保留历史改变答案的请求(13,782 个服务点 → 10,191 是请求 → 7,926 保留);
- 锚定记忆:提取器提出锚点 a=(f, t, e)(事实陈述、确立消息、逐字证据跨度),反事实检查删除后不改变响应的锚点丢弃;证据跨度逐字匹配失败即拒(22,843 条提案拒 154 条);
- 分配依赖类型:同消息/近重复锚点合并为记忆单元;M3 候选冲突对需三票一致才接受(595 候选对接受 338),并验证新值在 cutoff 处仍是现值;
- 构建实例:原生实例保真实请求;著者实例为覆盖余下锚点而写查询,每个事实前提须引用消息+逐字跨度,cutoff 放最后锚点后 20-200 条消息处;
- 质量控制:确定性门(锚点先于 cutoff、跨度逐字找到、查询不泄露必需记忆、M3 不暗示变化)+ LLM 审查(每个负面判断必须引用可程序化验证的原文引用)。9,542 实例通过两层,120 实例分层人工复核 95.8% 有效(多数票)、成对一致率 93-98%。
14 种配置的主实验(4 个全上下文骨干 + 4 种 RAG + 6 个外部记忆系统,检索与外部记忆统一用 GPT-5.6-terra 做任务 agent)得到四个结构性发现:
- 召回好 ≠ 用得好:EverMemOS(3D 层级外部记忆)L1 met 0.621 超过同骨干全上下文的 0.570、总排名第 3,但 L2 平均 0.247 排第 10;所有外部记忆系统 L2(0.139-0.269)低于所有 RAG(0.334-0.370),后者又全部低于全上下文 GPT-5.6-terra 的 0.431。L1/L2 排名倒挂揭示了瓶颈从检索转向应用。DeepSeek-v4-flash 全上下文双第一(L1 0.669 / L2 0.469)。
- 依赖复杂化全面降分:全上下文 GPT-5.6-terra 的 L1 从 M1 0.685 降到 M3 0.377,L2 从 0.505 降到 0.303。但两个 3D 外部记忆系统(EverMemOS、xMemory)L1 退化最缓(0.679→0.561 / 0.620→0.435,对比全上下文 0.685→0.377),说明层级组织在聚合多锚点证据上有潜力。
- 召回-使用转化的量化:497 个 L1 直接查询过且同群 L2 需要的配对记忆中,六个记忆系统「召回了但没用上」占 21-27%,全上下文模型仅 11-16%;该比例与 L2 排名相关 ρ=0.89,召回本身仅 ρ=0.56。拆解未使用记忆:36% 从未进入 L2 输入(检索失败——L2 请求往往不像 L1 问题那样点名目标记忆),64% 在输入里仍没用(应用失败)。
- 成本两极:dense 检索全程总成本 $55 vs 全上下文 $260;EverMemOS 最强 L1 但成本 $814.9、需 11,138 次查询才收回构建成本。
评分器可靠性:三个标注员对 60 个 L2 实例×3 个真实响应共 1,152 条准则判断独立打标,judge(GPT-5.6-sol)与人类多数票一致率 89.3%,与标注员相互间一致率(89.8%)持平;judge 的错误是单向的——接地/服务准则只漏不虚给(对转述措辞漏判 14.2%)、罚项只多罚不放过(多罚 4.7%),两个方向都压低分数,故自动分数应读作保持系统排序的保守估计;judge 对三系统的排序与每个标注员完全一致。【论文实验已支持】
两个针对性改进实证有效,且增益模式与失败分解精确对应:
- 关系化证据精炼(RER):显式化检索记忆间的关系(互补、时序、更新、冲突)并沿关系补充缺失支撑证据,不依赖请求措辞。缺失证据占 LightMem 未用记忆的 74% → RER 给它最大增益(L1 +8.4pp、L2 +6.3pp);层级系统证据更全(未用记忆中缺失仅 22%/14%)→ 增益较小。
- 协助约束绑定(ACB):把已检索到的记忆解释为响应约束——判定每条记忆事实的主体、范围、状态、适用性,代码核验来源与引文、去除重复与不适用约束后作为独立输入供生成。输入中未用记忆占 xMemory/EverMemOS 未用的 78%/86% → ACB 对它们的 M1 增益最大(+6.77/+6.63pp,M1 恰好隔离解释与执行环节)。二者组合对每个系统都是最优,但增益小于分别之和——每条未用记忆只落入一个瓶颈。
5.2 WASP-Mem:Free Form wiki 与四维受控实验
方法:consolidator agent 通过三个接口操作 wiki 文件系统——Ingestion(子代理回溯审查会话轨迹、识别可行动观察、增改删页面与链接)、Query(从 index.md 出发、语义检索+shell 导航定位相关页并沿链接行走,语义索引每次整合后重建)、Lint(提示规则+脚本审视泛化性、可复用性、歧义、超长、链接完整性、冲突,决定页面分裂/合并/重链)。Free Form 是基本形态:页面是无约束 markdown + 最小元数据头,整合器自行决定结构;写前读现有 wiki = 隐式 agent 管理去重。
实验 1(整合方法):Free Form 在 TheAgentCompany 上三个模型全部领先——Claude Opus 4.6 / GPT-5.4 / GLM-5 分别 72.3% / 72.5% / 72.5%(No Memory 58.5/60.0/58.9,提升 +12.5~+13.8pp),超最强 baseline(Insights 65.7 / SkillX 65.3)4.6-6.1pp;存储仅 233-255KB,比 No Consolidation(7,979-8,480KB)小约 94-97%,是所有整合方法中最小的。τ2-Bench Retail 不相交 held-out 上 +10.9~+15.0pp、领先或平最佳 baseline。
关键反直觉结果:加人工 schema 反而全面变差——Schema Form 比 Free Form 低 2.1-6.1pp 且存储增 2.3-3.5×;再加显式去重规则(Schema Form-ED)再低 1.5-6.8pp 且存储增 3.3-7.2×。论文用过滤假设统一解释:记忆整合的价值不在体量而在选择性过滤,两种失败模式并存——欠过滤(No Consolidation 存全量轨迹、Insights/SkillX 独立处理各会话产生重复条目)与过度过滤(schema 固定字段丢弃设计时未预见的实现细节;SkillX 刚性三层结构丢上下文)。Free Form 的平衡点在于:写前读 wiki 实现隐式去重(欠过滤侧),无约束页面保留执行揭示的任何可行动细节(过度过滤侧)。定性案例很有说服力:SkillX 为同一个 GitLab API 认证过程建了 15 个独立页面;Schema Form 在一个幻灯片任务里记下步骤名却丢了代码与格式细节(动作被命名但不可执行);Schema Form-ED 的确定性匹配甚至把「用 Python 批改 ML 试卷」与「用 Python 抽视频帧」错误合并进同一动作页——显式规则在语义判等上反而不如 LLM 的情境判断。
成本结构:整合一次 127 任务批的 API 成本约 $96-380(Free Form $118-202),每轮执行批约 12 小时墙钟时间,Checkpoint-binary + Human 反馈每批需合格标注员约 6 小时——人类诊断虽强,但这是明示的成本项。存储侧的证据同样支持过滤假设:同一方法内更富反馈使存储从 200-235KB 增到 328-343KB 且性能提升(方法内增长代表有用信号),跨方法则更大的库买不到更高通过率(方法间对比代表选择性差异)——两个方向的对比把「过滤假设」与「简单压缩目标」区分开来。
实验 2+3(反馈×摄取范围交互):这是全文最漂亮的交叉发现。失败轨迹的价值由反馈丰富度解锁——Both 摄取在 Self-Judge 下变化仅 -0.7~+0.1pp(无外部信号时失败只是噪声),Checkpoint-binary 下 +5.9-6.4pp,加人类诊断后 +9.6-10.5pp;反向看,富反馈只改 Success-only +0.9-2.0pp、改 Both +10.9-12.2pp。诊断反馈的贡献集中在失败轨迹:它使失败变得可解释,而非给已成功的轨迹添信息。
实验 4(多轮精炼):Checkpoint-binary + Human 下每轮单调升,R4 达 85.6-86.7%(R1 贡献 +17.1-17.5pp,R3→R4 仍有 +3.1-3.9pp);Claude 全通过任务从 R0 的 46 个增到 R4 的 92 个——局部 checkpoint 修正复合成端到端成功。而 Self-Judge 低且非单调、R4 仅 65.5-68.8%。一轮人类诊断(75.8-77.1%)超过四轮自评 7.0-10.9pp:反馈质量压倒 rollout 数量。体积控制排除了替代解释:pooled Insights/No Consolidation 吃进 635 条轨迹(比 Free Form R4 的 508 条更多)单遍整合,仍落后 6.1-7.1pp——不是量的问题。
5.3 BEMULA:五阶段管线、五套件指标与全面失败
构建管线五阶段多 agent 协作:画像合成(6 种子属性 → 12 类 2,993 条原子事实 + 77 条由 ≥2 条原子事实组合并经独立 LLM 验证的派生事实)→ 对话规划(50 个场景池、四档长度、规划请求类型/提及次数/表达风格,不写内容)→ 对话模拟(用户/助手模拟器 + 导演/验证器双监督;助手只见当前会话最近 10 轮、无早期会话记忆)→ 请求注入(五种表达风格从直接到隐式;控制版用等长中性闲聊替换请求与确认)→ 问题生成(五套件模板 + LLM 措辞 + 可回答性检查)。
评测协议:每实例两遍——控制遍摄取控制版答 retention(+preservation/attack 的控制探针),遗忘遍重置后摄取遗忘版答 efficacy/preservation/attack/relearning;每题在只含问题的新鲜会话中提出,答案必须来自记忆。条件化打分是防刷分核心:有效正确 z̃ = z ∧ c(该题得分以配对控制探针通过为前提),retention 与 F6 新值题无对照 c=1。
五套件五指标:RA 保持率(正常记忆能力)/ FE 遗忘效能(目标答为 [FORGOTTEN] 且不泄漏值)/ PR 保持(控制版答对的干扰事实在遗忘版仍答对——抓过度删除)/ RLA 再学习(附短对话陈述同型新值后能否摄入并回答)/ AR 攻击鲁棒性(五类攻击框架——间接提问、角色扮演、越狱前缀、布尔猜测、多跳推理——目标答为 [NO LEAK])。请求通过率 RPR 最严:该请求全部题目与其实例全部保持题都条件化正确才算过。总分 = FA(√FE·AR) × UG(√PR·RLA),乘法结构使任一维度为零则总分归零——全删系统与从不遗忘系统同分。
LLM judge 的人工校验:100 个分层抽样判定项上标注员与 judge 一致 98 项、Cohen’s κ 0.96——评分基础设施本身是可靠的,负结果不是 judge 噪声的产物。人工实例抽检:10 个覆盖四档长度的随机实例、388 道题人工核对金答案。
数据层面还有两个值得记录的细节:1,314 道保持/检索题可直接检索回答,其余 428 道需一到两跳跨事实推理——间接提问(不需要任何提示词技巧)是对「删太少」系统最有效的攻击,越狱前缀反而最无效,恰与 Full Context 的模式相反;三档敏感度标签(低/中/高)中约三分之一数据带中高敏感标记,任务设定对齐真实隐私场景。BEMULA-Lite(31 个短中档实例、848 题)保持全部指标定义不变,供成本受限的复测使用。
结果全线告负:
- 全部系统×骨干组合 RPR ≤1.5%(LangMem+DeepSeek-V4.1-Flash 最高 1.5%,绝大多数为 0);总分最高 31.0(LangMem+DeepSeek),GPT-5.6-Luna 骨干最高 23.1(Full Context)。
- 失败模式两极分化:Mem0/LightMem/SimpleMem 保持率 87-93 但 efficacy ≤25(Mem0 在 GPT 骨干仅 8.5-17.0)——删不动;LangMem 在 GPT 骨干 efficacy 37.9 最高但 preservation 崩至 20.0(连用户街址这种没被请求删的都删了)——删过头。FE-PR 平面上「双高」区域(双 80+)完全空白。
- 攻击鲁棒性是全场最低天花板:所有设置 ≤35.7,Mem0 在 GPT 骨干低至 4.7(间接提问几乎每次都能套出被删值,AR 2.4)。即使系统报告信息已删,合适的提示通常能再提取——值仍可从系统恢复。
- 机制归因到删除通道:Naive RAG 无删除路径(请求轮像普通轮一样被嵌入存储);LightMem 的更新合并阶段离线运行、请求够不着;SimpleMem 每窗口压缩一次永不编辑;Mem0 原则上可删但摄取管线须自己决定删除;A-MEM 靠笔记演化改写相关笔记实现「覆盖式遗忘」(F1/F2 效能 46.2/52.0 全场最高,正好拟合其只覆盖不删除的机制);LangMem 是唯一有对话中删除通道的系统(默认关闭、需开启,且删除只作用于当前批检索到的笔记——随对话变长效能从 66.7 衰减到 21.9)。
- Full Context 反而相对均衡:遗忘被化归为指令遵循任务(DeepSeek 骨干 FE 53.6),但代价是过度拒答——81 次保持失败中 66 次是一刀切「我没有这个信息」;越狱前缀直接覆盖指令使其 AR 对 jailbreak 最弱(GPT 骨干 9.7)。
- 对话长度效应:LangMem 唯一可用的删除通道随对话变长而衰减(效能最短档 66.7 → 最长档 21.9);几乎每个系统的保持率都随长度退化(Full Context 70.0→26.7)——附带损伤随规模增长;再学习对 Full Context 全程近 100(原始历史一直在上下文里)但存储型系统在最长对话上掉到 51.4;攻击鲁棒性几乎不随长度移动——泄漏是结构性的而非长度诱发的。
类型与骨干:F6 替换在两个强骨干上接近解决(每系统 ≥61.9——新值直接进记忆即可),但旧值逐字存活、攻击下每个系统 ≤30.5;F3 语义/F5 时间最难(需跨多条目范围化删除);骨干本身影响巨大——GPT→DeepSeek 使 Full Context 效能 26.8→53.6,Qwen3-32B-AWQ 上提取阶段崩溃、总分不超 9.5。
六、知识反推:如果只看结论,哪些因果链是稳的
6.1 三条主因果链的强度评估
机制 A:群记忆瓶颈在应用而非检索(GroupAssistBench)。
因果链:L2 请求不像 L1 问题那样点名目标记忆(真实群聊请求是普通消息,不围绕记忆所在事项组织)→ 外部记忆系统的检索是线索依赖的 → 36% 未用记忆从未进入输入;进入输入的记忆在请求不共享措辞、不围绕同一事项组织时也用得更少 → 64% 在输入中未被应用 → 召回-使用比例与 L2 排名相关 ρ=0.89(召回仅 0.56)→ 外部记忆的摘要/抽象在开放服务中丢失可执行约束(rubric 罚项正是「用旧值/违反约定」)。【论文实验已支持——每环有对应诊断:四系统在 L1 点名时检索同一记忆 84-100%、词汇重叠增加使输入覆盖 62%→83%、原生 vs 著者请求的使用率差距(记忆系统 30% vs 51%)且在各重叠带内持续】
值得注意的反向证据与边界:EverMemOS 的 L2 从 M1 0.137 升到 M2 0.284——依赖更复杂反而更高,论文归因于 M2/M3 更多接地准则(更多必需记忆=更多得分点),说明 L2 分数跨依赖类型不可直接比较;judge 保守性检验显示「在场未用」比例作为上界、judge 漏判会使其降约 1/7。
机制 B:过滤选择性 > 体量;agent 自组织 > 人工预设(WASP-Mem)。
因果链:程序性知识在执行前不可预见(哪些隐藏条件引发下一次失败无法预知)→ 设计时的预设组织(schema 字段、三层层级、确定性匹配规则)系统性地丢弃 schema 外实现细节或错误合并语义不同的过程(过度过滤/假合并)→ 而写前读 wiki 的隐式 agent 去重 + 无约束页面同时抑制欠过滤与过度过滤 → 最小存储 + 最高通过率。人的精力应反应式投入:失败诊断(解释失败原因与纠正程序)把失败轨迹从噪声变成纠正性知识。【论文实验已支持】
边界与保留:单次运行、未量化种子方差(论文自陈小于 ~2pp 的差距应视为未定,如 Task-binary 与 Checkpoint-binary 间 0.2-1.7pp);训练测试同任务分布测的是重复性工作流深化而非无限制泛化;Schema Form 在全通过率(all-or-nothing)上反而小幅领先(Claude 48.8% vs 48.0%)——Free Form 的 checkpoint 优势分布在部分完成任务上,两个指标值得都报。人类诊断需每 rollout 批约 6 小时合格标注员投入,可扩展性是明示的未来工作。
机制 C:选择性遗忘是结构性未解(BEMULA)。
因果链:现有系统删除只服务信息新鲜度 → 无「解释自然语言删除意图并精确执行」的机制 → 冗余表示(原始轮次+抽取事实+压缩笔记)删一漏其余(且残留可被间接提问直接提取)→ 或删除范围失控(LangMem 连未请求的街址也删)→ FE-PR 双高区空白。低分非评测苛刻而是真实失效:要么信息仍可被简单攻击提取(AR ≤35.7),要么删除远超请求(PR 崩溃)。【论文实验已支持——bootstrap CI 显示无系统效能区间上界超 60.2、无攻击鲁棒区间上界超 41.4,中心负结论不依赖特定 50 实例抽样】
边界与保留:对话全合成(单一生成管线)、仅覆盖会话记忆(工具使用 agent 可能在缓存/日志/外部服务残留遗忘值);每类型/每档长度单元格样本少(13 个 F4 请求、3 个 xlong 实例),类型级差异应读作描述性而非确证性;LangMem 与 Full Context 在 DeepSeek 骨干上总分差 2.5 的配对 CI 为 [-2.4, 7.6],读作平手。
6.2 相关工作对照与适用边界
| 研究(可核验链接) | 与三篇的关系 | 互证或张力 |
|---|---|---|
| LongMemEval | 长程会话记忆召回基准,三篇共同的对照物 | 其知识更新分支只测「答最新值」,BEMULA 指出它不测旧值是否移除——评测单位差异定义了发现差异 |
| TheAgentCompany | WASP-Mem 主实验载体(127 任务 542 checkpoint) | 企业工作流 + checkpoint 级判分使「程序性转移」可测;WASP-Mem 复用而非新造判据 |
| Mem0 | 三篇共同被测系统 | GroupAssistBench 中 L1 0.370/L2 0.245 双低;BEMULA 中保持 89.7 但效能 8.5、间接提问几乎必泄漏——「写取组强、删缺位」的典型样本 |
| A-MEM | 两篇被测系统 | BEMULA 发现其笔记演化=覆盖式遗忘(F1/F2 效能全场最高但删除式请求仍存活)——机制决定失败模式的教科书案例 |
| Memora (FAMA 指标) | 最接近 BEMULA 的遗忘评测 | 失效隐式随对话演化 vs BEMULA 显式请求+提取/再学习探测——BEMULA 把「删没删干净」独立出来 |
| MemGPT | 分页记忆管理先驱 | WASP-Mem/BEMULA 都引其作代表;其 OS 隐喻与 WASP-Mem 的 wiki 隐喻是两种记忆组织哲学 |
| ICF-Bench(in-context forgetting) | 单会话推理时抑制干扰信息 | 即便最强模型也泄漏相当比例——与 BEMULA 的 AR 天花板互证:遗忘难不止在存储层 |
| AutoManual / Agent Workflow Memory | WASP-Mem 相关工作里的程序性/技能系方法 | 论文将其归入「无跨会话去重与核验」一类;Free Form 的差异化恰在写前读的隐式整合 |
一个值得点出的跨篇张力:GroupAssistBench 里层级外部记忆(EverMemOS)L1 最强但 L2 垫底,其摘要/抽象被指为丢失可执行约束的原因;而 WASP-Mem 里对轨迹做抽象蒸馏的 Free Form wiki 却在执行任务上最强。二者并不矛盾——WASP-Mem 的 wiki 页保留的是可执行细节(条件、动作、实现、恢复),抽象掉的是冗余过程;EverMemOS 类系统的摘要恰恰压缩掉了约束性细节。抽象不是问题,抽象掉了什么才是。【阅读者推测——两篇论文均未直接做此对照,此为基于机制描述的推断】
6.3 综合判断与未决问题
多研究共同支持的结论:
- 记忆生命周期四阶段中,「使用」与「删除」是当前最弱两环,且弱得结构化(应用失败 64% vs 检索失败 36% 的分解;删除失败 0 通过率)——不是调参能修的,要改记忆系统的设计目标。
- 人工预设结构在记忆写入侧系统性不如 agent 自组织(WASP-Mem 六个模型-基准组合全部复现);人工介入的最优位置是反应式诊断。
- 真实数据与合成数据的基准结论可能定性不同:GroupAssistBench 用真实群聊发现「请求不围绕记忆事项组织」是使用失败的线索根源,而既有合成基准的问题天然围绕记忆组织——这是合成基准的结构性盲区,BEMULA(全合成)同样需要警惕此点。
仍属推测或证据不足的部分:
- GroupAssistBench 的 RER/ACB 增益(+1.8~+9.2pp)能否弥合与 Full Context 的 L2 差距——目前最好组合(EverMemOS+RER+ACB 0.291)仍距 0.431 很远,论文未讨论天花板在哪。【阅读者推测:外部记忆的 L2 劣势可能部分来自统一的 GPT-5.6-terra 任务 agent 与各系统自带 wrapper 的适配损耗,附录 F.2 的再切片显示生成模型差异可解释部分差距】
- WASP-Mem 的「一轮人类诊断 > 四轮自评」在人类诊断可自动化的假设下会否坍缩——论文自陈自动化诊断而不退回不可靠自评是最直接的扩展路线,但尚无实验。
- BEMULA 的六类请求在真实用户分布中的频率未知——F3/F5 最难但可能也最常见(GDPR 式「删掉我所有医疗信息」是 F3),合成分布 24-29 条/风格是均匀设计而非自然分布。
6.4 三篇合读的方法论收获
如果只从写作手法上学三篇,各有一点最值得偷:
- GroupAssistBench 的成本透明:论文附录 I 完整公布构建成本(计算 $36,549 + 人力 $16,800 = 总计 $53,349),人力按角色分解(设计 240 人时、构建标注 480 人时、质保 160 人时)。真实数据基准的可信度很大程度来自这种「我知道它贵、贵在哪」的诚实——也为后来者评估「要不要复刻」提供了预算参照。
- WASP-Mem 的矩阵化受控设计:每个实验只变一个焦点维度、固定其余(Table 6 明示),共享条件复用同一规范结果——四个实验交织成一张能互相校验的网,这是行为科学实验设计在 agent 研究里的标准范式移植。
- BEMULA 的「先想好怎么作弊再设计指标」:作者先枚举退化策略(从不存储/全删/拒答),再逐个设计反制(配对 retention 探针、条件化打分、乘法总分)。负结果基准尤其需要这个顺序——否则「全部系统失败」可能只是指标可以被平凡满足或平凡拒绝。
七、通用性灵感
灵感一:把复合能力拆成配对条件化测量,堵死退化策略。
BEMULA 的 z̃ = z ∧ c(效能分以控制版存过为前提)与 GroupAssistBench 的有/无历史双答定位,本质同一招:一个可观测结果背后混合了多个能力时,构造配对反事实使只有「真具备且真运用」的组合才得分。全删、全存、从不编码的退化策略全部拿不到分。这一招可迁移到任何「行为正确但原因不明」的评测:模型答对了是因为检索对了还是因为猜?A/B 实验转化提升是因果还是回归均值?配对条件化是最便宜的去混杂手段。
灵感二:评测准则从真实用户负反馈派生,而非设计者想象。
GroupAssistBench 的五类罚项来自 97 条真实用户对部署助手的纠正性反馈(「不是三张,我做了四张」「现在应该是地理,不是生物」),权重按反馈频次排序。这比实验室拍脑袋的 rubric 有天然的外部效度。任何面向真实部署的系统,负反馈日志都是被浪费的评测规格书——客服系统的差评、代码评审机器人的 reject 理由、推荐系统的负样本,都可以聚类成罚项准则。
灵感三:设计自动化系统时,把人的精力放在反应式诊断而非前瞻式规定。
WASP-Mem 的分工原则(agent 组织、人诊断)是对「人在回路」的一次重新切分:预设 schema 是设计时对未来知识形态的猜测,注定覆盖不全(哪个 API 会出哪个错无法预知);而失败诊断是对已发生事实的解释,人的判断力恰好用在刀刃上。这个原则适用于一切「规则追不上现实」的领域:内容审核的规则库 vs 事后case 复盘、SRE 的告警规则 vs 事故根因分析、数据质量的前置校验 vs 事后数据剖析。
灵感四:检索系统要为「不点名目标的请求」设计关系补全。
GroupAssistBench 的 RER 增益模式(缺证据越多增益越大)指出一个通用设计:用户请求常常不直接复述所需信息的措辞(「出发日提醒没交钱的人」不包含「5 月 1 日集合」「不到场发 500 红包」的词汇),纯相似度检索必然漏。沿「同一成员/事件/决策」的关系图补全证据,是不依赖请求措辞的检索增强。RAG 系统的 query rewrite、多跳问答的实体图扩展,都可用这个「缺失证据占比」诊断来决定值不值得做。
灵感五:乘法总分惩罚任何单维度归零——评价复合目标时慎用加权平均。
BEMULA 的 Score = FA × UG 设计让「全删换遗忘」与「全留换保持」同分归零,而加权平均会给偏科系统留下刷分空间。任何多目标评测(速度×质量、覆盖×精度、安全×能力)都该考虑乘法结构或字典序,让「不能为零的维度」真正不可交易。
灵感六:冗余表示是删除操作的敌人——写入时的每种冗余形式都是删除时的一道欠账。
BEMULA 揭示的「删一漏其余」提示:为读优化的一份数据多存(原始+抽取+压缩)设计,在删侧成倍放大成本。数据系统设计里的读放大/写放大权衡,还应该加一个「删放大」维度——这在隐私合规越来越硬的语境下(被遗忘权)会从边缘考量变成核心约束。
灵感七:同一指标在不同依赖结构上不可直接平均——先看分层数据再下结论。
GroupAssistBench 里 EverMemOS 的 L2 从 M1 到 M3 反而上升(0.137→0.284),表面看「冲突记忆上表现更好」,实际是 M2/M3 实例有更多接地准则(更多必需记忆=更多得分机会)。如果只报告依赖类型上的平均值就会误读。任何按难度/类型分层的评测,都应先检查「得分点的分母是否随分层变化」——分子涨了可能只是分母涨了。这也是 WASP-Mem 坚持同时报 checkpoint pass rate(部分完成可见)与 fully-passed rate(端到端可见)的原因:Free Form 的优势在前者、Schema Form 在后者小幅反超,单一指标会给出片面的故事。
附:三篇论文的快速对照卡
| 维度 | GroupAssistBench | WASP-Mem | BEMULA |
|---|---|---|---|
| 类型 | 评测基准 | 方法+受控研究 | 评测基准 |
| 数据规模 | 50 群 / 80,299 消息 / 2,395 实例 | 127 任务 / 542 checkpoint(主) | 50 实例 / 746 会话 / 135 请求 / 1,742 题 |
| 数据来源 | 真实部署群聊(脱敏) | agent 执行轨迹 | LLM 五阶段合成 |
| 被测对象 | 4 骨干 + 4 RAG + 6 记忆系统 | 3 模型 × 7 方法 × 4 反馈 × 2 范围 × 5 轮 | 6 系统 × 3 骨干 + Full Context |
| 核心指标 | L1 Atom Recall / L2 rubric S̄ | checkpoint pass rate / 存储体积 | RA/FE/PR/RLA/AR/RPR/总分 |
| 核心数字 | 0.621 vs 0.570(L1);0.247 vs 0.431(L2) | 72.3-72.5% vs 65.3-65.7%(233-255KB) | RPR ≤1.5%;总分 ≤31.0 |
| 一句话 | 记住不等于用好 | 让 agent 组织,让人诊断 | 不会按请求遗忘 |