← 返回闯关手册
ArchSynapse AI · 2026-08-04 · ★★★★☆ 精读(跨会话记忆评测)

《Agent 评测实战》加餐二 | Agent 记忆怎么评:五种记忆能力、记忆幻觉与"记错比忘记更可怕"

为什么值得读

记忆评测是全新主题:评测单位从「一次会话」变成「一条长时间交互流」。LongMemEval 五能力骨架、记忆幻觉陷阱题、AMA-Bench 的「自我行为记忆」洞见,以及跨会话任务模板——藏书唯一的记忆评测方法论。

核心内容速览

适合谁 · 怎么用

先修:无硬先修,建议先读 a05。做有跨会话记忆的 Agent(客服、长期项目助理)的团队必读。先造一道「知识更新」任务和一道「记忆幻觉陷阱题」,比跑一百次单轮评测更能建立信心。

闯关自测

先合上原文在心里作答,再点开对照。全对 = 本篇真正通关。

Q1 LongMemEval 的五种记忆能力是什么?重点评哪两个?

信息提取、多会话推理、时序推理、知识更新、弃权。重点是知识更新(用过期信息自信办错事)和弃权(没提过就直说,别编)。

Q2 为什么说「记错比忘记更可怕」?

忘记是诚实的失败(触发弃权,用户补充即可);记忆幻觉是自信的失败——不问不迟疑地基于编造的记忆行动,且因「看起来很确定」最难被当场发现。必须一票否决。

Q3 记忆评测为什么要用「脏」环境?

考跨会话记忆必须带预置历史;可复现的单位从「单次任务」变成「历史 + 这次提问」——保证那段历史每次一模一样地重放即可。

以下为原文全文

上方为本站原创导读,下方为原文完整收录,便于对照阅读。

这一讲补一个专栏正文没细讲、但生产里越来越要命的维度——记忆。

如今的 Agent 越来越"记事":跨会话记住你的偏好、记住这个客户过去的工单、记住一个长项目进行到哪一步了。记忆是 harness 的一部分,但它带来了一类全新的失败模式——不是"这一次没做好",而是"它记错了、记串了、或者该忘的没忘"。

举个退款客服 Agent 的例子。客户三个月前在一次会话里说过"我的退款请打到新卡,尾号 6789"。三个月后他又来办退款,Agent 该不该记得这件事?如果它记住了、直接用新卡——很贴心;如果它忘了、还用旧卡——退款打给了一张已注销的卡,出事故;最可怕的是第三种:它"记得"一张客户从没提过的卡,自信地把钱打过去。

这三种情况里,只有第一种是对的,而后两种——尤其第三种——单看这一次会话根本看不出来。那次对话可能流畅、礼貌、逻辑自洽,只有把它放回"三个月前那句话"的上下文里,你才看得出它错得多离谱。这就是记忆评测最本质的难点:评测的单位,从"一次会话"变成了"一条跨越很长时间的交互流"。

记忆的五种能力:给"记性好不好"一个可测的骨架

"记性好不好"太笼统,没法评。业界最有影响力的记忆基准 LongMemEval(arXiv 2410.10813)把它拆成了五种可分别测的核心能力——这套拆法,是这一讲最该记住的骨架:

  1. 信息提取(Information Extraction):能从很久以前、藏得很深的对话里,把那个具体细节捞回来吗?("客户尾号 6789 的新卡")
  2. 多会话推理(Multi-Session Reasoning):把散落在好几次会话里的事实拼起来推理。(第一次说"我搬到上海了",第二次问"我能约同城退货吗"——得把两件事连上)
  3. 时序推理(Temporal Reasoning):正确使用时间线索,无论是显式的("上个月")还是隐式的("上次沟通之后")。
  4. 知识更新(Knowledge Updates):用户改了主意,旧信息要被新信息覆盖、作废。(先说打旧卡、后改口打新卡——必须用新卡)
  5. 弃权 / 拒答(Abstention):当某个信息从没被提供过时,要老实说"你没告诉过我",而不是编一个。

