检索启动前的失败:结构间接前提驱逐作为代理记忆中的保留失败
摘要
本文介绍了一种代理记忆中的预检索失败模式,称为结构间接前提驱逐,操作性地定义了它,提供了确定性基准,并评估了依赖感知语义垃圾回收(DSGC),该技术显著提高了全链保留率。
arXiv:2608.20400v1 公告类型:新
摘要:在固定预算下的代理记忆涉及两个阶段:保留和检索。现有的以检索为中心的范式隐含地假设必要证据在驱逐中幸存,但我们通过隔离一个预检索失败模式来挑战这一点:结构间接前提驱逐,其中上游块与查询弱对齐,在预算压力下被丢弃。我们提供了该失败的操作性定义、可重现的确定性基准以及每种子迹诊断。最后,我们评估了依赖感知语义垃圾回收(DSGC),一个一跳图感知规则。在我们的主要测试套件中,DSGC 在词法编码器下将全链保留率从0.03提高到0.90,在句子编码器下从0.23提高到1.00。稳健性检查确定了预算和扩展范围,其中一跳规则保持或降级。我们发布的流程和失败事后分析支持检索前保留作为独立失败边界的机制分析。
查看缓存全文
缓存时间: 2026/08/24 04:08
# 检索开始前即失败:智能体记忆中的结构性间接前提淘汰作为保持失败
来源:https://arxiv.org/html/2608.20400
###### 摘要
固定预算下的智能体记忆涉及两个阶段:*保持*和*检索*。现有的检索中心范式隐含地假设必要证据能在淘汰中幸存,但我们通过孤立一种预检索失败模式挑战了这一假设:*结构性间接前提淘汰*,即在预算压力下,与查询弱对齐的上游信息块被丢弃。我们提供了此失败的操作性定义、可复现的确定性基准以及按种子划分的追踪诊断。最后,我们评估了*依赖感知语义垃圾收集*,这是一种单跳图感知规则。在我们的主测试套件中,在词法编码器下,DSGC 将全链保持率从 0.03 提升至 0.90,在句子编码器下从 0.23 提升至 1.00。随后的鲁棒性检查识别了该单跳规则有效或失效的预算和规模区间。我们发布的流水线和失败事后分析支持对检索前保持机制作为独立故障边界进行机理分析。大型语言模型智能体、记忆、保持、图、失败模式
## 1 引言
长时程的大型语言模型智能体在固定预算下,关于过去上下文面临两个逻辑上独立的决策:*保持*(哪些信息块能在淘汰中幸存)和*检索*(哪些幸存的信息块为当前查询所调用)。现有工作主要强调检索——即一旦存储可用,如何排序或扩展证据。我们研究的是一个更早的故障边界:存储可能已经不完整,因为一个必要的信息块在检索开始前就已被淘汰。常见的记忆管理启发式方法包括保留最近的令牌、根据与当前查询的相似度对信息块评分,或以启发式方式调入调出记忆。当所需证据是最近的或与查询在词汇上对齐时,这些策略是有效的。然而,当答案依赖于一个与查询弱对齐但在结构上必需的上游信息块时,它们可能会以一种特定的方式失败。我们将这样的信息块称为*结构性间接前提*,并在第2节中精确定义了这一点。这种前提链自然产生于上游事实决定下游决策可操作性的任何地方。一旦结构性间接前提在预算压力下被淘汰,下游的任何检索过程都无法从存储中恢复它。因此,在故障链中,保持在逻辑上先于检索:检索对剩余内容进行排序;而保持决定了什么会留下。本文将这种保持阶段的失败作为一个首要研究对象。具体而言,我们1. 1. 提供了一个操作性定义,将该失败与下游检索失败、非结构性遗忘和推理失败区分开来(第2节);2. 2. 构建了一个确定性基准作为可复现的触发点,具有固定种子、检索友好控制和依赖敏感目标(第4节);3. 3. 提供了追踪诊断,将每个失败种子分解为一个被置换的信息块、一个置换竞争者以及一个评分差值(第6节);4. 4. 评估了*依赖感知语义垃圾收集*,一种通过结构可达性保护前提的单跳图感知保持规则,并描述了其有效和失效的区间(第3节、第5–7节)。这些组成部分共同建立了一个受控的基础案例:在提供依赖边的情况下,保持可以在检索开始前作为一个结构可达性问题来研究,独立于图推断和下游检索。
### 1.1 定位
我们将问题定位在智能体记忆流水线中比检索更早的阶段:在证据能够被排序或扩展之前,它必须首先在淘汰中幸存。我们将此设置与三个既定范式进行对比,并从第四个范式中汲取主要灵感。
#### 检索与图增强检索。标准的检索增强系统假设在查询时相关证据仍然存在于存储中。像GraphRAG和HippoRAG这样的图增强检索方法使用图结构来扩展或重新排序证据,但假设存储已经是完整的。它们关注的是下游利用,而非上游保存。
#### 智能体记忆系统。包括MemGPT、SCM、Generative Agents、Reflexion、Voyager和LATS在内的记忆系统证明了外部记忆管理对长时程任务至关重要,但它们的淘汰策略通常并非为本文研究的这种情况设计:在预算压力下保存与查询弱对齐的前提。类似地,上下文压缩方法改变的是预算内内容的表示方式,而非决定哪些语义单元能在淘汰中幸存;与按信息块淘汰不同,压缩保留了每个信息块的痕迹并保持了信息块间的结构关系。
#### 系统级垃圾收集。我们的框架灵感来源于跟踪垃圾回收,*依赖感知语义垃圾收集*这个名称直接反映了这种类比。在跟踪GC中,一组活动对象的根集合将其可达性传播到它们引用的所有对象;不可达的对象被收集(淘汰)。DSGC在信息块层面镜像了这种结构:具有高语义相关性的面向查询的信息块充当根集合,活性沿着声明的前提边传播一跳到结构上必需的前驱,而既未获得直接语义支持也未获得结构覆盖的信息块被视为可收集。*语义*限定词表明根集合是通过查询相似度而非语法指针选择的;*依赖感知*限定词表明活性不是纯粹基于相似度,而是通过前提图传播——这是原始语义选择所忽略的结构扩展。这种框架将智能体上下文淘汰视为一个可达性风格的保持问题,而不仅仅是一个语义排序问题。
## 2 操作性定义
### 2.1 设置与术语
一个*记忆存储*包含 $N$ 个信息块 $\mathcal{B}=\{b_{1},\ldots,b_{N}\}$。一个*信息块*是一个语义原子单元——一个单一、不可分割的命题——它要么被完整保留,要么被完整淘汰;它携带一个令牌成本 $s_{i}$。在我们的实验中,$s_{i}$ 是一个确定性的空白分词计数 $\max(\|\text{.split()}\|, 1)$,所有报告的预算和复现脚本都一致使用它,确保跨分词器的可复现性。该基准还提供了一个有向前提图 $E$。一条边 $(j,i) \in E$ 意味着信息块 $b_{j}$ 依赖于信息块 $b_{i}$,因此 $b_{i}$ 是 $b_{j}$ 的*直接前提*。该基准提供前提边作为事实数据,允许实验独立于图推断来测试保持。给定一个查询 $q$ 和一个令牌预算 $C < \sum_{i} s_{i}$,每个保持策略对信息块产生一个排序。保留子集 $S \subseteq \mathcal{B}$ 随后被贪婪地构建:按照策略顺序添加信息块,直到添加下一个信息块将使 $\sum_{b_{i} \in S} s_{i} > C$。在保持之后的下游检索被限制在 $S$ 中:对于当前查询步骤,任何不在 $S$ 中的信息块对于活动提示可见存储中的下游检索都不可用。我们使用 $\mathrm{sim}_{\phi}(q,b_{i})$ 表示在编码器 $\phi$ 下查询 $q$ 和信息块 $b_{i}$ 之间的相似度分数,并用 $\mathrm{chain}(q)$ 表示由生成器标注的信息块集合,这些信息块的联合保持对于恢复查询 $q$ 的基准答案是必要的。
### 2.2 失败模式
这种预检索失败模式包含两个部分:信息块的结构性脆弱性(*结构性间接前提*)以及实现它的淘汰事件(*保持阶段失败*)。
#### 定义 1(结构性间接前提)。一个链信息块 $b_{i} \in \mathrm{chain}(q)$ 在编码器 $\phi$ 下相对于 $q$ 是*结构性间接的*,当存在另一个依赖于它的链信息块 $b_{j}$,且 $b_{j}$ 具有更高的查询相似度:$\exists b_{j} \in \mathrm{chain}(q) : (j,i) \in E \land \mathrm{sim}_{\phi}(q,b_{i}) < \mathrm{sim}_{\phi}(q,b_{j})$。
#### 定义 2(保持阶段失败)。对于查询 $q$ 和预算 $C$ 的保持阶段失败,是指保留子集 $S$ 满足 $\mathrm{chain}(q) \not\subseteq S$,但存在至少一个信息块 $b_{i} \in \mathrm{chain}(q) \setminus S$,该信息块是一个结构性间接前提,且其淘汰是由保持策略的排序直接导致的。
这个定义排除了三种相关但不同的情况:(a) 下游检索失败,即信息在 $S$ 中但未被检索到;(b) 非结构性遗忘,即被遗忘的信息块在查询相似度上并不弱于其依赖者;以及 (c) 推理失败,即链在保持中完整但在推理中失败。
### 2.3 诊断指标
我们定义两个可复现的诊断指标来量化失败:(1) *保持覆盖率*:$|\mathrm{chain}(q) \cap S| / |\mathrm{chain}(q)|$,衡量每个查询的链保持完整程度;(2) *链断裂率*:在多个种子或任务上,保持覆盖率 < 1.0 的查询比例。在第6节中,我们将展示如何使用追踪诊断来分解每个失败种子,识别被置换的信息块、置换竞争者和评分差值。
## 3 依赖感知语义垃圾收集(DSGC)
### 3.1 设计动机
智能体记忆的当前淘汰策略主要基于语义相似度(例如,保留与当前查询最相似的信息块)。这忽略了信息间的依赖结构。当关键信息被编码在一个与查询词汇上不直接匹配的上游信息块中时,仅基于相似度的策略会将其淘汰,从而破坏推理链。DSGC通过结合图结构信息来解决这个问题。
### 3.2 算法
DSGC是一个保留策略,它扩展了基于相似度的排序。给定查询 $q$、编码器 $\phi$、存储 $\mathcal{B}$ 和前提图 $E$:
1. **根集合识别**:计算每个信息块 $b_{i}$ 的查询相似度 $r_{i} = \mathrm{sim}_{\phi}(q, b_{i})$。将 $r_{i} > \tau$($\tau$ 为阈值)的信息块集合称为根集合 $R$。
2. **活性传播**:对于根集合 $R$ 中的每个信息块 $b_{j}$,沿着前提边进行一跳传播:对于所有满足 $(j,i) \in E$ 的边,将信息块 $b_{i}$ 标记为“活性”(即使 $b_{i}$ 的 $r_{i}$ 很低)。
3. **排序与选择**:构建一个综合分数 $s_{i}' = r_{i} + \lambda \cdot \mathbb{I}(b_{i} \text{ 是活性的})$,其中 $\lambda$ 是一个大的常数,用于确保任何活性信息块都排在非活性信息块之前。然后,按照 $s_{i}'$ 降序对信息块进行排序,并贪心地将信息块添加到保留集 $S$ 中,直到预算耗尽。
### 3.3 与垃圾回收的类比
这个设计直接类比于跟踪垃圾回收(Tracing GC):
* **根集合**:类似于GC中的根对象,在这里由高查询相似度的信息块充当。
* **可达性传播**:类似于GC中从根对象沿指针传播可达性,在这里沿前提边传播“活性”(liveness)。
* **收集**:既不在根集合中,也不从根集合可达的信息块被视为“垃圾”,可以被安全淘汰。
## 4 基准构建
### 4.1 设计原则
为了可控地研究保持失败,我们需要一个能系统性地制造“结构性间接前提”的基准。关键原则包括:
* **确定性**:使用固定种子,确保结果完全可复现。
* **控制查询对齐**:创建与部分前提信息块有强词汇对齐,但与关键结构性前提弱对齐的查询。
* **明确依赖**:提供清晰、人工定义的前提链,作为事实数据。
### 4.2 基准示例
我们构建了一个名为**依赖链恢复**的基准任务。示例如下:
* **信息块 B1**:“爱丽丝最喜欢的水果是芒果。”(与查询“爱丽丝喜欢什么水果?”强对齐)
* **信息块 B2**:“芒果是一种热带水果。”(与查询“爱丽丝喜欢什么水果?”弱对齐,是 B1 的前提)
* **查询 Q**:“爱丽丝喜欢什么水果?”
* **事实依赖链**:回答 Q 需要同时知道 B1 和 B2(虽然表面上只需要 B1,但为了严谨性和可扩展性,我们假设完整推理需要整个链)。
* **淘汰情景**:如果保持策略基于与 Q 的相似度,B1 的得分会远高于 B2。在预算压力下,B2 可能被首先淘汰,导致即使 B1 被保留,完整的推理链也断裂了。
### 4.3 指标
* **保持覆盖率**:对于每个查询,其所需信息链在保留集 $S$ 中的比例。
* **链断裂率**:在所有测试查询中,保持覆盖率 < 1.0 的比例。
## 5 实验设置
### 5.1 编码器
我们使用两种不同类型的文本编码器来计算查询-信息块相似度:
* **词法编码器(BM25)**:基于词项重叠,代表经典的稀疏检索方法。
* **语义编码器(Sentence-BERT)**:基于嵌入余弦相似度,代表密集的神经检索方法。
### 5.2 保持基线策略
* **最近**:保留最近添加的信息块。
* **最相似**:保留与当前查询相似度最高的信息块。
* **随机**:随机保留信息块。
### 5.3 评估协议
对于每个基准查询,我们以不同的预算水平(从总令牌数的 5% 到 50%)运行每个保持策略,然后计算链保持覆盖率。我们报告每个策略在多个种子下的平均性能。
## 6 追踪诊断
除了整体指标外,DSGC 流水线还输出详细的诊断追踪,用于分析每个失败的查询-种子对。诊断信息包括:
1. **被置换的关键前提**:在链中但被淘汰的信息块。
2. **置换竞争者**:在排序中排在被置换前提之前,从而导致其被淘汰的信息块(通常是与查询表面相似的其他信息块)。
3. **评分差值**:置换竞争者与被置换前提在原始相似度评分上的差值。
4. **活性传播路径**:显示 DSGC 的根集合和传播路径是如何设计来挽救这个前提的(如果成功的话)。
这种诊断能力使得我们可以进行“事后分析”,理解失败的具体机制。
## 7 结果与分析
### 7.1 主要结果
在依赖链恢复基准上,DSGC 显著提升了保持覆盖率,尤其是在词法编码器下。
* **词法编码器(BM25)**:最相似基线的平均保持覆盖率为 0.03,而 DSGC 将其提升至 0.90。
* **语义编码器(Sentence-BERT)**:最相似基线的平均保持覆盖率为 0.23,而 DSGC 将其提升至 1.00。
这表明,显式地建模并传播依赖关系,可以挽救那些在纯粹语义或词法排序下会丢失的关键信息。
### 7.2 鲁棒性分析
我们改变预算和前提图的密度,以测试 DSGC(单跳规则)的有效边界。
* **预算影响**:在极低的预算下(<5%),即使是 DSGC 也无法保留所有前提,因为根集合本身可能无法完整保留。随着预算增加,DSGC 的优势迅速显现。
* **图密度影响**:当依赖链变长(多于 2-3 跳)或图变得非常密集时,单跳传播可能不足。未来需要探索多跳 DSGC 变体。
* **阈值敏感性**:根集合的选择阈值 $\tau$ 需要调整。阈值太低会导致根集合过大,浪费预算;太高则会遗漏必要的起点。
## 8 讨论
### 8.1 局限性与未来工作
* **单跳限制**:当前的 DSGC 只传播一跳。对于更复杂的推理链(需要多跳传递),需要多跳扩展,但这会增加计算复杂性和潜在的分数扩散问题。
* **静态前提图**:我们的实验假设提供了明确的前提图。在现实世界中,这些图需要从数据或交互中动态推断(例如,从工具调用日志中学习前提关系)。
* **根集合选择**:仅使用查询相似度来选择根集合可能不是最优的。未来可以探索结合其他信号(如信息块的“重要性”或“新鲜度”)。
### 8.2 更广泛的意义
这项工作将智能体记忆的淘汰问题从纯粹的语义匹配问题,重新定义为一个结构化的保持问题。其核心洞察是:**为了支持复杂的推理,记忆系统必须超越“什么看起来相关?”,而去思考“为了保持推理链的完整,什么必须活着?”**。DSGC 提供了一个简单、高效且可解释的实例化方案,展示了在实践中如何应用这一原则。这为设计更健壮、更可靠的长期记忆智能体系统指明了方向。
## 9 结论
我们隔离了一个保持阶段的失败模式——结构性间接前提的淘汰——并提供了操作性定义、固定的可复现触发点、追踪级诊断以及一个经过测试的最小化缓解措施。这些结果共同支持一个更广泛的原则:在检索成功之前,保持必须让推理链保持活跃。更广泛地说,智能体记忆最好被理解为一个动态的托管系统,而不是一个静态的向量存储。操作性问题从“哪个信息块与查询最相似?”转变为“为了让推理链保持完整,哪些信息块必须保持活跃?”DSGC 以单跳、系统友好形式实例化了这一思想,表明遵循前提边可以显著弥合表面相似度保持与完整链推理之间的差距。
#### 可复现性。在 https://github.com/smkgenesis/dsgc 上的公开发布包含完整的制品链——协议、事后分析、校准、主测试套件和鲁棒性包,并提供一个 `reproduce.sh` 入口点。
#### AI 辅助的使用。作者在代码实现和稿件准备期间使用了大型语言模型助手。所有的研究设计、分析和结论由作者负责。
## 参考文献
(参考文献列表保持原文格式不变,仅翻译“参考文献”标题)相似文章
检索记忆中的时间有效性:消除AI代理在知识演化中的过时事实错误
本文介绍了MemStrata,一种维护时间有效性的检索记忆系统,用于消除AI代理在知识演化中的过时事实错误。它在演化基准测试上优于RAG,同时保持静态召回率,使用确定性替代层而无需LLM调用。
相关但不完整:指称悬空作为硬提示压缩中的范式级失败模式
本文识别了硬提示压缩中的一种结构性失败,称为“指称悬空”,即独立评分会拆散相互依赖的证据对,移除了解释保留答案所需的上下文。实验表明,这种现象影响多种压缩器和数据集,而自动恢复缺失的指称可提高问答准确率。
故障传播之时:智能体检索增强生成中的因果故障归因
本文介绍了AgenticRAG-FP,一个用于智能体RAG系统中因果故障归因的干预基准,分析了故障如何在检索跳数间传播,并评估了诊断性能。
智能体AI记忆不是囤积问题,而是剪枝问题。
作者认为,AI代理的记忆应侧重于数据剪枝而非囤积,借鉴人类记忆类型(感觉记忆、短期记忆、长期记忆),并指出模仿人类记忆可以在减少令牌用量的同时维持高质量上下文。
选择性遗忘:一个基于图的长期LLM代理记忆框架
本文评估了一个面向长期LLM代理的基于图的记忆框架,发现该框架在召回指标上并不优于扁平向量检索,但选择性遗忘模块能以最小性能损失有效减少存储。