文章目录
- 前言
- 零、论文基本信息
- 一、背景与问题:记忆为何不能只是一个相似度索引
- 二、相关工作:从存储结构走向结构化使用
- 三、方法总览:记忆写入与问题求解形成闭环
- 四、记忆构建:把连续经历写成可行走的事件图
-
- [1. 为什么以"事件"而不是固定 chunk 为单位](#1. 为什么以“事件”而不是固定 chunk 为单位)
- [2. 关系抽取:边必须说明"为什么相连"](#2. 关系抽取:边必须说明“为什么相连”)
- [3. 增量图更新:合并、连边或新建](#3. 增量图更新:合并、连边或新建)
- [4. 话题层:让多路径搜索不要都挤在一个主题里](#4. 话题层:让多路径搜索不要都挤在一个主题里)
- 五、主动搜索:让事件关系真正参与推理
-
- [1. Planner:先把问题拆成可检查的证据需求](#1. Planner:先把问题拆成可检查的证据需求)
- [2. Localization:从多个话题挑搜索入口](#2. Localization:从多个话题挑搜索入口)
- [3. Explorer:每到一个事件都做一次证据与行动判断](#3. Explorer:每到一个事件都做一次证据与行动判断)
- [4. 全局队列:优先找尚未满足的部分](#4. 全局队列:优先找尚未满足的部分)
- [5. Responder:只看筛过的证据,但仍有兜底风险](#5. Responder:只看筛过的证据,但仍有兜底风险)
- 六、实验设置:论文实际验证了什么
- 七、主实验:提升来自哪里,也要看哪里没赢
-
- [1. LoCoMo:平均分领先,复杂问题收益更明显](#1. LoCoMo:平均分领先,复杂问题收益更明显)
- [2. NarrativeQA:跨段叙事理解同样受益,但测试是抽样](#2. NarrativeQA:跨段叙事理解同样受益,但测试是抽样)
- [3. 思考型骨干:有推理能力也仍需要记忆组织](#3. 思考型骨干:有推理能力也仍需要记忆组织)
- 八、消融、敏感性与效率:结构有效,但主动搜索很贵
-
- [1. 消融:去掉关系、事件或子目标都会退化](#1. 消融:去掉关系、事件或子目标都会退化)
- [2. 起点规模与话题多样性:更广的定位有帮助](#2. 起点规模与话题多样性:更广的定位有帮助)
- [3. 成本:构建更快,查询更慢、token 更多](#3. 成本:构建更快,查询更慢、token 更多)
- 九、附录搜索日志:效果背后还有哪些反例
- 十、案例拆解:一次"搬家后做了什么"的搜索
- [十一、与 Agent Memory 系列的横向比较](#十一、与 Agent Memory 系列的横向比较)
- [十二、工程启发:如何用到 Coding、Tool 与 Multi-Agent](#十二、工程启发:如何用到 Coding、Tool 与 Multi-Agent)
- 十三、局限性与我的理解
- 十四、总结
- 参考资料
前言
一个长期陪伴用户的 Agent,可能记得"用户搬到了芝加哥",也记得"用户后来开始画风景画、尝试彩色玻璃设计"。但当问题变成"搬到新城市以后,他创作过哪些艺术作品?"时,单纯把最像问题的几条记忆塞进上下文,不一定能把"搬家"与"之后的创作"正确连起来。前者提供时间锚点,后者提供答案内容;两者之间的事件顺序才使答案成立。
之前的 Agent Memory 方法已经从平铺片段走向笔记链接、层级摘要、图结构和主动回访。不过,有结构 并不等于会用结构思考 :即使系统存了一张图,如果查询时仍只做一次向量 Top- K K K,图上的因果、先后、动机、组成等关系便没有真正参与找证据。
本文 CompassMem 的唯一核心增量是:把连续经历整理为带明确逻辑关系的事件图,并把这张图直接用作面向问题的搜索路线图,让 Agent 在"找证据"的过程中沿关系导航、检查子目标缺口,而非只从图里一次性取出相似节点。 事件抽取、关系标注、话题层、Planner/Explorer/Responder 的分工,都应围绕这条"记忆结构参与推理"主线理解。
零、论文基本信息
- 论文名称:Memory Matters More: Event-Centric Memory as a Logic Map for Agent Searching and Reasoning
- 发表平台:Findings of the Association for Computational Linguistics: ACL 2026
- 代码仓库 :CompassMem
- 作者:Yuyang Hu, Jiongnan Liu, Jiejun Tan, Yutao Zhu, Zhicheng Dou
一、背景与问题:记忆为何不能只是一个相似度索引
目前常见的 Agent 记忆流程是:把历史对话切片、摘要或抽取事实,存入向量库;收到问题时检索若干最相关片段,再交给大模型回答。它能减轻上下文窗口压力,却容易把"两个局部事实之间为什么有关"留给最终生成器临场猜测。对于单点事实问题,这或许够用;对于跨会话、时间先后、因果链或事件组成关系,只有片段本身,没有可沿着走的关系,就容易漏掉第二跳证据。
论文 Figure 1 把差别画得很直接:平铺记忆只有语义相似度;一般图记忆虽然建立了边,但查询仍可能主要依赖浅层语义检索;CompassMem 则把"事件 A 导致 B,因此下一步应查 A"这类关系提示放入搜索过程。图不是最终答案,而是决定下一步去哪里找的逻辑地图。

Figure 1:三种记忆利用方式。CompassMem 的区别在于让带类型的事件关系参与主动搜索,而不仅是储存相连的节点。
这个问题有两个层面。构建层 需要找到合适的记忆单元:按固定 token 切块可能把同一事件切碎,也可能把不同事件混在一起。读取层需要让关系发挥作用:一条"因果"边、"先于"边和"属于"边,不应在检索时被当作完全相同的无向邻接。
作者借用 Event Segmentation Theory(事件分段理论)的直觉:连续经历会被理解为较稳定、较完整的事件;显著的场景、目标或状态变化形成事件边界。本文将这一启发工程化为 LLM 事件抽取,而非声称系统在认知上等同人类记忆。
二、相关工作:从存储结构走向结构化使用
MemGPT、MemoryOS、Mem0 等方法侧重长期记忆的容量、更新、分层管理或事实提取。A-Mem 把记忆整理为相互关联的笔记;MemTree、CAM 等探索层级或聚类式组织;HippoRAG 借助图与传播式检索把相关信息汇聚到一起。这些工作已经说明结构有用。CompassMem 更进一步追问:图中关系能否在搜索每一步充当行动依据,而不只是事先组织数据或事后扩散相关性?
这一定位尤其要与两个相近思路分清。第一,CompassMem 的"事件图"不是把整段对话改写成若干孤立三元组;节点仍保留事件原文、时间、摘要和参与者。第二,"主动搜索"不等于让 LLM 无约束地反复调用检索器;本文用子目标状态、候选队列和三个动作约束每一步访问。它的收益既来自记忆建模,也来自测试时更多的 LLM 搜索计算,后文必须把两者与开销一起看。
三、方法总览:记忆写入与问题求解形成闭环
论文把时间 t t t 的新文本观察写为 X t = ( x t , 1 , ... , x t , n ) X_t=(x_{t,1},\ldots,x_{t,n}) Xt=(xt,1,...,xt,n),已有记忆为 M ( t − 1 ) \mathcal M^{(t-1)} M(t−1)。写入函数 Φ \Phi Φ 更新记忆,查询函数 Ψ \Psi Ψ 选出回答当前问题需要的部分,最终由 F F F 生成答案:
M ( t ) = Φ ( X t , M ( t − 1 ) ) \mathcal M^{(t)}=\Phi(X_t,\mathcal M^{(t-1)}) M(t)=Φ(Xt,M(t−1))
M ( t ) ∣ q = Ψ ( q , M ( t ) ) , y = F ( q , M ( t ) ∣ q ) \mathcal M^{(t)}|_q=\Psi(q,\mathcal M^{(t)}),\qquad y=F(q,\mathcal M^{(t)}|_q) M(t)∣q=Ψ(q,M(t)),y=F(q,M(t)∣q)
这三式(论文式 1--3)看似普通,却指出本文真正改变的位置: Φ \Phi Φ 不再只写入独立文本, Ψ \Psi Ψ 也不再只是相似度函数。写入端将文本变成事件节点 + 逻辑边 + 话题层;查询端先规划信息需求,再在图上从多个起点导航,收集够用的证据。

Figure 2:CompassMem 总体框架。上半部分是增量构建事件图,下半部分是 Planner、Explorer、Responder 驱动的主动搜索与回答。
读这张图可以抓住一条线:连续对话或文档 → → → 事件 → → → 事件间逻辑关系与话题归属 → → → 多个搜索起点 → → → 沿边扩展并保留证据 → → → 回答。下面逐步展开。
四、记忆构建:把连续经历写成可行走的事件图
1. 为什么以"事件"而不是固定 chunk 为单位
如果用户先提到准备搬家、后来报告实际搬家、又描述搬家后的新工作,固定长度切块不一定与事件边界吻合。CompassMem 用 LLM 从当前观察流 X t X_t Xt 识别 m m m 个相对完整的事件:
E t = { e t , i } i = 1 m = Φ s e g ( X t ) \mathcal E_t=\{e_{t,i}\}{i=1}^{m}=\Phi{\mathrm{seg}}(X_t) Et={et,i}i=1m=Φseg(Xt)
每个事件由四部分表示:
e t , i = ⟨ o t , i , τ t , i , s t , i , π t , i ⟩ e_{t,i}=\langle o_{t,i},\tau_{t,i},s_{t,i},\pi_{t,i}\rangle et,i=⟨ot,i,τt,i,st,i,πt,i⟩
式 4 中, o t , i o_{t,i} ot,i 是对应的原始观察片段, τ t , i \tau_{t,i} τt,i 是时间信息, s t , i s_{t,i} st,i 是语义摘要, π t , i \pi_{t,i} πt,i 是参与者集合。保留原文尤为重要:摘要便于找,原话才方便核对具体日期、数量或措辞。这里的"事件"也不是每一句话一个节点;附录提示词要求把同一主题、相近时间、构成"决定---行动---结果"的微事件尽量合并,并保留数字、日期、地点、情绪和结论。
这一步的风险同样明显。若 LLM 把"计划搬家"和"已经搬家"合并成一个模糊事件,后续时间推理可能从源头失真。论文消融采用约 100 token 的固定 chunk 替代事件节点,可以检验"事件边界"相对机械切分的价值,但不能证明每个自动抽取的边界都正确。
2. 关系抽取:边必须说明"为什么相连"
单独的事件节点仍无法回答"搬家后做了什么"。系统继续从输入与事件集合中抽取关系:
R t = { ( e t , i , e t , j , ρ t , i j ) } = Φ r e l ( X t , E t ) \mathcal R_t=\{(e_{t,i},e_{t,j},\rho_{t,ij})\}=\Phi_{\mathrm{rel}}(X_t,\mathcal E_t) Rt={(et,i,et,j,ρt,ij)}=Φrel(Xt,Et)
式 5 中, ρ t , i j \rho_{t,ij} ρt,ij 是开放式关系标签,可能表示因果、时间先后、动机、组成、后续发展等。它不来自封闭的固定分类器;论文附录提示词允许 causal、motivation、enablement、follow_up、temporal_before/after、contrast、part_of、parallel、elaboration 等短标签,且要求时间关系依据现实事件发生时间,而非对话中的叙述顺序。当前输入形成的子记忆就是 M t = ( E t , R t ) \mathcal M_t=(\mathcal E_t,\mathcal R_t) Mt=(Et,Rt)。
例如"为了开始新工作而搬家"与"到新城市后参加绘画课程"之间,时间顺序和动机并不相同。关系标签如果正确,探索器就能有方向地寻找"搬家以后发生的活动";如果标签错了,图会成为误导搜索的错误地图。因此本文的关键不仅是"有边",还是边具有可解释的逻辑方向。
3. 增量图更新:合并、连边或新建
新事件到来时,系统与历史事件比较,按三种情况更新:若描述同一事件则融合;若是不同事件但存在逻辑关系则连边;否则保留为新节点。附录给出语义相似度 0.9 的合并阈值。这样做是为了避免每次用户重复提到同一经历时创建大量重复节点,同时保留跨会话的新信息。
但"相似"与"同一真实世界事件"不是一回事:用户可能在两个不同年份参加相似活动,也可能前后修正一个事实。附录另有跨会话事件共指和重叠判断提示词,要求判断 same_event 与 has_overlap。它提供了更细的语义判断,却仍依赖 LLM,论文没有完整量化其误合并、漏合并率。
4. 话题层:让多路径搜索不要都挤在一个主题里
若问题包含多个方面,仅按相似度取起点,Top- K K K 可能全是同一话题的近重复节点。CompassMem 在事件逻辑图之上维护话题层:先用 K-means 将累计事件组织为话题 Z \mathcal Z Z,再让新事件归入相似话题;若相似度低于阈值,就新建话题。初始聚类对应论文式 6:
Z ( 1 ) = Φ c l u ( E ( 1 ) ; k ) \mathcal Z^{(1)}=\Phi_{\mathrm{clu}}(\mathcal E^{(1)};k) Z(1)=Φclu(E(1);k)
话题与事件之间另有归属关系 A \mathcal A A。它的角色不是替代事件间因果/时间边,而是提供较粗的语义导航层,让搜索起点覆盖不同方面。为防止在线归类逐渐漂移,系统每隔 T T T 次构建步重新聚类累计事件;附录主设置中 T = 4 T=4 T=4,话题归入阈值同为 0.9,簇数由当前事件量决定,范围限制在 2 到 50。这里还存在实际维护成本:周期性全局重聚类意味着"增量更新"并非始终局部常数开销。
五、主动搜索:让事件关系真正参与推理
1. Planner:先把问题拆成可检查的证据需求
对问题 q q q,Planner 产生 2--5 个子目标:
H q = Ψ p l a n ( q ) , ∣ H q ∣ ∈ 2 , 5 \mathcal H_q=\Psi_{\mathrm{plan}}(q),\qquad |\mathcal H_q|\in2,5 Hq=Ψplan(q),∣Hq∣∈2,5
式 7 的输出不是答案,而是一张"还需要证明什么"的清单。以附录案例"搬到新城市后创作了哪些艺术作品"为例,可拆成:确认搬家的事件、确认搬家后的创作活动、找出作品类型。Planner 用二值向量 s ∈ { 0 , 1 } ∣ H q ∣ \mathbf s\in\{0,1\}^{|\mathcal H_q|} s∈{0,1}∣Hq∣ 跟踪哪些子目标已有直接证据。
如果一轮探索结束后仍缺某项,Planner 用问题、已有证据和未满足目标生成更聚焦的新查询:
q ( r + 1 ) = Ψ r e f ( q ( r ) , H q , s ) q^{(r+1)}=\Psi_{\mathrm{ref}}(q^{(r)},\mathcal H_q,\mathbf s) q(r+1)=Ψref(q(r),Hq,s)
式 8 是"缺口驱动的重新提问",而不是盲目重复原问题。论文设定最多再来一轮。附录案例中,第一轮知道用户搬家和尝试艺术活动,但尚未找到作品类型,于是新查询聚焦"具体创作了哪些艺术形式"。
2. Localization:从多个话题挑搜索入口
搜索不能从全图每个节点开始。系统先根据问题与事件嵌入的相似度取 Top- k k k,再从排序靠前的不同话题中选择候选,最后由 LLM 判断哪些适合做起点。论文记为 S q = Ψ s t a r t ( q , C q ) \mathcal S_q=\Psi_{\mathrm{start}}(q,\mathcal C_q) Sq=Ψstart(q,Cq)。LoCoMo 主设置为 k = 5 k=5 k=5、最多覆盖 p = 5 p=5 p=5 个话题,NarrativeQA 因文档更长把 k k k 提至 10,其余原则不变。
这一步同时体现本文的"旧方法与新方法"关系:相似度检索没有消失,而是退居为定位入口。真正的跨事件查找发生在后续图导航。话题多样性则降低三个探索器都从近乎相同的节点开始、反复得到同一类证据的风险。
3. Explorer:每到一个事件都做一次证据与行动判断
每个 Explorer 查看当前节点 e e e、关系类型标注的邻居 N ( e ) \mathcal N(e) N(e)、已保留证据 E ^ \hat{\mathcal E} E^ 与子目标状态 s \mathbf s s,选择:
a = Ψ c h o ( q , e , E ^ , N ( e ) , s ) , a ∈ { S K I P , E X P A N D , A N S W E R } a=\Psi_{\mathrm{cho}}(q,e,\hat{\mathcal E},\mathcal N(e),\mathbf s), \qquad a\in\{\mathrm{SKIP},\mathrm{EXPAND},\mathrm{ANSWER}\} a=Ψcho(q,e,E^,N(e),s),a∈{SKIP,EXPAND,ANSWER}
式 9 的三个动作分别是:SKIP 丢弃当前无用节点并决定是否看邻居;EXPAND 保留当前节点为证据,并继续向可能满足缺失子目标的邻居前进;ANSWER 在关键子目标均获支持时结束该路径。证据集按式 10 更新:
E ^ ( r + 1 ) = { E ^ ( r ) , a = S K I P , E ^ ( r ) ∪ { e } , 其他情况 . \hat{\mathcal E}^{(r+1)}=\begin{cases} \hat{\mathcal E}^{(r)}, & a=\mathrm{SKIP},\\ \hat{\mathcal E}^{(r)}\cup\{e\}, & \text{其他情况}. \end{cases} E^(r+1)={E^(r),E^(r)∪{e},a=SKIP,其他情况.
附录动作提示要求逐项列出直接证据支持的子目标,不允许把"合理猜测"当成已满足。这使"走过一个节点"与"用它做证据"分开。多个 Explorer 并行,但共享已访问节点、保留证据和子目标进度,避免各路径完全孤立。
4. 全局队列:优先找尚未满足的部分
多个探索路径产生候选邻居后,系统用同一个全局优先队列调度。候选节点 u u u 的优先级为它的摘要与尚未满足的子目标之间的最大嵌入相似度:
p ( u ) = max j : s j = 0 sim ( v ( s u ) , v ( h j ) ) p(u)=\max_{j:s_j=0}\operatorname{sim}(v(s_u),v(h_j)) p(u)=j:sj=0maxsim(v(su),v(hj))
式 11 中, s u s_u su 是节点摘要, h j h_j hj 是第 j j j 个子目标, v ( ⋅ ) v(\cdot) v(⋅) 是嵌入函数。它并不直接证明节点正确,只表示"这个节点可能补上当前缺口"。一旦某子目标已满足,相应节点不再因它被优先探索。因此搜索路线会随着证据积累改变,这正是"记忆结构作为逻辑地图"区别于静态 Top- K K K 的具体操作。
5. Responder:只看筛过的证据,但仍有兜底风险
队列耗尽且子目标满足时,Responder 根据保留下来的少量事件作答;若仍有缺口,返回 Planner 触发第二轮定向搜索。没有保留任何证据时,论文退回最初 Top- k k k 检索候选。按设计,最终回答模型只看"蒸馏后的证据",不看全部探索轨迹,有助于减少无关文本。
不过附录回答提示词还写着:若信息不足,不要直接说信息不足,而应给出"合理且有根据"的答案。这与严格的证据不足时拒答并不相同,可能在证据缺失场景中增加臆测。使用该系统处理高风险任务时,应把这一提示改为要求明确区分已证实事实与推测。
六、实验设置:论文实际验证了什么
主实验使用两类场景:LoCoMo 是长对话问答,10 段长对话、共 1,540 道参与统计的问题,平均每段约 600 轮、约 16K token;论文沿用相关工作做法,没有使用 adversarial 类问题。NarrativeQA 是长故事/剧本阅读理解;作者从完整测试集中随机抽取 10 篇长文、共 298 道题,平均文档约 60K token,而非在全部 10,557 道测试题上运行。
回答骨干包括 GPT-4o-mini 与 Qwen2.5-14B-Instruct,另外报告 Qwen3-8B 的思考模型实验。提及的嵌入均使用 BGE-M3。基线包括非图方法 RAG、Mem0、MemoryOS,以及图方法 HippoRAG、A-Mem、CAM。固定 chunk 类基线统一采用 512-token 切分及 Top-5 检索;其他记忆方法沿各自原设定。因此"比较同一回答模型"不意味着各方法拥有相同的构建、搜索和 token 预算。核心评分为 F1 与 BLEU-1,均按百分数报告。
七、主实验:提升来自哪里,也要看哪里没赢
1. LoCoMo:平均分领先,复杂问题收益更明显
Table 1 原表同时列 F1 和 BLEU-1,并按四类问题分组。下面保留完整的 F1 列,以便看清哪些任务确实获益;BLEU-1 的平均值紧接在表后讨论。
骨干 方法 Single-hop Multi-hop Open-domain Temporal Average GPT-4o-mini RAG 52.19 32.17 23.21 30.77 42.25 Mem0 47.65 38.72 28.64 48.93 45.10 MemoryOS 48.62 35.27 20.02 41.15 42.84 HippoRAG 54.84 33.59 28.59 48.17 47.92 A-Mem 44.65 27.02 12.14 45.85 39.65 CAM 50.58 33.55 18.23 44.14 44.10 CompassMem 57.36 38.84 26.61 57.96 52.18 Qwen2.5-14B RAG 49.79 28.11 20.42 24.73 38.77 Mem0 42.58 31.73 15.03 28.96 36.04 MemoryOS 46.33 38.19 20.27 32.24 40.28 HippoRAG 42.45 27.57 19.74 30.66 35.85 A-Mem 33.75 22.09 13.49 27.19 28.98 CAM 50.39 34.50 23.86 44.70 44.64 CompassMem 61.02 42.32 25.88 47.18 52.52 \begin{array}{ll|rrrrr} \text{骨干}&\text{方法}&\text{Single-hop}&\text{Multi-hop}&\text{Open-domain}&\text{Temporal}&\text{Average}\\\hline \text{GPT-4o-mini}&\text{RAG}&52.19&32.17&23.21&30.77&42.25\\ &\text{Mem0}&47.65&38.72&\mathbf{28.64}&48.93&45.10\\ &\text{MemoryOS}&48.62&35.27&20.02&41.15&42.84\\ &\text{HippoRAG}&54.84&33.59&28.59&48.17&47.92\\ &\text{A-Mem}&44.65&27.02&12.14&45.85&39.65\\ &\text{CAM}&50.58&33.55&18.23&44.14&44.10\\ &\text{CompassMem}&\mathbf{57.36}&\mathbf{38.84}&26.61&\mathbf{57.96}&\mathbf{52.18}\\\hline \text{Qwen2.5-14B}&\text{RAG}&49.79&28.11&20.42&24.73&38.77\\ &\text{Mem0}&42.58&31.73&15.03&28.96&36.04\\ &\text{MemoryOS}&46.33&38.19&20.27&32.24&40.28\\ &\text{HippoRAG}&42.45&27.57&19.74&30.66&35.85\\ &\text{A-Mem}&33.75&22.09&13.49&27.19&28.98\\ &\text{CAM}&50.39&34.50&23.86&44.70&44.64\\ &\text{CompassMem}&\mathbf{61.02}&\mathbf{42.32}&\mathbf{25.88}&\mathbf{47.18}&\mathbf{52.52} \end{array} 骨干GPT-4o-miniQwen2.5-14B方法RAGMem0MemoryOSHippoRAGA-MemCAMCompassMemRAGMem0MemoryOSHippoRAGA-MemCAMCompassMemSingle-hop52.1947.6548.6254.8444.6550.5857.3649.7942.5846.3342.4533.7550.3961.02Multi-hop32.1738.7235.2733.5927.0233.5538.8428.1131.7338.1927.5722.0934.5042.32Open-domain23.2128.6420.0228.5912.1418.2326.6120.4215.0320.2719.7413.4923.8625.88Temporal30.7748.9341.1548.1745.8544.1457.9624.7328.9632.2430.6627.1944.7047.18Average42.2545.1042.8447.9239.6544.1052.1838.7736.0440.2835.8528.9844.6452.52
Table 1:LoCoMo 各题型 F1(%)。 CompassMem 的平均分在两种骨干上均最高;GPT-4o-mini 的 Open-domain 子集不是最高。
GPT-4o-mini 下,CompassMem 平均 F1 为 52.18,较最强基线 HippoRAG 47.92 高 4.26 个百分点;Temporal 为 57.96,较最强非本法 Mem0 48.93 高 9.03 点。Qwen2.5-14B 下,平均 F1 为 52.52,较 CAM 44.64 高 7.88 点,多跳从最佳基线 MemoryOS 38.19 到 42.32。它们与"跨事件逻辑导航更适合时间和多跳问题"的主张方向一致。
但不能说所有子集全胜:GPT-4o-mini 的 Open-domain F1=26.61,低于 Mem0 的 28.64 和 HippoRAG 的 28.59;Open-domain BLEU-1=20.01,也低于 HippoRAG 的 23.89。原表平均 BLEU-1 为 CompassMem 44.09(GPT-4o-mini)和 46.17(Qwen2.5-14B),均为对应骨干的最高。事件关系对推理密集型问题更有说服力,对开放域问题不是稳定优势。
2. NarrativeQA:跨段叙事理解同样受益,但测试是抽样
骨干 方法 F1 (%) BLEU-1 (%) GPT-4o-mini RAG 28.99 25.68 Mem0 29.98 23.34 MemoryOS 25.58 21.74 HippoRAG 28.77 23.04 A-Mem 27.01 23.17 CAM 33.55 29.74 CompassMem 39.04 35.23 Qwen2.5-14B RAG 25.82 20.65 Mem0 26.94 22.01 MemoryOS 22.17 19.32 HippoRAG 22.10 17.77 A-Mem 25.37 20.94 CAM 27.87 23.47 CompassMem 35.90 28.66 \begin{array}{ll|rr} \text{骨干}&\text{方法}&\text{F1 (\%)}&\text{BLEU-1 (\%)}\\\hline \text{GPT-4o-mini}&\text{RAG}&28.99&25.68\\ &\text{Mem0}&29.98&23.34\\ &\text{MemoryOS}&25.58&21.74\\ &\text{HippoRAG}&28.77&23.04\\ &\text{A-Mem}&27.01&23.17\\ &\text{CAM}&33.55&29.74\\ &\text{CompassMem}&\mathbf{39.04}&\mathbf{35.23}\\\hline \text{Qwen2.5-14B}&\text{RAG}&25.82&20.65\\ &\text{Mem0}&26.94&22.01\\ &\text{MemoryOS}&22.17&19.32\\ &\text{HippoRAG}&22.10&17.77\\ &\text{A-Mem}&25.37&20.94\\ &\text{CAM}&27.87&23.47\\ &\text{CompassMem}&\mathbf{35.90}&\mathbf{28.66} \end{array} 骨干GPT-4o-miniQwen2.5-14B方法RAGMem0MemoryOSHippoRAGA-MemCAMCompassMemRAGMem0MemoryOSHippoRAGA-MemCAMCompassMemF1 (%)28.9929.9825.5828.7727.0133.5539.0425.8226.9422.1722.1025.3727.8735.90BLEU-1 (%)25.6823.3421.7423.0423.1729.7435.2320.6522.0119.3217.7720.9423.4728.66
Table 2:NarrativeQA 抽样测试结果。 在 10 篇文档的 298 道题上,CompassMem 的 F1 和 BLEU-1 均领先各基线。
相对 CAM,GPT-4o-mini 下 F1 提升 5.49 点,Qwen2.5-14B 下提升 8.03 点。长篇叙事与长对话虽不是同一种材料,却都需要跨片段找时间、人物和事件联系,因此结果为方法的跨场景适用性提供了证据。不过,10 篇文档的随机样本不能直接代表整个 NarrativeQA,论文也未报告多次抽样的方差或显著性检验。
3. 思考型骨干:有推理能力也仍需要记忆组织
Table 3 换用 Qwen3-8B。CompassMem 在 Single-hop、Multi-hop、Open-domain、Temporal 上分别达到 F1 50.04、35.33、28.02、49.35;对应最强基线分别为 46.12、34.07、22.04、43.82。这说明较强的生成时推理并未完全替代外部记忆组织。不过,该表没有报告独立的"只增思考 token,不改记忆"的成本配平实验,因此不能据此量化结构和思考计算的各自贡献。
八、消融、敏感性与效率:结构有效,但主动搜索很贵
1. 消融:去掉关系、事件或子目标都会退化
论文 Figure 4 不是 Table,而是一幅在 Qwen2.5-14B 设置下按问题类型呈现的柱状图。它依次移除话题聚类、事件单元、关系边、查询改写、子目标。完整模型 Single-hop / Multi-hop / Open-domain / Temporal 的 F1 约为 61.0 / 42.3 / 25.9 / 47.2;例如去掉关系后,多跳约降到 37.8,时间问题约降到 44.1;去掉子目标后,时间问题约为 39.4。不同模块并非只服务一类问题,但多跳和时间问题对它们更敏感。

Figure 4:LoCoMo 消融。完整模型在四类问题上均高于相应组件移除版本,多跳和时间类的差距尤其值得关注。
解释时要注意:移除模块可能同时改变 LLM 调用次数与候选数量,不能把所有分数差额纯粹解释为"逻辑边的因果效应"。但"w/o Relation"是本文核心主张较直接的检验:即便保留事件和搜索框架,去掉有类型的关系仍会损失表现。
2. 起点规模与话题多样性:更广的定位有帮助
论文 Figure 6 分别调整直接检索数 k k k 与话题数 p p p。 k k k 从 1 到 10 时,F1 大致从 51.1 升到 53.1; p p p 从 0 到 5 时,从 47.9 升到 52.5。 p = 0 p=0 p=0 是没有话题多样化选择的设置;逐步增大 p p p 的收益说明"从多个主题找入口"比把相似度最高的同质节点堆在一起更有效。但这是所测范围内的单调趋势,不代表无限增大起点和话题数仍有收益。

Figure 6:起点定位超参数敏感性。更大的候选范围与更丰富的话题入口在测试区间内提高结果。
3. 成本:构建更快,查询更慢、token 更多
Figure 3 在一组代表性 LoCoMo 对话上比较构建时间、总处理时间、单题回答延迟和回答 token。CompassMem 构建约 672 秒,低于 Mem0 约 1,920 秒、A-Mem 约 3,960 秒和 MemoryOS 约 6,100 秒,但高于 CAM 约 218 秒。相反,单题回答延迟约 21.73 秒,高于 Mem0 的 0.40 秒、CAM 的 3.43 秒和 A-Mem 的 6.93 秒;回答 token 约 20,100,也高于图中所有对比方法。总处理时间约 4,220 秒,低于 MemoryOS 和 A-Mem,却高于 CAM 与 Mem0。

Figure 3:效果与成本的权衡。CompassMem 的构建成本相对较低,但主动搜索使回答延迟和回答 token 上升。
因此,论文中"实际计算效率"的说法需要拆开理解:离线建图较经济,在线逐题搜索并不轻量。如果用户需要即时交互、每秒大量请求或有严格 token 预算,21.73 秒和约 20K token/题是重要约束。若问题少而历史长、答案正确性更重要,较高的查询计算或许值得;这属于应用场景判断,论文没有给出统一的成本效益阈值。
九、附录搜索日志:效果背后还有哪些反例
附录 Table 4 提供了比平均 F1 更细的运行画像。LoCoMo 的 1,540 道题,平均单题用时 20.87 秒、中位数 19.32 秒;平均生成 3.04 个子目标,完全满足所有子目标的只有 594 题,占 38.6% ;平均保留 3.15 个事件节点。系统在 76.4% 的问题上触发查询改写,共进行 11,595 次行动,其中 EXPAND 7,348 次(63.4%)、SKIP 4,230 次(36.5%)、显式 ANSWER 仅 17 次(0.1%)。
指标 LoCoMo 统计 题目数 1,540 平均/中位单题时间 20.87 / 19.32 s 平均子目标数 3.04 全部子目标已满足 594 ( 38.6 % ) 平均探索步骤 7.5 平均保留节点数 3.15 触发改写 1,176 ( 76.4 % ) 无保留节点 102 \begin{array}{l|r} \text{指标}&\text{LoCoMo 统计}\\\hline \text{题目数}&1{,}540\\ \text{平均/中位单题时间}&20.87/19.32\ \mathrm{s}\\ \text{平均子目标数}&3.04\\ \text{全部子目标已满足}&594\ (38.6\%)\\ \text{平均探索步骤}&7.5\\ \text{平均保留节点数}&3.15\\ \text{触发改写}&1{,}176\ (76.4\%)\\ \text{无保留节点}&102 \end{array} 指标题目数平均/中位单题时间平均子目标数全部子目标已满足平均探索步骤平均保留节点数触发改写无保留节点LoCoMo 统计1,54020.87/19.32 s3.04594 (38.6%)7.53.151,176 (76.4%)102
Table 4:LoCoMo 搜索与推理运行统计节选。 大部分问题触发第二轮改写,但完全满足所有子目标的比例不足四成。
这些数字并不否定主实验优势,却修正了一个容易产生的印象:系统并非大多数时候都沿图走到一个"所有子目标已证实"的确定终点。很多答案依赖部分证据、改写或兜底候选。ANSWER 动作只占 0.1%,也表明"路径上主动判定已完成"的实际使用频率非常低;相当多的终止来自队列和轮次控制,而非显式完整证明。
附录 Table 5 的路径长度分布也有启发:2--4 步占大头,11 步长路径仅 4 条。并不是越深的图遍历越好,系统通常通过较短的局部关系找证据。Table 7 按类别看,多跳题平均 10.1 步、24.61 秒,时间题平均 5.9 步、18.64 秒但改写率 83.8%;开放域题的子目标满足率只有 57.9%。这与主表中 GPT-4o-mini 开放域并未领先的反例相呼应:缺的可能不是更多图边,而是外部知识、事件抽取质量或搜索目标本身的适配。
十、案例拆解:一次"搬家后做了什么"的搜索
附录的定性案例问:"搬到新城市之后,讲述者提到创作过哪些艺术作品?"Planner 设三个目标:找到搬家事件、找到搬家后的创作活动、确定具体作品类型。初始语义检索找到"去年夏天为了新工作搬到芝加哥"和"周末去艺术博物馆"等候选;三名 Explorer 从不同入口开始,利用事件关系寻找更具体的证据。第一轮仍缺作品类型,Planner 改写成"搬家后具体创作了哪些艺术形式?"第二轮找回"在公寓画风景画"和"尝试彩色玻璃设计"。最终只把搬家、绘画、彩色玻璃三个关键事件交给回答模型。
这个案例很好地说明"关系图是地图"而不是"图本身就是答案":搬家节点给出时间条件,后续创作节点给出答案实体,问题改写用于补最缺的一块。另一方面,它毕竟是一个展示成功路径的案例;不能从这一例推出所有关系类型都抽取准确,也不能代替对错误边与错误时间锚点的系统评估。
十一、与 Agent Memory 系列的横向比较
从整个系列看,本文关注的是读取历史时,记忆结构能不能主动指导接下来的搜索与推理。以下对照只用于定位设计重点,并非论文对所有方法做过同条件实验。
| 方法 | 与本文相关的设计重点 | CompassMem 的不同处 |
|---|---|---|
| A-Mem | 把经历写成可链接、可演化的记忆笔记 | CompassMem 把事件作为基本节点,强调因果、时间等关系类型在逐步搜索中的作用;A-Mem 是本文实验基线。 |
| MAGMA | 对记忆关系和结构化组织的重视 | 本文更明确把图结构接入查询时的 Planner/Explorer 行动,而不是只讨论记忆如何组织。 |
| CoM | 记忆形成、整合与使用之间的联系 | CompassMem 的"使用"被具体实现为子目标驱动的多路径图导航;其事件抽取依然是 LLM 启发式。 |
| ReMemR1 | 写入/更新阶段主动回访历史,修复不可逆的信息损失 | 本文也会增量融合旧事件,但主要贡献在读出时沿逻辑图找证据;两者针对记忆生命周期的不同关口。 |
| Mem²Evolve | 依据长期交互或反馈推动记忆演化 | CompassMem 会更新图与话题,却没有验证基于任务反馈的长期自我纠错。 |
| MemGAS | 多粒度表示、关联与按问题选择粒度 | MemGAS 关注"用什么粒度找";CompassMem 关注"沿什么逻辑关系继续找"。两种思路原则上互补。 |
对本论文已实测的基线,还需保持精确:HippoRAG 有图传播机制,A-Mem 有笔记链接,CAM 有层级/聚类式组织。因此不能把本文描述成"第一篇有结构化 Agent Memory 的论文"。它的增量更窄、也更有辨识度:图的逻辑关系成为检索过程中的行动提示,并由子目标进度闭环控制。
十二、工程启发:如何用到 Coding、Tool 与 Multi-Agent
以下是基于机制的工程推演,不是论文已在这些任务上取得的实验结果。
对 Coding Agent ,可以把一次需求变更、一次失败测试、一次修复提交和一次回归结果建为事件,并显式标注 caused_by、fixed_by、regressed_after 等关系。用户问"为什么这个检查又失败了"时,Agent 先定位当前失败,再沿修复与回归边追到历史原因。为了不把相似报错误认为同一故障,节点应绑定提交哈希、分支、文件路径和测试版本;这些确定性元数据比纯语义相似度更可靠。
对 Tool Agent ,可以把目标、工具调用、返回结果、失败重试和最终状态建成事件链。查询"上次导出为什么失败"时,子目标可能是找到请求参数、具体错误、重试措施和最终结果;搜索应沿 attempted、failed_due_to、resolved_by 等边,而不是只搜最像"导出失败"的日志摘要。外部工具结果还必须记录时间与来源,避免把过期状态当成当前事实。
对 Multi-Agent,可以把不同 Agent 的观察、计划和结论作为带来源的事件节点,共享目标则构成较粗的话题层。多个 Explorer 的协同机制提示了一种实现:让不同角色从不同证据方向搜,但共享已访问节点和未满足子目标。关键风险是跨 Agent 报告可能矛盾;工程上应保留来源、权限与可信级别,不应让一个低可信节点经图关系传播后获得"事实"地位。
一个可复用的设计原则是:先要求系统列出答案需要的证据,再决定下一步该沿哪种关系找;证据未齐时明确暴露缺口。 论文最后的"信息不足也要给答案"提示不适合所有场景,尤其不适合法律、医疗、财务或自动化操作决策。
十三、局限性与我的理解
第一,图的逻辑质量是上限。事件边界、时间、参与者和关系标签都由 LLM 提取。若早期把"计划"误写成"完成",再完美的图导航也只会更有效率地抵达错误结论。论文自述采用较朴素的 LLM 构建管线,未来仍需更稳健的分段和关系抽取;目前没有事件/边质量的独立精确率、召回率或长期漂移评估。
第二,多模块同时改变了推理计算预算 。与一次性向量检索相比,Planner、三个 Explorer、多步动作判断、改写和 Responder 会调用更多 LLM。消融说明各组件有贡献,但尚不足以回答"在相同 token 和延迟预算下,逻辑图相对更大检索 K K K 或更强生成器是否仍胜出"。Figure 3 所示约 21.73 秒和 20.1K 回答 token,是这套主动搜索的真实代价。
第三,搜索状态不等于事实证明 。子目标满意度来自模型判断,开放式关系也由模型给出;没有形式化逻辑校验。附录统计仅 38.6% 的问题完全满足子目标,显式 ANSWER 只占 0.1%。因此,把方法描述为"结构辅助的证据搜索"比描述为"可靠逻辑推理器"更准确。
第四,覆盖范围有限。LoCoMo 排除了 adversarial 题;NarrativeQA 只抽了 10 篇、298 题;主要结果是 QA 的 F1/BLEU-1,而非独立的检索真值 Recall、关系抽取正确率或真实在线长期任务成功率。论文在两个骨干和一组思考模型上展示了泛化迹象,但没有证明所有任务、所有历史规模均适用,也没有给出统计置信区间。
第五,回答提示与证据原则存在张力。搜索提示要求只在直接证据支持时标记子目标满足,但最终回答提示鼓励在不确定时给出合理答案。我的理解是,这会提高覆盖率,却可能牺牲校准。面向可靠 Agent,最值得补的并非更长的图遍历,而是"证据不足时如何安全停止,以及如何让用户检查答案所依赖的事件路径"。
十四、总结
CompassMem 的价值不在于宣称图记忆比平铺记忆天然先进,而在于让事件节点、明确关系和子目标状态共同决定下一步搜索 。它在 LoCoMo 与 NarrativeQA 的平均 F1 上超过所比基线,时间与多跳问题的提升尤其符合方法动机;但开放域子集有反例,在线延迟与 token 消耗也显著上升。一句话概括:它把 Agent Memory 从"召回几条相似历史"推进到"沿事件关系找齐一个问题所需的证据",但尚未把这种搜索变成低成本、可校验的可靠推理。