LongMemEval 用 500 道题、把对话历史撑到 11.5 万到 150 万 token 的规模来考这五项。结果很扎心:当前最强的商用和开源模型,相比"完美检索"(oracle)的理想情况,准确率会掉 30%–60%。这个数字告诉你:记忆是当下 Agent 一个真实且巨大的短板,绝不是"接个向量库就解决了"的事。

这五项里,最容易翻车、也最该你重点评的是第 4 和第 5 项。信息提取做不好,顶多是"忘了",还算诚实;但知识更新做不好,是拿着过期信息自信地办错事;弃权做不好,则直接滑向下一个话题——记忆幻觉。

在开始造评测集之前,先分清一个常被混淆的区别:短时记忆和长时记忆,失败方式不一样,评法也不一样。短时记忆,指的是装在当前上下文窗口里的东西——这一次会话里前面说过的话。它的失败通常是"上下文太长、中间的信息被稀释了"。长时记忆,指的是持久化存起来、跨会话调取的东西——通常靠一个外部记忆库 + 检索。它的失败则是"该存的没存、该取的没取、或者取回来一条过期的"。上面那五种能力,主要压的是长时记忆;但评测时你要清楚自己在考哪一种,否则会把"检索没召回"和"上下文太长记不住"这两种病混为一谈、开错药方。

记错比忘记更可怕:记忆幻觉

幻觉是模型编造没有依据的内容。记忆场景有一种专门的幻觉:Agent 对自己的记忆产生幻觉,"记得"一件根本没发生过的事。2026 的 HaluMem 这类基准,就专门盯记忆的一致性与幻觉。

为什么说"记错比忘记更可怕"?因为忘记是诚实的失败——一个设计良好的 Agent,忘了就该触发"弃权",回一句"这个您得再提供一下"。用户会补,事就办成了。但记忆幻觉是自信的失败——它不问、不迟疑,直接基于一个编造的记忆往下办。退款打给一张虚构的卡、按一个客户从没同意过的方案处理——这些都是记忆幻觉酿的事故,而且因为它"看起来很确定",反而最难被人当场发现。

所以评记忆时,你要专门造"陷阱题"去钓记忆幻觉:在历史里不放某个信息,然后去问它——一个好 Agent 应该弃权,一个会产生记忆幻觉的 Agent 会当场编一个给你。

这里还有一个容易被忽略的评测取向问题:记忆幻觉必须当成"高危一票否决项"来判,而不是简单扣分。一次记错卡号造成的错误退款,危害远大于十次"忘了、老实问一句"。如果你的评测把这两种一视同仁地算"答错一题",那分数会严重低估记忆幻觉的真实风险。稳妥的做法,是给"自信地记错并据此行动"这类失败单独设一档最重的惩罚。

一个关键洞见:你的 Agent 记的不只是"用户说的话"

再给你一个来自 2026 新基准 AMA-Bench 的重要洞见,它纠正了一个普遍的评测盲区。

大多数记忆基准(包括 LongMemEval)是对话中心的——考的是"人机聊天记录"。但 AMA-Bench 指出:真实 Agent 的记忆,远不只是用户说过的话,而是一整条"Agent 与环境交互"的流——它自己调过哪些工具、拿到过哪些返回、改过环境的哪些状态。这些机器生成的记忆,体量比对话大得多,也同样会被"记错"。

放到退款 Agent 上:它不只要记住"客户说过什么",还要记住"它自己上一轮已经给这个订单退过一次款了"。如果这条自我行为的记忆丢了,它可能对同一个订单重复退款——这类失败,用只考对话的记忆评测,根本测不出来。所以你的记忆评测集里,一定要有一类任务专门考"它记不记得自己做过什么"。

落到你自己的 Agent:记忆评测怎么搭

第一,造"跨会话"任务,中间埋记忆考点。一条记忆评测任务天然是长的:早期会话里埋一个事实("客户说要打新卡"),中间隔几轮无关对话,后期再考它("现在办退款,打哪张卡")。这类任务的设计,正是"造高质量任务"的手艺在时间维度上的延伸。

第二,记忆评测需要"脏"环境。"每次试验从全新、干净的环境开始"这条铁律在这里恰恰相反——记忆评测需要一个带着历史的、"脏"的环境,否则无从考"跨会话记忆"。这不矛盾:干净起点针对的是"单次任务的可复现";而记忆评测里,那段预置的历史本身就是任务的一部分,你要保证的是"这段历史每次都一模一样地重放"。换句话说,可复现的单位变成了"历史 + 这次提问"。

