【论文阅读】Agent 记忆机制(59):Synapse——让相关记忆沿情景—语义图被逐步激活

文章目录

  • 前言
  • 零、论文基本信息
  • 一、问题背景:为什么"搜到相似内容"不等于"想起正确记忆"
    • [1. 静态向量库把记忆切成了孤岛](#1. 静态向量库把记忆切成了孤岛)
    • [2. 多跳问题的关键证据可能并不相似](#2. 多跳问题的关键证据可能并不相似)
    • [3. 时间更新让高相似度成为陷阱](#3. 时间更新让高相似度成为陷阱)
    • [4. 图传播也会制造新的噪声](#4. 图传播也会制造新的噪声)
  • [二、相关工作:Synapse 真正改变了哪一层](#二、相关工作:Synapse 真正改变了哪一层)
    • [1. Memory Allocation:决定记忆放在哪里](#1. Memory Allocation:决定记忆放在哪里)
    • [2. Structured Memory:把独立条目组织成图](#2. Structured Memory:把独立条目组织成图)
    • [3. Semantic Retrieval:把每条记忆独立排序](#3. Semantic Retrieval:把每条记忆独立排序)
  • 三、方法总览:从查询注入能量,再让记忆彼此唤起
  • 四、统一情景---语义图:既保留原始经历,也保存抽象概念
    • [1. 图的基本定义](#1. 图的基本定义)
    • [2. 三类边分别解决什么问题](#2. 三类边分别解决什么问题)
      • [Temporal Edges](#Temporal Edges)
      • [Abstraction Edges](#Abstraction Edges)
      • [Association Edges](#Association Edges)
    • [3. 图如何在线增长](#3. 图如何在线增长)
    • [4. 图维护:避免长期运行后失控](#4. 图维护:避免长期运行后失控)
  • 五、语义抽取:从最近经历中形成概念节点
  • 六、双路触发:先找到能量注入点
  • 七、扩散激活:相关记忆如何沿图浮现
    • [1. 传播与时间衰减](#1. 传播与时间衰减)
    • [2. Fan Effect:Hub 的能量为什么要被摊薄](#2. Fan Effect:Hub 的能量为什么要被摊薄)
    • [3. 侧抑制:让高激活节点压制竞争者](#3. 侧抑制:让高激活节点压制竞争者)
    • [4. Sigmoid 激活:从势能变成发放率](#4. Sigmoid 激活:从势能变成发放率)
  • [八、Triple Hybrid Retrieval:局部激活与全局结构如何合并](#八、Triple Hybrid Retrieval:局部激活与全局结构如何合并)
  • 九、不确定性感知拒答:不知道时不要编一个答案
  • 十、实验设置
    • [1. 数据集](#1. 数据集)
    • [2. Baseline](#2. Baseline)
    • [3. 指标与统计](#3. 指标与统计)
  • 十一、主实验:优势集中在多跳、时间与拒答
    • [1. 总体提升存在,但并没有把第二名远远甩开](#1. 总体提升存在,但并没有把第二名远远甩开)
    • [2. Multi-Hop 提升支持核心机制,但幅度应准确表述](#2. Multi-Hop 提升支持核心机制,但幅度应准确表述)
    • [3. Temporal 是更稳定的优势项](#3. Temporal 是更稳定的优势项)
    • [4. Adversarial 的高分主要来自专门拒答模块](#4. Adversarial 的高分主要来自专门拒答模块)
    • [5. Single-Hop 并不是压倒性领先](#5. Single-Hop 并不是压倒性领先)
  • 十二、定性案例:三种静态检索失败模式
    • [1. Semantic Drift](#1. Semantic Drift)
    • [2. Temporal Obsolescence](#2. Temporal Obsolescence)
    • [3. Logical Disconnection](#3. Logical Disconnection)
  • 十三、消融实验:真正有用的不是"有图",而是图会动
    • [1. Node Decay 几乎决定了时间推理](#1. Node Decay 几乎决定了时间推理)
    • [2. Fan Effect 对开放域与多跳非常关键](#2. Fan Effect 对开放域与多跳非常关键)
    • [3. Lateral Inhibition 首先服务于拒答](#3. Lateral Inhibition 首先服务于拒答)
    • [4. 图结构与动态传播缺一不可](#4. 图结构与动态传播缺一不可)
    • [5. Single-Hop 甚至可能从删模块中受益](#5. Single-Hop 甚至可能从删模块中受益)
  • 十四、效率:更少上下文换来了更高图维护复杂度
  • 十五、超参数敏感性:传播三轮是关键甜点位
    • [1. Top-k 并不十分敏感](#1. Top-k 并不十分敏感)
    • [2. 主要超参数](#2. 主要超参数)
    • [3. 拒答阈值的安全窗口](#3. 拒答阈值的安全窗口)
  • 十六、低相似度、稳定性与跨模型结果
    • [1. 低向量相似度子集最能检验核心主张](#1. 低向量相似度子集最能检验核心主张)
    • [2. 三次随机运行较稳定](#2. 三次随机运行较稳定)
    • [3. 小模型反而更依赖结构化检索](#3. 小模型反而更依赖结构化检索)
  • [十七、LLM Judge 与词面指标为什么得出不同结论](#十七、LLM Judge 与词面指标为什么得出不同结论)
  • [十八、失败案例:解决 Contextual Isolation 后,又出现 Cognitive Tunneling](#十八、失败案例:解决 Contextual Isolation 后,又出现 Cognitive Tunneling)
  • [十九、与 Agent Memory 系列方法的横向比较](#十九、与 Agent Memory 系列方法的横向比较)
  • [二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发](#二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发)
    • [1. Coding Agent:从报错沿依赖图激活历史修改](#1. Coding Agent:从报错沿依赖图激活历史修改)
    • [2. Tool Agent:把"调用失败"连接到环境状态](#2. Tool Agent:把“调用失败”连接到环境状态)
    • [3. Multi-Agent:传播跨 Agent 的间接证据](#3. Multi-Agent:传播跨 Agent 的间接证据)
    • [4. 更实用的混合方案](#4. 更实用的混合方案)
  • 二十一、局限性
    • [1. 只在单一文本对话基准上验证](#1. 只在单一文本对话基准上验证)
    • [2. Cold Start](#2. Cold Start)
    • [3. Cognitive Tunneling](#3. Cognitive Tunneling)
    • [4. 依赖 LLM 构图质量](#4. 依赖 LLM 构图质量)
    • [5. 图增长与归档仍依赖启发式参数](#5. 图增长与归档仍依赖启发式参数)
    • [6. Baseline 并非完全统一](#6. Baseline 并非完全统一)
    • [7. 效率报告不包含完整写入成本](#7. 效率报告不包含完整写入成本)
    • [8. 指标证据仍有限](#8. 指标证据仍有限)
    • [9. 隐私与错误记忆](#9. 隐私与错误记忆)
  • 二十二、我的理解与启发
    • [1. Synapse 真正重要的是把"相关性"从属性变成状态](#1. Synapse 真正重要的是把“相关性”从属性变成状态)
    • [2. 它把记忆检索变成了受控动力系统](#2. 它把记忆检索变成了受控动力系统)
    • [3. "遗忘"是时间推理的一部分](#3. “遗忘”是时间推理的一部分)
    • [4. 竞争机制必须为"小事实"留一条逃生通道](#4. 竞争机制必须为“小事实”留一条逃生通道)
    • [5. 低相似度评估比总体均分更能说明问题](#5. 低相似度评估比总体均分更能说明问题)
  • 二十三、总结
  • 参考资料

前言

在前面的 Agent Memory 系列中,我们已经看到几条不同的演进路线:A-MEM 关注记忆条目如何自主组织,MAGMA 强调多图结构,CoM 试图把记忆管理变成可学习的控制过程,ReMemR1 让 Agent 在写入时主动回看历史,Mem²Evolve 则进一步讨论记忆系统如何随经验演化。

这些方法虽然侧重点不同,但在"读取记忆"时往往仍绕不开一个基础动作:给定当前问题,在历史记忆中找出最相关的若干条。

最常见的做法是向量检索。问题和记忆被编码到同一空间,距离越近,就越可能进入上下文。

这对明确事实查询很有效,却隐含了一个过强假设:一段历史是否有用,可以由它与当前问题的直接语义相似度决定。

现实中的长期记忆并不总是这样工作。

假设用户问:"我今天为什么焦虑?"真正原因可能是几周前记录的一次日程冲突。问题里没有"会议""航班"或"时间重叠"等词,这段历史与"焦虑"的向量距离也未必很近。它之所以重要,不是因为表面相似,而是因为它位于一条因果链上。

同样,用户问"滑雪旅行认识的那个人现在还在和 Kendall 约会吗?"答案可能需要沿着"滑雪旅行 → Mark → Kendall → 分手"连续跳转。只检索与"滑雪"最相似的片段,反而可能得到"雪票花了 500 美元"之类无关信息。

Synapse 由此提出:长期记忆不应该只是一组等待搜索的文本,而应当是一个能被查询激活的关联网络。

它的唯一核心增量可以概括为:

Synapse 将 Agent Memory 的读取过程从静态相似度排序改造成带有扩散、衰减与竞争的图激活过程,使结构上相关但语义距离较远的历史能够沿关联路径浮现。

统一的情景---语义图、双路触发、Fan Effect、侧抑制、时间衰减、PageRank 和拒答门控,都是围绕这个核心增量展开的配套机制。

零、论文基本信息

  • 论文名称: Synapse: Empowering LLM Agents with Episodic-Semantic Memory via Spreading Activation
  • 发表平台: Findings of the Association for Computational Linguistics: ACL 2026
  • 代码仓库: https://github.com/hq0709/synapse
  • 作者: Hanqi Jiang、Junhao Chen、Yi Pan、Ling Chen、Weihang You、Yifan Zhou、Ruidong Zhang、Yohannes Abate、Tianming Liu

一、问题背景:为什么"搜到相似内容"不等于"想起正确记忆"

1. 静态向量库把记忆切成了孤岛

标准 RAG 通常把每条记忆独立编码:

s i = sim ⁡ ( h i , h q ) s_i=\operatorname{sim}(h_i,h_q) si=sim(hi,hq)

其中, h i h_i hi 是第 i i i 条记忆的向量, h q h_q hq 是查询向量, s i s_i si 是二者的余弦相似度。

这个公式只能回答"哪条记忆最像问题",不能回答:

  • 哪条记忆是当前事实的原因;
  • 两条看似无关的历史是否通过第三个事件相连;
  • 同一事实发生更新后,哪个版本仍然有效;
  • 一个高度相似的片段是否只是词面干扰。

论文把这种记忆彼此断开的状态称为 Contextual Isolation 。摘要又使用了 Contextual Tunneling ,附录失败分析进一步提出 Cognitive Tunneling。三者不是完全相同的概念:前者是静态检索导致的结构隔离,后者是 Synapse 自身过强抑制造成的视野收窄。阅读时不能把它们混为一谈。

2. 多跳问题的关键证据可能并不相似

多跳推理的答案经常具有这样的结构:

q → v a → v b → v c q\rightarrow v_a\rightarrow v_b\rightarrow v_c q→va→vb→vc

v a v_a va 与问题直接相关,但真正的答案位于 v c v_c vc。如果检索只依据 q q q 与各节点的独立相似度, v c v_c vc 很可能永远进不了 Top-k。

图结构可以保存 v a v_a va、 v b v_b vb、 v c v_c vc 之间的关系,但"把记忆放进图里"仍不够。系统还需要一种查询相关的传播机制,决定能量从哪里进入、沿哪些边扩散、何时停止,以及如何避免高频 Hub 节点淹没具体事实。

3. 时间更新让高相似度成为陷阱

当用户先说"Caroline 住在瑞典",后来又说"Caroline 已搬到美国",两个片段与"她住在哪里"都高度相似。

静态相似度不会天然理解"新事实覆盖旧事实"。Synapse 因此不仅引入图传播,还在时间边上加入衰减,使较旧的路径逐渐失去竞争力。

4. 图传播也会制造新的噪声

如果能量不受约束地扩散,高度数节点会得到来自许多邻居的累计激活。例如"John""工作""旅行"之类常见概念可能成为 Hub,把大量无关片段一起带入上下文。

因此,Synapse 的设计不是简单的"向量检索 + 图遍历",而是要同时解决两个相反的问题:

  • 让能量能够跨越语义距离,找回隐含关联;
  • 防止能量扩散得太广,重新制造上下文噪声。

二、相关工作:Synapse 真正改变了哪一层

1. Memory Allocation:决定记忆放在哪里

MemGPT、MemoryOS、LangMem 等方法主要解决有限上下文下的分层存储、读写与换页问题。它们让 Agent 能够把信息从短期上下文移到外部记忆,也能按策略重新载入。

Synapse 认为,这类方法改善的是 Memory Placement,而不是关联推理。若外部记忆仍被当作相互独立的文本单元,系统依旧难以找回表面不相似但存在因果或时间联系的历史。

2. Structured Memory:把独立条目组织成图

A-MEM、AriGraph、Zep 与 GraphRAG 都使用了不同形式的链接或知识图结构;HippoRAG 则使用 Personalized PageRank 在图上检索。

Synapse 与它们最重要的差别不是"有图",而是查询期间存在显式的动态状态:每个节点都有随传播轮次变化的激活值,相关性由当前查询注入的能量与图结构共同决定。

PageRank 只提供全局结构先验,回答"哪些节点整体重要";Spreading Activation 提供局部上下文信号,回答"这次查询让哪些节点被唤起"。

3. Semantic Retrieval:把每条记忆独立排序

传统 RAG、MemoryBank 等主要依赖稠密向量或关键词相似度。它们适合事实查找,但面对坏种子节点、低向量相似度证据和跨节点推理时容易失效。

Synapse 没有完全抛弃向量检索。相反,它让 BM25 和 Dense Retrieval 负责找到初始锚点,再让图激活承担"从锚点继续想起什么"。这是一个检索职责的重新分工。

三、方法总览:从查询注入能量,再让记忆彼此唤起

理解 Synapse 最重要的是看清它的读写闭环。

Figure 1:Synapse 框架总览。 展示双路触发、统一情景---语义图上的激活传播,以及 Triple Hybrid Scoring 生成最终上下文的全过程。

整个系统包含三个阶段:

  1. Memory Write & Graph Construction: 每轮对话写入情景节点,每五轮抽取语义概念并建立三类边;
  2. Memory Read & Spreading Activation: BM25 与向量检索找到锚点,查询能量沿图传播,并接受时间衰减、Fan Effect 与侧抑制;
  3. Ranking & Context Assembly: 将向量相似度、最终激活值与 PageRank 融合,选择 Top-k 节点并按拓扑顺序组装上下文。

Figure 1 的例子中,查询只明确出现了 Kendall 和 Ski Trip。Mark 没有出现在问题里,却作为桥接节点被传播过程激活,最终连接到"Kendall 上周与 Mark 分手"这一答案。

这正是论文希望证明的能力:相关性不是预先写死在单个向量分数里,而是在查询进入图后动态涌现。

四、统一情景---语义图:既保留原始经历,也保存抽象概念

1. 图的基本定义

Agent 的长期记忆被写成有向图:

G = ( V , E ) , V = V E ∪ V S G=(V,E),\qquad V=V_E\cup V_S G=(V,E),V=VE∪VS

其中:

  • V E V_E VE 是 Episodic Nodes,保存具体对话轮次;
  • V S V_S VS 是 Semantic Nodes,保存人物、偏好、事件和抽象概念;
  • E E E 是连接两层记忆的边集合。

情景节点 v i e v_i^e vie 表示为:

v i e = ( c i , h i , τ i ) v_i^e=(c_i,h_i,\tau_i) vie=(ci,hi,τi)

c i c_i ci 是用户与 Agent 当前轮次拼接后的文本, h i ∈ R d h_i\in\mathbb{R}^d hi∈Rd 是 all-MiniLM-L6-v2 生成的 384 维向量, τ i \tau_i τi 是时间戳。

语义节点 v j s v_j^s vjs 由 LLM 每 N = 5 N=5 N=5 轮抽取一次。作者用 τ d u p = 0.92 \tau_{dup}=0.92 τdup=0.92 做重复检测:若新概念与已有语义节点的相似度超过阈值,就通过 EMA 更新已有节点,而不是继续创建重复节点。

2. 三类边分别解决什么问题

Temporal Edges

相邻情景轮次按时间顺序连接:

v t e → v t + 1 e v_t^e\rightarrow v_{t+1}^e vte→vt+1e

它保留对话演化过程,使系统能够区分"之前"和"现在"。

Abstraction Edges

最近五轮情景节点与从中抽取的概念双向连接。它让一段具体对话能够通过"Mark""Ski Trip""Dating"等抽象节点与其他经历汇合。

Association Edges

语义节点之间根据潜在相关性建立关联边。这些边提供跨事件跳转路径,使"滑雪旅行"和"约会"可以通过人物节点连接起来。

三类边承担不同职责:时间边保存序列,抽象边连接原始证据与概念,关联边支持概念间迁移。

3. 图如何在线增长

附录 Algorithm 1 给出的流程是:

  1. 每轮把用户输入和 Agent 回复拼接为 c t c_t ct;
  2. 编码并创建情景节点;
  3. 与上一情景节点建立权重为 1.0 的时间边;
  4. 每五轮触发一次 LLM 概念抽取;
  5. 新概念先与已有语义节点去重;
  6. 情景节点与新概念建立权重为 0.8 的抽象边;
  7. 相似度超过 0.92 且位于 Top-15 邻居中的语义节点之间建立关联边。

论文正文一方面说要避免 O ( ∣ V ∣ 2 ) O(|V|^2) O(∣V∣2) 增长,另一方面 Algorithm 1 仍写出了对 V S × V S V_S\times V_S VS×VS 的成对检查。作者补充说明实际实现使用 HNSW,将相似性更新优化为 O ( log ⁡ ∣ V ∣ ) O(\log |V|) O(log∣V∣)。因此,可扩展性依赖实现中的近似索引,而不是伪代码本身天然做到。

4. 图维护:避免长期运行后失控

作者设置了两层约束:

  • 每个节点最多保留 Top- K K K 入边,默认 K = 15 K=15 K=15;
  • 若节点激活值连续 W = 10 W=10 W=10 个窗口低于 ϵ = 0.01 \epsilon=0.01 ϵ=0.01,则归档到磁盘。

活跃图被限制在 ∣ V ∣ ≤ 10 , 000 |V|\le 10,000 ∣V∣≤10,000。这让检索延迟不随完整历史无限增长,但也意味着长期遗忘不是纯粹的时间衰减,而是"激活衰减 + 边裁剪 + 节点归档"的共同结果。

五、语义抽取:从最近经历中形成概念节点

Synapse 不直接让所有原始对话彼此连边,因为这既昂贵,也难以跨越表述差异。它每五轮让 LLM 抽取 Identity、Preference、Event、Technical 等规范化概念。

Figure 3:语义节点与边抽取 Prompt。 展示"先分析、再分类、后抽取"的结构化流程,以及节点 JSON 和关系边的目标格式。

例如,"John 喜欢露营"会被规范化为 Person 节点 John、Preference 节点 Camping,以及 HAS_INTEREST 关系。这样,即便之后用户说的是"outdoor hobby",检索也可能先命中 Camping,再传播到 John 的相关经历。

这一模块的价值是把语言表述压缩成稳定概念,风险也很明确:图的拓扑质量直接依赖 LLM 抽取质量。如果抽错实体、合并了两个同名人物,错误会沿后续传播继续放大。

六、双路触发:先找到能量注入点

Spreading Activation 不能凭空开始。给定查询 q q q,系统先通过两个检索器寻找锚点集合 T T T:

  • Lexical Trigger: BM25,擅长 Kendall 这类专有名词和精确字符串;
  • Semantic Trigger: Dense Retrieval,擅长 Ski Trip 与滑雪经历这类概念近义表达。

两路 Top-k 结果的并集构成锚点。初始激活向量为:

a i ( 0 ) = { α ⋅ sim ⁡ ( h i , h q ) , v i ∈ T 0 , otherwise a_i^{(0)}= \begin{cases} \alpha\cdot\operatorname{sim}(h_i,h_q), & v_i\in T\\ 0, & \text{otherwise} \end{cases} ai(0)={α⋅sim(hi,hq),0,vi∈Totherwise

α \alpha α 是能量缩放系数。只有锚点在第 0 轮获得能量,其余节点必须通过图连接被间接唤起。

双路触发并没有消除 Seed Dependence。如果 BM25 和 Dense Retrieval 都没有碰到正确子图,传播仍可能从错误区域开始。它只是通过词面与语义互补,降低"坏种子"的概率。

七、扩散激活:相关记忆如何沿图浮现

1. 传播与时间衰减

第 t + 1 t+1 t+1 轮中,节点 i i i 的原始激活势能为:

u i ( t + 1 ) = ( 1 − δ ) a i ( t ) + ∑ j ∈ N ( i ) S ⋅ w j i ⋅ a j ( t ) fan ⁡ ( j ) u_i^{(t+1)}=(1-\delta)a_i^{(t)}+ \sum_{j\in\mathcal{N}(i)} \frac{S\cdot w_{ji}\cdot a_j^{(t)}}{\operatorname{fan}(j)} ui(t+1)=(1−δ)ai(t)+j∈N(i)∑fan(j)S⋅wji⋅aj(t)

其中:

  • a i ( t ) a_i^{(t)} ai(t) 是节点上一轮激活值;
  • δ \delta δ 是节点衰减率,默认 0.5;
  • S = 0.8 S=0.8 S=0.8 是传播强度;
  • w j i w_{ji} wji 是边 j → i j\rightarrow i j→i 的权重;
  • fan ⁡ ( j ) = deg ⁡ o u t ( j ) \operatorname{fan}(j)=\deg_{out}(j) fan(j)=degout(j) 是节点 j j j 的出度。

第一项保留节点自身的一部分能量,第二项接收邻居传播来的能量。

时间边权重为:

w j i = e − ρ ∣ τ i − τ j ∣ , ρ = 0.01 w_{ji}=e^{-\rho|\tau_i-\tau_j|},\qquad \rho=0.01 wji=e−ρ∣τi−τj∣,ρ=0.01

时间间隔越大,沿该边传递的能量越弱。语义边则用节点向量相似度作为 w j i w_{ji} wji。

2. Fan Effect:Hub 的能量为什么要被摊薄

如果一个节点有大量出边,它向每个邻居传播的能量都会除以 fan ⁡ ( j ) \operatorname{fan}(j) fan(j)。

直觉上,一个概念关联得越广,每条关系提供的具体证据就越弱。"John"连接了旅行、工作、家人、爱好等许多片段,仅凭 John 被激活,不应让所有片段同时获得高分。

这就是 ACT-R 中的 Fan Effect:关联数量越多,注意力越被稀释。

3. 侧抑制:让高激活节点压制竞争者

传播之后,系统只选择势能最高的 M M M 个节点形成 T M T_M TM,默认 M = 7 M=7 M=7。节点 i i i 的抑制后势能为:

u ^ i ( t + 1 ) = max ⁡ ( 0 , u i ( t + 1 ) − β ∑ k ∈ T M ( u k ( t + 1 ) − u i ( t + 1 ) ) I u k ( t + 1 ) \> u i ( t + 1 ) ) \hat{u}i^{(t+1)}= \max\left( 0, u_i^{(t+1)}- \beta\sum{k\in T_M} \left(u_k^{(t+1)}-u_i^{(t+1)}\right) \mathbb{I}\leftu_k\^{(t+1)}\>u_i\^{(t+1)}\\right \right) u^i(t+1)=max(0,ui(t+1)−βk∈TM∑(uk(t+1)−ui(t+1))Iuk(t+1)\>ui(t+1))

β = 0.15 \beta=0.15 β=0.15 控制竞争强度。只有势能高于节点 i i i 的 Top- M M M 节点会对它产生抑制。

其目标不是让所有相关记忆都保留,而是制造 Winner-take-all 式竞争:强证据进一步凸显,弱干扰被压到零附近。

4. Sigmoid 激活:从势能变成发放率

抑制后的势能经过非线性变换:

a i ( t + 1 ) = σ ( u ^ i ( t + 1 ) ) = 1 1 + exp ⁡ − γ ( u \^ i ( t + 1 ) − θ ) a_i^{(t+1)}=\sigma\left(\hat{u}_i^{(t+1)}\right) =\frac{1}{1+\exp\left-\\gamma\\left(\\hat{u}_i\^{(t+1)}-\\theta\\right)\\right} ai(t+1)=σ(u^i(t+1))=1+exp−γ(u\^i(t+1)−θ)1

γ = 5.0 \gamma=5.0 γ=5.0 控制曲线陡峭程度, θ = 0.5 \theta=0.5 θ=0.5 是发放阈值。

完整循环严格按"传播 → 侧抑制 → Sigmoid"执行,默认重复 T = 3 T=3 T=3 轮。太浅时能量到不了远端证据,太深时则会把噪声一起带入。

八、Triple Hybrid Retrieval:局部激活与全局结构如何合并

传播结束后,节点最终分数为:

S ( v i ) = λ 1 sim ⁡ ( h i , h q ) + λ 2 a i ( T ) + λ 3 PageRank ⁡ ( v i ) S(v_i)= \lambda_1\operatorname{sim}(h_i,h_q) +\lambda_2a_i^{(T)} +\lambda_3\operatorname{PageRank}(v_i) S(vi)=λ1sim(hi,hq)+λ2ai(T)+λ3PageRank(vi)

默认权重为:

( λ 1 , λ 2 , λ 3 ) = ( 0.5 , 0.3 , 0.2 ) (\lambda_1,\lambda_2,\lambda_3)=(0.5,0.3,0.2) (λ1,λ2,λ3)=(0.5,0.3,0.2)

三个信号分别回答不同问题:

  • 向量相似度:节点本身是否与查询语义相近;
  • 最终激活值:节点是否被当前查询沿关联路径唤起;
  • PageRank:节点在整个图中是否具有稳定的结构重要性。

作者强调 PageRank 与 Activation 不能互相替代。PageRank 是与查询无关的 Global Structural Prior;Activation 是随查询变化的 Local Contextual Signal。

系统默认取 Top- k = 30 k=30 k=30 节点,再按拓扑顺序重排后送给 LLM。分数只在每五轮 Consolidation 时更新并缓存,以降低在线延迟。

九、不确定性感知拒答:不知道时不要编一个答案

图检索面对一个特殊问题:用户可能询问从未出现过的实体或事件。即使没有真正证据,向量检索也总能返回"最像"的若干项。

Synapse 借鉴 Feeling of Knowing,将 Top-1 节点激活能量作为检索置信度:

C r e t = a Top1 ⁡ ( T ) C_{ret}=a_{\operatorname{Top1}}^{(T)} Cret=aTop1(T)

若:

C r e t < τ g a t e , τ g a t e = 0.12 C_{ret}<\tau_{gate},\qquad \tau_{gate}=0.12 Cret<τgate,τgate=0.12

系统直接触发 Negative Acknowledgement,不继续生成事实性答案。

通过门控的边界案例还要接受显式验证 Prompt:"这是否在证据中被明确提到?若没有,输出 Not mentioned。"

需要注意,这个模块提升的是拒答能力,不等同于记忆推理能力。因此作者在计算主平均分时排除了 Adversarial 类别,并另外报告关闭门控后的结果,试图证明优势不是靠拒答分数堆出来的。

十、实验设置

1. 数据集

论文只在 LoCoMo 上进行主要评估。该数据集包含平均约 16K Token、最多 35 个 Session 的长周期对话。

五类任务为:

  • C1:Single-Hop;
  • C2:Temporal;
  • C3:Open-Domain;
  • C4:Multi-Hop;
  • C5:Adversarial。

主平均分只统计前四类。有效样本数分别为 Multi-Hop 841、Single-Hop 282、Temporal 321、Open-Domain 96,共 1540 条:

Weighted Score ⁡ = ∑ k ∈ C N k S k ∑ k ∈ C N k \operatorname{Weighted\ Score}= \frac{\sum_{k\in\mathcal{C}}N_kS_k} {\sum_{k\in\mathcal{C}}N_k} Weighted Score=∑k∈CNk∑k∈CNkSk

这里 S k S_k Sk 是类别 k k k 的 F1 或 BLEU-1, N k N_k Nk 是该类样本数量。

2. Baseline

论文比较了 MemoryBank、ReadAgent、ENGRAM、GraphRAG、MemGPT、LoCoMo、LangMem、A-MEM、MemoryOS、AriGraph 和 Zep,覆盖系统级分层记忆、图记忆、检索记忆与 Agentic/Compression 四类范式。

带 † \dagger † 的可复现 Baseline 统一使用 GPT-4o-mini、温度 0.1 重新运行;固定专有后端的方法使用其默认强模型结果。因此,主表并非所有行都严格共享同一生成模型,这会削弱横向比较的纯粹性。

3. 指标与统计

论文报告 F1、BLEU-1、LLM-as-a-Judge 语义分,以及延迟、Token、API 成本和 Cost Efficiency。

作者在 500 个代表性样本上用配对 t 检验比较 Synapse 与第二名,报告 p < 0.05 p<0.05 p<0.05;另进行了三次随机种子实验。

十一、主实验:优势集中在多跳、时间与拒答

为了避免一个超宽公式表,下面按论文 Table 1 的 F1 与 BLEU-1 分成两部分复现。

Method M-Hop Temp. Open Single Adv. Avg. MemoryBank † 5.0 9.7 5.6 6.6 7.4 6.3 ReadAgent † 9.2 12.6 5.3 9.7 9.8 9.8 ENGRAM 18.3 21.9 8.6 23.1 33.5 19.3 GraphRAG † 16.5 22.4 10.1 24.5 15.2 18.3 MemGPT † 26.7 25.5 9.2 41.0 43.3 28.0 LoCoMo † 25.0 18.4 12.0 40.4 69.2 25.6 LangMem 34.5 30.8 24.3 40.9 47.6 34.3 A-Mem † 27.0 45.9 12.1 44.7 50.0 33.3 MemoryOS 35.3 41.2 20.0 48.6 − 38.0 AriGraph 28.5 43.2 14.5 45.1 48.5 33.7 Zep ‾ 35.5 48.5 23.1 48.0 65.4 39.7 Synapse 35.7 50.1 25.9 48.9 96.6 40.5 \begin{array}{l|rrrrrr} \hline \textbf{Method} & \textbf{M-Hop} & \textbf{Temp.} & \textbf{Open} & \textbf{Single} & \textbf{Adv.} & \textbf{Avg.}\\ \hline \text{MemoryBank}^{\dagger} & 5.0 & 9.7 & 5.6 & 6.6 & 7.4 & 6.3\\ \text{ReadAgent}^{\dagger} & 9.2 & 12.6 & 5.3 & 9.7 & 9.8 & 9.8\\ \text{ENGRAM} & 18.3 & 21.9 & 8.6 & 23.1 & 33.5 & 19.3\\ \text{GraphRAG}^{\dagger} & 16.5 & 22.4 & 10.1 & 24.5 & 15.2 & 18.3\\ \text{MemGPT}^{\dagger} & 26.7 & 25.5 & 9.2 & 41.0 & 43.3 & 28.0\\ \text{LoCoMo}^{\dagger} & 25.0 & 18.4 & 12.0 & 40.4 & 69.2 & 25.6\\ \text{LangMem} & 34.5 & 30.8 & 24.3 & 40.9 & 47.6 & 34.3\\ \text{A-Mem}^{\dagger} & 27.0 & 45.9 & 12.1 & 44.7 & 50.0 & 33.3\\ \text{MemoryOS} & 35.3 & 41.2 & 20.0 & 48.6 & - & 38.0\\ \text{AriGraph} & 28.5 & 43.2 & 14.5 & 45.1 & 48.5 & 33.7\\ \underline{\text{Zep}} & 35.5 & 48.5 & 23.1 & 48.0 & 65.4 & 39.7\\ \mathbf{\text{Synapse}} & \mathbf{35.7} & \mathbf{50.1} & \mathbf{25.9} & \mathbf{48.9} & \mathbf{96.6} & \mathbf{40.5}\\ \hline \end{array} MethodMemoryBank†ReadAgent†ENGRAMGraphRAG†MemGPT†LoCoMo†LangMemA-Mem†MemoryOSAriGraphZepSynapseM-Hop5.09.218.316.526.725.034.527.035.328.535.535.7Temp.9.712.621.922.425.518.430.845.941.243.248.550.1Open5.65.38.610.19.212.024.312.120.014.523.125.9Single6.69.723.124.541.040.440.944.748.645.148.048.9Adv.7.49.833.515.243.369.247.650.0−48.565.496.6Avg.6.39.819.318.328.025.634.333.338.033.739.740.5

Table 1:LoCoMo 主实验 F1。 比较 GPT-4o-mini 设置下五类任务与排除 Adversarial 后的加权平均分。

Method M-Hop Temp. Open Single Adv. Avg. MemoryBank † 4.8 7.0 5.9 5.2 6.5 5.4 ReadAgent † 6.5 8.9 5.1 7.7 9.0 7.1 ENGRAM 13.2 14.7 5.5 13.7 19.4 13.1 GraphRAG † 11.8 15.2 8.4 18.2 12.0 14.2 MemGPT † 17.7 19.4 7.4 34.3 42.7 20.5 LoCoMo † 19.8 14.8 11.2 29.1 68.8 19.9 LangMem 23.7 25.8 19.2 33.6 46.3 25.7 A-Mem † 20.1 36.7 12.0 37.1 49.5 26.2 MemoryOS 25.2 30.8 16.5 43.0 − 29.1 AriGraph 21.0 33.5 13.0 38.0 47.0 26.2 Zep ‾ 25.8 40.2 18.0 41.5 64.0 31.2 Synapse 26.2 44.5 19.2 42.9 96.4 32.6 \begin{array}{l|rrrrrr} \hline \textbf{Method} & \textbf{M-Hop} & \textbf{Temp.} & \textbf{Open} & \textbf{Single} & \textbf{Adv.} & \textbf{Avg.}\\ \hline \text{MemoryBank}^{\dagger} & 4.8 & 7.0 & 5.9 & 5.2 & 6.5 & 5.4\\ \text{ReadAgent}^{\dagger} & 6.5 & 8.9 & 5.1 & 7.7 & 9.0 & 7.1\\ \text{ENGRAM} & 13.2 & 14.7 & 5.5 & 13.7 & 19.4 & 13.1\\ \text{GraphRAG}^{\dagger} & 11.8 & 15.2 & 8.4 & 18.2 & 12.0 & 14.2\\ \text{MemGPT}^{\dagger} & 17.7 & 19.4 & 7.4 & 34.3 & 42.7 & 20.5\\ \text{LoCoMo}^{\dagger} & 19.8 & 14.8 & 11.2 & 29.1 & 68.8 & 19.9\\ \text{LangMem} & 23.7 & 25.8 & 19.2 & 33.6 & 46.3 & 25.7\\ \text{A-Mem}^{\dagger} & 20.1 & 36.7 & 12.0 & 37.1 & 49.5 & 26.2\\ \text{MemoryOS} & 25.2 & 30.8 & 16.5 & 43.0 & - & 29.1\\ \text{AriGraph} & 21.0 & 33.5 & 13.0 & 38.0 & 47.0 & 26.2\\ \underline{\text{Zep}} & 25.8 & 40.2 & 18.0 & 41.5 & 64.0 & 31.2\\ \mathbf{\text{Synapse}} & \mathbf{26.2} & \mathbf{44.5} & \mathbf{19.2} & \mathbf{42.9} & \mathbf{96.4} & \mathbf{32.6}\\ \hline \end{array} MethodMemoryBank†ReadAgent†ENGRAMGraphRAG†MemGPT†LoCoMo†LangMemA-Mem†MemoryOSAriGraphZepSynapseM-Hop4.86.513.211.817.719.823.720.125.221.025.826.2Temp.7.08.914.715.219.414.825.836.730.833.540.244.5Open5.95.15.58.47.411.219.212.016.513.018.019.2Single5.27.713.718.234.329.133.637.143.038.041.542.9Adv.6.59.019.412.042.768.846.349.5−47.064.096.4Avg.5.47.113.114.220.519.925.726.229.126.231.232.6

Table 1(续):LoCoMo 主实验 BLEU-1。 展示与 F1 相同设置下的词面重叠结果。

1. 总体提升存在,但并没有把第二名远远甩开

Synapse 的加权 F1 为 40.5,比 A-MEM 的 33.3 高 7.2 分;但与真正的第二名 Zep 39.7 相比,只高 0.8 分。

因此,"+7.2 F1"是相对 A-MEM 的差值,不是相对全体 Baseline 中最强结果的差值。论文报告 paired t-test 表明相对 Zep 仍有统计显著性,但实际效应大小需要与 0.8 分一起理解。

2. Multi-Hop 提升支持核心机制,但幅度应准确表述

Synapse 的 Multi-Hop F1 为 35.7:

  • 相比 A-MEM 27.0,提高 8.7 个百分点;
  • 相比 Zep 35.5,只提高 0.2 个百分点;
  • 相比 LangMem 34.5,提高 1.2 个百分点。

论文引言声称 Multi-Hop "improving accuracy by up to 23%",但 Table 1 不能直接得到一个唯一对应的 23%:相对 A-MEM 的 F1 相对提升约为 32.2%,绝对提升则为 8.7 分。这个宣传数字缺少清晰参照,不宜脱离表格复述。

3. Temporal 是更稳定的优势项

Synapse 的 Temporal F1 为 50.1,高于 Zep 48.5、A-MEM 45.9。更明显的是 BLEU-1 达到 44.5,比 Zep 的 40.2 高 4.3 分。

这支持时间边衰减确实能帮助系统压低过时事实,但后面的消融才是更直接的因果证据。

4. Adversarial 的高分主要来自专门拒答模块

Synapse 的 Adversarial F1 为 96.6,远高于 Zep 65.4。不过这是一个专门设计了门控与验证 Prompt 的系统对比多数没有同类模块的 Baseline。

作者没有把该类纳入 Avg,这一点是合理的。关闭门控后,Avg 仍为 40.3,说明普通任务优势并非由拒答分数造成。

5. Single-Hop 并不是压倒性领先

Synapse 的 Single-Hop F1 为 48.9,只比 MemoryOS 48.6 和 Zep 48.0 略高。附录 GPT-4o 实验中,LoCoMo Full Context 风格方法甚至达到 61.6,而 Synapse 只有 46.5。

这提示图传播的价值主要在关联推理,不在简单原文查找。

十二、定性案例:三种静态检索失败模式

论文 Table 2 很宽且包含长文本,不适合在 CSDN 中强行用 LaTeX 复刻。它给出了三类代表性现象。

1. Semantic Drift

用户询问一个不存在的宠物,A-MEM 因为"dog"与记忆中的玩具恐龙 Rex 语义接近,生成了"她有一只名叫 Rex 的狗"。Synapse 检测到 C r e t < 0.12 C_{ret}<0.12 Cret<0.12,直接回答没有相关记录。

2. Temporal Obsolescence

A-MEM 返回 Caroline 四年前从瑞典搬家的旧记录,Synapse 则通过时间衰减提高当前美国居住状态的优先级。

3. Logical Disconnection

"Caroline 收藏经典书籍"和"Dr. Seuss"没有直接词面重叠。Synapse 沿 Caroline → Classic Books → Dr. Seuss 的图路径完成隐含关联。

这些例子解释了机制如何工作,但每类只有一个成功案例,只能作为说明,不能替代总体实验。

十三、消融实验:真正有用的不是"有图",而是图会动

Configuration M-Hop Temp. Open Single Adv. Avg. Synapse Full 35.7 50.1 25.9 48.9 96.6 40.5 − Gate 35.6 50.0 25.4 48.8 67.2 40.3 − Lateral Inhibition 35.1 49.8 22.4 49.1 71.5 39.4 − Fan Effect 30.2 48.5 16.8 47.5 94.2 36.1 − Node Decay 34.8 14.2 24.5 48.2 95.8 30.7 − Activation Dynamics 31.2 23.7 18.2 48.9 70.4 30.5 − Graph Structure 35.2 25.4 21.0 49.9 88.2 32.9 Vectors Only 27.5 14.7 12.5 46.0 69.2 25.2 \begin{array}{l|rrrrrr} \hline \textbf{Configuration} & \textbf{M-Hop} & \textbf{Temp.} & \textbf{Open} & \textbf{Single} & \textbf{Adv.} & \textbf{Avg.}\\ \hline \mathbf{\text{Synapse Full}} & \mathbf{35.7} & \mathbf{50.1} & \mathbf{25.9} & 48.9 & \mathbf{96.6} & \mathbf{40.5}\\ -\ \text{Gate} & 35.6 & 50.0 & 25.4 & 48.8 & 67.2 & 40.3\\ -\ \text{Lateral Inhibition} & 35.1 & 49.8 & 22.4 & 49.1 & 71.5 & 39.4\\ -\ \text{Fan Effect} & 30.2 & 48.5 & 16.8 & 47.5 & 94.2 & 36.1\\ -\ \text{Node Decay} & 34.8 & 14.2 & 24.5 & 48.2 & 95.8 & 30.7\\ -\ \text{Activation Dynamics} & 31.2 & 23.7 & 18.2 & 48.9 & 70.4 & 30.5\\ -\ \text{Graph Structure} & 35.2 & 25.4 & 21.0 & \mathbf{49.9} & 88.2 & 32.9\\ \text{Vectors Only} & 27.5 & 14.7 & 12.5 & 46.0 & 69.2 & 25.2\\ \hline \end{array} ConfigurationSynapse Full− Gate− Lateral Inhibition− Fan Effect− Node Decay− Activation Dynamics− Graph StructureVectors OnlyM-Hop35.735.635.130.234.831.235.227.5Temp.50.150.049.848.514.223.725.414.7Open25.925.422.416.824.518.221.012.5Single48.948.849.147.548.248.949.946.0Adv.96.667.271.594.295.870.488.269.2Avg.40.540.339.436.130.730.532.925.2

Table 3:机制消融实验。 比较微观认知动力学与宏观图结构对各任务 F1 的影响。

1. Node Decay 几乎决定了时间推理

移除 Node Decay 后,Temporal 从 50.1 暴跌到 14.2,下降 35.9 分。这是全文最强的模块特异性证据:时间表现不是"用了图"自然获得的,而是由衰减机制直接驱动。

2. Fan Effect 对开放域与多跳非常关键

移除 Fan Effect 后,Open-Domain 从 25.9 降到 16.8,Multi-Hop 从 35.7 降到 30.2。Hub 节点不再摊薄能量后,通用概念会淹没具体路径。

3. Lateral Inhibition 首先服务于拒答

去掉侧抑制后,Adversarial 从 96.6 降到 71.5,Open-Domain 也降到 22.4。它的作用是先把噪声压到门控阈值以下,而不仅仅是改变候选顺序。

4. 图结构与动态传播缺一不可

去掉 Activation Dynamics,Avg 降至 30.5;只保留向量时进一步降到 25.2。反过来,去掉 Graph Structure 后 Avg 也只有 32.9。

这组结果很好地支持了论文的核心论点:静态图不等于关联记忆,真正的增量是图上的查询相关动力学。

5. Single-Hop 甚至可能从删模块中受益

移除 Graph Structure 后 Single-Hop 从 48.9 升至 49.9,移除 Lateral Inhibition 后也升至 49.1。

平均分会掩盖这个反例:越复杂的记忆机制并不保证越适合直接事实查找。

十四、效率:更少上下文换来了更高图维护复杂度

Method Tokens Latency Cost/1k F1 F1/ LoCoMo ∼ 16910 8.2 s 2.67 25.6 9.6 MemGPT ∼ 16977 8.5 s 2.67 28.0 10.5 A-Mem ∼ 2520 5.4 s 0.50 33.3 66.9 MemoryOS ∼ 1198 1.5 s 0.30 38.0 126.8 ReadAgent ∼ 643 2.3 s 0.22 9.8 45.3 LangMem ∼ 717 0.6 s 0.23 34.3 150.7 MemoryBank ∼ 432 1.2 s 0.18 6.3 34.1 Synapse ∼ 814 1.9 s 0.24 40.5 167.3 \\begin{array}{l\|rrrrr} \\hline \\textbf{Method} \& \\textbf{Tokens} \& \\textbf{Latency} \& \\textbf{Cost/1k} \& \\textbf{F1} \& \\textbf{F1/\\}\\ \hline \text{LoCoMo} & \sim16910 & 8.2s & \2.67 \& 25.6 \& 9.6\\\\ \\text{MemGPT} \& \\sim16977 \& 8.5s \& \\2.67 & 28.0 & 10.5\\ \text{A-Mem} & \sim2520 & 5.4s & \0.50 \& 33.3 \& 66.9\\\\ \\text{MemoryOS} \& \\sim1198 \& \\mathbf{1.5s} \& \\0.30 & 38.0 & 126.8\\ \text{ReadAgent} & \sim643 & 2.3s & \0.22 \& 9.8 \& 45.3\\\\ \\text{LangMem} \& \\sim717 \& 0.6s \& \\0.23 & 34.3 & 150.7\\ \text{MemoryBank} & \sim432 & 1.2s & \0.18 \& 6.3 \& 34.1\\\\ \\mathbf{\\text{Synapse}} \& \\sim814 \& 1.9s \& \\0.24 & \mathbf{40.5} & \mathbf{167.3}\\ \hline \end{array} MethodLoCoMoMemGPTA-MemMemoryOSReadAgentLangMemMemoryBankSynapseTokens∼16910∼16977∼2520∼1198∼643∼717∼432∼814Latency8.2s8.5s5.4s1.5s2.3s0.6s1.2s1.9sCost/1k2.672.670.500.300.220.230.180.24F125.628.033.338.09.834.36.340.5F1/$9.610.566.9126.845.3150.734.1167.3

Table 4:效率对比。 在单张 NVIDIA A100、100 个查询上比较平均上下文长度、延迟、API 成本与成本效率。

Synapse 每次查询约使用 814 Token,比 LoCoMo 的 16910 Token 少约 95.2%;延迟 1.9 秒,也比 8.2 秒低约 76.8%。

它不是延迟最低的方案。LangMem 为 0.6 秒,MemoryBank 为 1.2 秒,MemoryOS 为 1.5 秒。Synapse 的优势是以中等延迟获得更高 F1,从而达到最高的 F1/$ 167.3。

表中的 Cost 只描述查询阶段。论文称图构建成本会在 Agent 生命周期中被摊薄、单查询可忽略,但没有完整报告 LLM 概念抽取、HNSW 更新、PageRank 缓存和长期存储成本。因此,"11 倍更便宜"主要是在线上下文成本结论,不是完整系统总拥有成本。

十五、超参数敏感性:传播三轮是关键甜点位

1. Top-k 并不十分敏感

Figure 2:Top-k 检索敏感性。 展示 k ∈ 10 , 50 k\in10,50 k∈10,50 时各类任务 F1 的变化,星形标记为 A-MEM 对照结果。

从 k = 20 k=20 k=20 到 k = 40 k=40 k=40,总体趋势相对稳定,默认 k = 30 k=30 k=30 是性能与上下文规模之间的折中。

但分类曲线并非都平坦:Single-Hop 随 k k k 增大持续提升,而 Adversarial 在 k > 30 k>30 k>30 后下降。这说明加入更多候选有利于事实覆盖,却会增加虚假关联进入上下文的概率。

2. 主要超参数

Parameter Value M-Hop Temp. Avg. S 0.6 / 0.8 / 1.0 32.8 / 35.7 / 33.5 47.5 / 50.1 / 48.0 38.3 / 40.5 / 38.8 δ 0.3 / 0.5 / 0.7 34.5 / 35.7 / 33.8 51.2 / 50.1 / 46.5 40.0 / 40.5 / 38.1 γ 3 / 5 / 7 34.9 / 35.7 / 35.1 49.3 / 50.1 / 49.7 39.8 / 40.5 / 40.0 θ 0.3 / 0.5 / 0.7 32.9 / 35.7 / 34.1 48.8 / 50.1 / 49.2 39.0 / 40.5 / 39.5 β 0.10 / 0.15 / 0.20 35.4 / 35.7 / 35.2 49.9 / 50.1 / 49.6 40.1 / 40.5 / 39.9 T 2 / 3 / 4 31.5 / 35.7 / 35.2 46.8 / 50.1 / 49.8 37.7 / 40.5 / 40.1 M 3 / 7 / 10 33.5 / 35.7 / 34.8 48.9 / 50.1 / 49.3 39.2 / 40.5 / 39.8 \begin{array}{l|r|rrr} \hline \textbf{Parameter} & \textbf{Value} & \textbf{M-Hop} & \textbf{Temp.} & \textbf{Avg.}\\ \hline S & 0.6/\mathbf{0.8}/1.0 & 32.8/\mathbf{35.7}/33.5 & 47.5/\mathbf{50.1}/48.0 & 38.3/\mathbf{40.5}/38.8\\ \delta & 0.3/\mathbf{0.5}/0.7 & 34.5/\mathbf{35.7}/33.8 & \mathbf{51.2}/50.1/46.5 & 40.0/\mathbf{40.5}/38.1\\ \gamma & 3/\mathbf{5}/7 & 34.9/\mathbf{35.7}/35.1 & 49.3/\mathbf{50.1}/49.7 & 39.8/\mathbf{40.5}/40.0\\ \theta & 0.3/\mathbf{0.5}/0.7 & 32.9/\mathbf{35.7}/34.1 & 48.8/\mathbf{50.1}/49.2 & 39.0/\mathbf{40.5}/39.5\\ \beta & 0.10/\mathbf{0.15}/0.20 & 35.4/\mathbf{35.7}/35.2 & 49.9/\mathbf{50.1}/49.6 & 40.1/\mathbf{40.5}/39.9\\ T & 2/\mathbf{3}/4 & 31.5/\mathbf{35.7}/35.2 & 46.8/\mathbf{50.1}/49.8 & 37.7/\mathbf{40.5}/40.1\\ M & 3/\mathbf{7}/10 & 33.5/\mathbf{35.7}/34.8 & 48.9/\mathbf{50.1}/49.3 & 39.2/\mathbf{40.5}/39.8\\ \hline \end{array} ParameterSδγθβTMValue0.6/0.8/1.00.3/0.5/0.73/5/70.3/0.5/0.70.10/0.15/0.202/3/43/7/10M-Hop32.8/35.7/33.534.5/35.7/33.834.9/35.7/35.132.9/35.7/34.135.4/35.7/35.231.5/35.7/35.233.5/35.7/34.8Temp.47.5/50.1/48.051.2/50.1/46.549.3/50.1/49.748.8/50.1/49.249.9/50.1/49.646.8/50.1/49.848.9/50.1/49.3Avg.38.3/40.5/38.840.0/40.5/38.139.8/40.5/40.039.0/40.5/39.540.1/40.5/39.937.7/40.5/40.139.2/40.5/39.8

Table 6:关键超参数敏感性。 加粗值为默认设置,比较传播、衰减、激活与抑制参数的变化。

传播深度 T T T 最敏感:两轮不够覆盖多跳路径,四轮则开始引入额外噪声。抑制候选数 M M M 也呈中间最优: M = 3 M=3 M=3 过度裁剪, M = 10 M=10 M=10 放入过多竞争者。

值得注意的是, δ = 0.3 \delta=0.3 δ=0.3 的 Temporal 51.2 高于默认 50.1,但其整体 Avg 40.0 略低。默认值优化的是总分,不是每个类别的独立最优值。

3. 拒答阈值的安全窗口

τ g a t e Adv. F1 FRR Verdict 0.00 60.2 0.0 % Baseline 0.05 94.2 0.8 % Conservative 0.10 95.8 1.5 % Balanced 0.12 96.6 2.1 % S e l e c t e d 0.15 97.2 4.2 % Aggressive 0.20 98.1 8.5 % Unsafe \begin{array}{r|rrl} \hline \tau_{gate} & \textbf{Adv. F1} & \textbf{FRR} & \textbf{Verdict}\\ \hline 0.00 & 60.2 & 0.0\% & \text{Baseline}\\ 0.05 & 94.2 & 0.8\% & \text{Conservative}\\ 0.10 & 95.8 & 1.5\% & \text{Balanced}\\ \mathbf{0.12} & \mathbf{96.6} & \mathbf{2.1\%} & \mathbf{Selected}\\ 0.15 & 97.2 & 4.2\% & \text{Aggressive}\\ 0.20 & 98.1 & 8.5\% & \text{Unsafe}\\ \hline \end{array} τgate0.000.050.100.120.150.20Adv. F160.294.295.896.697.298.1FRR0.0%0.8%1.5%2.1%4.2%8.5%VerdictBaselineConservativeBalancedSelectedAggressiveUnsafe

Table 7:拒答阈值校准。 比较 Adversarial F1 与正常问题错误拒答率 FRR 的权衡。

τ g a t e \tau_{gate} τgate 从 0 提升到 0.12,Adversarial F1 从 60.2 跃升至 96.6,而 FRR 为 2.1%;继续提高到 0.20,只多得到 1.5 分,却把 FRR 推到 8.5%。

这说明拒答安全不是免费能力。越保守的系统越不容易幻觉,也越可能把可回答问题误判成"不知道"。

十六、低相似度、稳定性与跨模型结果

1. 低向量相似度子集最能检验核心主张

Model Subset M-Hop Temp. Open Single Adv. ↓ F 1 A-MEM All 32.9 39.4 17.1 48.4 36.4 − A-MEM < 0.5 20.2 19.3 11.5 28.8 19.4 43.1 % A-MEM < 0.3 14.6 16.3 9.5 19.7 16.0 56.3 % Synapse All 39.3 55.5 29.5 46.5 97.8 − Synapse < 0.5 42.8 49.4 22.2 44.8 95.3 5.3 % Synapse < 0.3 42.3 47.5 21.5 43.8 93.7 7.4 % \begin{array}{l|c|rrrrrr} \hline \textbf{Model} & \textbf{Subset} & \textbf{M-Hop} & \textbf{Temp.} & \textbf{Open} & \textbf{Single} & \textbf{Adv.} & \mathbf{\downarrow F1}\\ \hline \text{A-MEM} & \text{All} & 32.9 & 39.4 & 17.1 & 48.4 & 36.4 & -\\ \text{A-MEM} & <0.5 & 20.2 & 19.3 & 11.5 & 28.8 & 19.4 & 43.1\%\\ \text{A-MEM} & <0.3 & 14.6 & 16.3 & 9.5 & 19.7 & 16.0 & 56.3\%\\ \text{Synapse} & \text{All} & 39.3 & 55.5 & 29.5 & 46.5 & 97.8 & -\\ \text{Synapse} & <0.5 & 42.8 & 49.4 & 22.2 & 44.8 & 95.3 & 5.3\%\\ \text{Synapse} & <0.3 & 42.3 & 47.5 & 21.5 & 43.8 & 93.7 & 7.4\%\\ \hline \end{array} ModelA-MEMA-MEMA-MEMSynapseSynapseSynapseSubsetAll<0.5<0.3All<0.5<0.3M-Hop32.920.214.639.342.842.3Temp.39.419.316.355.549.447.5Open17.111.59.529.522.221.5Single48.428.819.746.544.843.8Adv.36.419.416.097.895.393.7↓F1−43.1%56.3%−5.3%7.4%

Table 9:低向量相似度子集结果。 比较证据---问题相似度低于 0.5 和 0.3 时,A-MEM 与 Synapse 的性能退化。

A-MEM 在阈值 0.3 子集下降 56.3%,Synapse 只下降 7.4%。更有意思的是,Synapse 的 Multi-Hop 在低相似度子集反而从 39.3 升到 42.3。

这是比总体平均分更直接的证据:当向量相似度最不可靠时,结构传播确实能接管一部分检索职责。

不过该表使用 GPT-4o 设置,数值不能与主表 GPT-4o-mini 直接混算。

2. 三次随机运行较稳定

附录 Table 8 报告 Synapse 三次随机运行:Multi-Hop 35.7 ± 0.1 35.7\pm0.1 35.7±0.1、Temporal 50.1 ± 0.3 50.1\pm0.3 50.1±0.3、Open-Domain 25.9 ± 0.2 25.9\pm0.2 25.9±0.2、Single-Hop 48.9 ± 0.1 48.9\pm0.1 48.9±0.1、Adversarial 96.6 ± 0.1 96.6\pm0.1 96.6±0.1,Avg 为 40.5 ± 0.2 40.5\pm0.2 40.5±0.2。

方差很小,但三次运行仍不足以覆盖 Prompt、抽取模型、索引构建和不同数据顺序可能造成的系统性变化。

3. 小模型反而更依赖结构化检索

附录 Table 12 的加权 F1 为:

Method GPT-4o Qwen-1.5B Qwen-3B LoCoMo 29.5 8.5 4.7 A-MEM 36.1 20.4 16.2 MemoryOS − − 22.1 Synapse 43.4 35.9 36.6 \begin{array}{l|rrr} \hline \textbf{Method} & \textbf{GPT-4o} & \textbf{Qwen-1.5B} & \textbf{Qwen-3B}\\ \hline \text{LoCoMo} & 29.5 & 8.5 & 4.7\\ \text{A-MEM} & 36.1 & 20.4 & 16.2\\ \text{MemoryOS} & - & - & 22.1\\ \mathbf{\text{Synapse}} & \mathbf{43.4} & \mathbf{35.9} & \mathbf{36.6}\\ \hline \end{array} MethodLoCoMoA-MEMMemoryOSSynapseGPT-4o29.536.1−43.4Qwen-1.5B8.520.4−35.9Qwen-3B4.716.222.136.6

Table 12:跨 Backbone 加权 F1。 摘录 GPT-4o、Qwen-1.5B 与 Qwen-3B 下的关键对比结果。

Synapse 在 Qwen-3B 上达到 36.6,明显高于 A-MEM 16.2 和 MemoryOS 22.1。这说明检索阶段先把关系路径显式暴露出来,可以部分补偿小模型自身推理能力不足。

但附表也有需要谨慎解读的异常:Qwen-1.5B 的 Synapse Adversarial F1 为 98.1,而 BLEU 只有 60.1;多个 Baseline 的 F1/BLEU 组合也出现反常差距。跨 Backbone 的生成格式与拒答措辞可能显著影响词面指标。

十七、LLM Judge 与词面指标为什么得出不同结论

论文附录 Table 10 使用 0--100 的 LLM Judge 重新评分。Synapse 总分 80.7,高于 ENGRAM 77.6、MemoryOS 67.7;Multi-Hop 达到 84.2,高于 ENGRAM 79.8。

Table 11 解释了 F1 为什么可能低估答案:

  • Ground Truth 为 "Since 2016",Synapse 回答"截至 2023 年已经七年",F1 为 0,但 Judge 给 100;
  • Ground Truth 为 "Necklace",回答"A necklace symbolizing love",F1 只有 33.3;
  • Ground Truth 为 "Liberal",回答"Progressive or liberal",F1 为 50,但语义正确。

这说明 Agent Memory 的答案常是重构而非原文复制,单纯 n-gram 指标确实不够。

但 LLM Judge 也不是绝对真值。论文承认它可能偏好某些表达方式;而且 Synapse 的答案通常更完整、更自然,恰好可能得到生成式 Judge 的风格偏好。最稳妥的结论来自 F1、Judge、低相似度子集和机制消融共同指向同一趋势,而不是只看 80.7 这一项。

十八、失败案例:解决 Contextual Isolation 后,又出现 Cognitive Tunneling

论文没有只展示成功案例,还给出了侧抑制造成的典型失败。

Figure 4:Cognitive Tunneling。 展示高激活 Airport Hub 如何通过侧抑制压掉低度数的 Green Jacket 细节。

历史中明确写着"John 穿上绿色夹克去了机场"。当用户问夹克颜色时:

  • Airport Trip 得分 0.85;
  • Taxi Ride 得分 0.72;
  • 真正答案 Green Jacket 只有 0.11,最终被抑制裁掉。

这暴露了 Synapse 的根本张力:为了避免图扩散带来噪声,它让强节点压制弱节点;但一个事实的重要性与其图度数并不相同。颜色、编号、日期、参数值等低频细节通常恰恰只出现一次。

因此,Synapse 更像"联想记忆",而不是"无损档案"。若任务需要精确找回所有细节,还需要保留一条绕过激活竞争的 Exact Lookup 通道。

十九、与 Agent Memory 系列方法的横向比较

方法 主要改变的环节 记忆组织 读取机制 与 Synapse 的关键差别
A-MEM 记忆写入与链接 自组织记忆网络 语义相关检索 Synapse 强调查询时动态传播,而非只依靠已建立链接
MAGMA 多关系结构表达 多图/多关系记忆 图上组合检索 MAGMA 更重"有哪些关系视图",Synapse 更重"能量如何在关系上流动"
CoM 记忆管理决策 由控制过程选择操作 学习式管理与调用 CoM 学习何时执行记忆动作,Synapse 手工规定传播动力学
ReMemR1 写入时回看历史 Revisitable Memory Callback Retrieval ReMemR1 修复写入阶段不可逆丢失,Synapse 修复读取阶段的结构隔离
Mem²Evolve 记忆机制随经验演化 可演化记忆系统 经验驱动适配 Synapse 的拓扑会增长,但核心动力学和超参数仍是固定的
Amory 用叙事组织长期经历 情景叙事 + 语义事实 Coherence Retriever Amory 以故事连贯性选择 Narrative,Synapse 用数值激活在图上扩散
Synapse 查询时的记忆激活 情景---语义统一图 双路触发 + 扩散激活 + 混合排序 将检索显式建模为具有衰减与竞争的动态过程

这张横向图景说明,Synapse 并不是替代所有记忆模块。它主要补上"已经存下来的记忆,如何在查询时彼此唤起"这一层。

二十、对 Coding Agent、Tool Agent 与 Multi-Agent 的启发

以下是基于论文机制的工程推演,不是论文已经验证的实验结论。

1. Coding Agent:从报错沿依赖图激活历史修改

Coding Agent 可以把情景节点定义为 commit、issue、测试失败与工具调用,把语义节点定义为文件、函数、模块、依赖和设计决策。

当测试报错时,向量检索通常只找到包含同一错误文本的日志;扩散激活可以沿:

Error → Function → Dependency → Earlier Refactor \text{Error}\rightarrow\text{Function}\rightarrow\text{Dependency}\rightarrow\text{Earlier Refactor} Error→Function→Dependency→Earlier Refactor

找出表面不相似但真正引入问题的历史变更。

不过精确配置值、行号和一次性约束容易遭遇 Cognitive Tunneling,因此应同时保留符号搜索、代码索引和原始日志检索通道。

2. Tool Agent:把"调用失败"连接到环境状态

Tool Agent 的失败原因可能来自凭证过期、权限范围变化、前一步输出格式改变或服务端限流。这些历史与当前错误文本未必相似,却可以通过 Tool、Credential、Resource、Workflow 等语义节点形成因果路径。

时间衰减尤其重要:工具状态会变化,旧的成功经验不能永远压过最近失败证据。

3. Multi-Agent:传播跨 Agent 的间接证据

不同 Agent 可以拥有各自的情景记忆,再通过共享语义节点连接任务、实体和决策。一个 Agent 发现的约束,可以沿共享概念传播到负责规划或执行的另一个 Agent。

侧抑制在这里既能控制广播噪声,也可能让少数 Agent 的高频信息长期支配共享记忆。因此需要按来源可靠性、权限与任务角色调整边权,而不能只使用语义相似度。

4. 更实用的混合方案

工程上可以把 Synapse 作为 Association Channel,而不是唯一 Retriever:

  • Exact Channel:关键词、ID、日期、代码符号精确查找;
  • Semantic Channel:向量召回近义内容;
  • Association Channel:沿图传播因果、时间与实体关系;
  • Audit Channel:必要时回到原始日志核实。

这样既利用联想能力,又避免弱细节被永久压掉。

二十一、局限性

1. 只在单一文本对话基准上验证

主要实验集中于 LoCoMo。它适合长期对话,但不能代表代码仓库、工具轨迹、企业流程和具身多模态环境。

2. Cold Start

传播激活依赖足够连通的图。对话刚开始时,图稀疏,维护节点和边的开销可能高于简单上下文缓存,却没有足够关联可供传播。

3. Cognitive Tunneling

侧抑制会把低度数、小概率但正确的事实裁掉。论文给出了 Green Jacket 失败例,却没有报告这种失败在总体测试中的发生比例,也没有提出自适应降级策略。

4. 依赖 LLM 构图质量

语义节点与关系由 LLM 抽取。小模型可能不稳定遵守 Schema,错误实体合并、漏抽概念和虚假关系会改变整个传播路径。

5. 图增长与归档仍依赖启发式参数

N = 5 N=5 N=5、 K = 15 K=15 K=15、 τ d u p = 0.92 \tau_{dup}=0.92 τdup=0.92、 ϵ = 0.01 \epsilon=0.01 ϵ=0.01、 W = 10 W=10 W=10、活跃节点上限 10000 都是人工设置。论文没有系统研究长期对话下这些参数如何共同影响遗忘与误检索。

6. Baseline 并非完全统一

部分 Baseline 用 GPT-4o-mini 重跑,部分使用固定专有后端。不同生成模型、Prompt 与实现成熟度可能影响结果,尤其是 F1 与 BLEU 对输出格式很敏感。

7. 效率报告不包含完整写入成本

Table 4 的成本主要是在线查询。每五轮一次的 LLM 抽取、HNSW 更新、图维护、PageRank 缓存和归档成本没有被完整计入。

8. 指标证据仍有限

F1/BLEU 会低估语义正确答案,LLM Judge 又可能存在风格偏好。配对 t 检验只在 500 条代表性样本上进行,随机运行也只有三次。

9. 隐私与错误记忆

长期保存情景---语义图会暴露用户关系、偏好和事件结构。论文建议本地或加密存储,并利用时间衰减和节点裁剪实现细粒度遗忘,但没有给出隐私攻击或删除完备性实验。

二十二、我的理解与启发

1. Synapse 真正重要的是把"相关性"从属性变成状态

向量检索把相关性当成两个文本之间相对稳定的属性;Synapse 则把它变成当前查询作用于整张图后产生的瞬时状态。

同一个节点面对不同问题会获得不同激活值。这个变化比"用了知识图谱"更本质,因为它改变了系统对检索的定义。

2. 它把记忆检索变成了受控动力系统

Synapse 的几个参数实际构成一组稳定性控制:

  • S S S 决定传播强度;
  • T T T 决定传播半径;
  • δ \delta δ 决定旧能量保留;
  • M M M 和 β \beta β 决定竞争范围与强度;
  • γ \gamma γ 和 θ \theta θ 决定节点何时进入高激活区。

因此,后续值得研究的方向不是继续手调固定参数,而是让 Agent 根据查询类型自适应选择动力学。例如事实查找减少抑制,多跳问题增加传播深度,时间问题提高衰减敏感度。

3. "遗忘"是时间推理的一部分

去掉 Node Decay 后 Temporal 从 50.1 降到 14.2,这是一个很有启发的结果。长期记忆并不是保存得越多越好;若旧状态与新状态竞争力相同,系统就无法形成"当前真实世界"。

但衰减不应该等于删除。更稳妥的设计是降低旧事实的默认激活,同时保留可审计的历史版本。

4. 竞争机制必须为"小事实"留一条逃生通道

Cognitive Tunneling 不是偶然 Bug,而是侧抑制设计的必然副作用。任何 Winner-take-all 机制都会牺牲弱信号。

因此,长期 Agent Memory 可能需要"双通道意识":一个通道模拟联想和注意力,另一个通道提供精确、可穷举、不会被竞争压掉的档案查询。

5. 低相似度评估比总体均分更能说明问题

主表中 Synapse 只领先 Zep 0.8 F1,很容易让人认为贡献有限。但在低相似度子集上,A-MEM 下降超过 50%,Synapse 下降不到 8%。

这告诉我们:评价新型记忆检索时,不能只看平均 QA 分数。应专门构造"答案与问题不相似、但存在可验证关系路径"的测试集,才能真正检验关联记忆。

二十三、总结

Synapse 的核心贡献不是单纯把 Agent Memory 变成图,而是让查询能量在情景---语义图中传播:BM25 与向量检索负责点燃锚点,时间衰减与 Fan Effect 控制扩散,侧抑制制造竞争,最终再融合语义相似度、激活值和 PageRank 组装上下文。

实验最有力的证据来自三个方面:低向量相似度子集退化不到 8%,移除 Node Decay 后 Temporal 从 50.1 跌到 14.2,只用向量时平均 F1 从 40.5 降到 25.2。这些结果共同说明,动态图激活确实补足了静态检索在多跳和时间推理中的缺口。

它的边界同样清楚:侧抑制可能压掉一次性细节,图质量依赖 LLM 抽取,完整写入成本尚未充分报告,主要证据仍来自单一文本对话基准。

一句话总结:

Synapse 让 Agent 不再只"搜索最像的记忆",而是从一个线索出发,沿着时间与语义关联逐步想起真正相关的经历。

参考资料

  1. Jiang et al. Synapse: Empowering LLM Agents with Episodic-Semantic Memory via Spreading Activation. Findings of ACL 2026. https://aclanthology.org/2026.findings-acl.1108/
  2. Synapse 官方代码仓库:https://github.com/hq0709/synapse
  3. Collins and Loftus. A Spreading-Activation Theory of Semantic Processing. 1975.
  4. Anderson. A Spreading Activation Theory of Memory. 1983.
  5. Maharana et al. Evaluating Very Long-Term Conversational Memory of LLM Agents. 2024.
相关推荐
格林威1 小时前
C#图像夜间识别率提升:使用OpenCvSharp和Halcon融合DeepSORT实现复杂场景下准确识别
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
袁俪1 小时前
智能体搭建
人工智能
分布式存储与RustFS1 小时前
用 RustFS 原生 CLI `rc` 管对象存储:从 alias 到 cp 的完整玩法
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
扫描电镜1 小时前
Nature Communications:SEM-EDS解析高性能海水电解催化电极微观结构
论文阅读·科研·扫描电镜
分布式存储与RustFS1 小时前
用 RPM/DEB 包在 Linux 上安装 RustFS:生产落地第一步
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
开源量化GO1 小时前
先确认策略想法能不能变成规则
人工智能·python
luckystar513~1 小时前
Hermes 实战 :调度——cron 6:00 无人值守跑日报
人工智能·agent·智能体·hermes·实战专栏
3A Cloud1 小时前
Huashu Design:把 AI Agent 变成一间以 HTML 为画布的设计工作室
前端·人工智能·html
xwz小王子1 小时前
Science Robotics | 从模仿到创造:BeyondMimic如何让机器人“学到”人类的敏捷与多才多艺
人工智能·机器人