第三,用 oracle 对照隔离问题。记忆答错了,是"记忆系统没检索到"还是"模型拿到了也不会用"?LongMemEval 的办法值得抄:给模型一个完美检索(oracle,直接把该记住的事实喂给它),看它能不能答对。能→问题在你的记忆/检索层(去优化召回);还不能→问题在模型推理层。这就是"检索器的问题还是生成器的问题"在记忆场景的直接翻版。

第四,重点压测"知识更新"、"弃权"、"自我行为记忆"三类。造"用户中途改主意"的任务考更新、造"从没提过"的陷阱题考弃权与记忆幻觉、造"考它记不记得自己上一轮干了啥"的任务考自我记忆。这三类是生产事故的高发区。

第五,别忘了防污染。如果你的记忆考题(尤其那些陷阱题的"标准答案")泄漏进了系统提示或训练数据,Agent 就是在开卷考试,你测了个寂寞。记忆评测的考点往往很具体(某张卡号、某个日期),格外要小心它们别以任何形式提前泄漏给被测 Agent。

动手:一条跨会话记忆任务长什么样

给退款客服 Agent 造一条考"知识更新"的记忆任务,结构大概是这样(每一段都是一次独立会话,中间可以隔很多天):

这条任务一次就同时考了信息提取、知识更新、弃权三项,而且每一种错都对应一个明确的判定档位。你甚至可以再加一条"陷阱分支"——客户从没提过发票抬头,却问"用我之前给的抬头开票",看 Agent 会弃权还是编。造几条这样的任务,你对自己 Agent 记忆的信心,会比跑一百次单轮评测扎实得多。

评分上有个要点:别只报一个总的"记忆准确率",要按五种能力分开报——一个 Agent 可能信息提取很好、但知识更新很差,合成一个总分会把"它总用过期信息"这个致命病灶盖住。分开报,你才知道该去修哪一层。

线上的记忆失败,最难复现——怎么抓

离线评测能覆盖你想得到的记忆考点,但生产里最棘手的记忆失败,往往是你离线压根没想到的:某个客户特定的历史组合,触发了一次诡异的记错。这类失败有个共同特点——极难复现。等你想去查,那条跨越几周的交互流已经埋在海量日志里了。

所以记忆型 Agent 对可观测性要求格外高:你不仅要记单次会话的 trace,还要能把同一个用户 / 同一个长任务的多次会话串起来看——记忆是在哪一次会话写入的、哪一次被检索出来、检索回来的是不是过期的那条。没有这种"跨会话可追溯",线上一旦出现记忆事故,你只能干瞪眼。而抓到之后,就走回流闭环:把这条真实的记忆失败,固化成一条离线的跨会话评测任务,让同样的记错不再发生第二次。可以说,记忆型 Agent 的评测集,有很大一部分注定要从线上"喂"回来——因为记忆的长尾,办公室里想不全。

顺带一提,2026 也有像 RealMem 这样面向项目式长期交互的基准(不是零散闲聊,而是一个跨越很久、有连续目标的项目),思路和这里一致:越贴近真实的长时程使用,越能暴露记忆的真实短板。

小结

一句话:记忆让 Agent 更强,也让它多了一整类"自信地错"的方式。评测的职责,就是在它把编造的记忆变成生产事故之前,先把这些坑照出来。

思考题

  1. 你的 Agent 有跨会话记忆吗?如果有,你现在评过它的"知识更新"能力吗——用户改了主意,它会用新的还是旧的?
  2. 试着造一道"记忆幻觉陷阱题":在历史里不提某个信息,然后去问它。它是老实弃权,还是给你编了一个?
  3. 你的记忆评测(如果有)考的是不是只有"用户说过的话"?它考过"Agent 记不记得自己上一轮做过什么"吗?漏掉这一类,会放过哪些事故?
原文出处:公众号「ArchSynapse AI」· 2026-08-04。本文全文仅用于个人学习交流,版权归原作者及发布方所有;如原作者认为不妥,请联系删除。