【论文阅读】Agent 记忆机制(52):Cognitive Scaffold——面向 DeepResearch Agent 的结晶化记忆框架

文章目录

  • 前言
  • 零、论文基本信息
  • 一、背景与问题
    • [1. 长上下文真正的瓶颈不是容量,而是信噪比](#1. 长上下文真正的瓶颈不是容量,而是信噪比)
    • [2. 摘要式压缩为什么会造成不可逆损失](#2. 摘要式压缩为什么会造成不可逆损失)
    • [3. 静态知识图也不足以担当 Agent 记忆](#3. 静态知识图也不足以担当 Agent 记忆)
  • 二、相关工作与本文定位
    • [1. 动态上下文管理](#1. 动态上下文管理)
    • [2. 结构化 Agent Memory](#2. 结构化 Agent Memory)
    • [3. 本文解决的是记忆生命周期中的哪个环节](#3. 本文解决的是记忆生命周期中的哪个环节)
  • [三、Cognitive Scaffold 方法总览](#三、Cognitive Scaffold 方法总览)
  • 四、流动工作上下文:保留当前推理所需的"热状态"
    • [1. 为什么不能把所有内容直接移出上下文](#1. 为什么不能把所有内容直接移出上下文)
    • [2. 动态密度触发](#2. 动态密度触发)
    • [3. Lazy Injection 为什么重要](#3. Lazy Injection 为什么重要)
  • [五、高保真记忆结晶:RFT 压缩器](#五、高保真记忆结晶:RFT 压缩器)
    • [1. 动机:摘要质量不能只看语义相似](#1. 动机:摘要质量不能只看语义相似)
    • [2. 复合奖励函数](#2. 复合奖励函数)
      • [2.1 格式一致性](#2.1 格式一致性)
      • [2.2 语义对齐](#2.2 语义对齐)
      • [2.3 压缩效率](#2.3 压缩效率)
    • [3. 为什么 RFT-Filtered 优于 SFT-All](#3. 为什么 RFT-Filtered 优于 SFT-All)
    • [4. Automated Prompt Optimization](#4. Automated Prompt Optimization)
  • [六、从 Event Snapshot 到事件知识图](#六、从 Event Snapshot 到事件知识图)
    • [1. 为什么快照还要结构化](#1. 为什么快照还要结构化)
    • [2. 图是动态研究笔记,而不是静态语料索引](#2. 图是动态研究笔记,而不是静态语料索引)
  • 七、思考驱动的双路径检索
    • [1. Thought-as-Query:由当前思考触发回忆](#1. Thought-as-Query:由当前思考触发回忆)
    • [2. Entity Path:找回语义相关事件](#2. Entity Path:找回语义相关事件)
    • [3. Relation Path:恢复推理骨架](#3. Relation Path:恢复推理骨架)
    • [4. Context Augmentation:让回忆自然进入下一轮思考](#4. Context Augmentation:让回忆自然进入下一轮思考)
  • 八、实验设置
    • [1. 推理与压缩模型](#1. 推理与压缩模型)
    • [2. 数据集](#2. 数据集)
    • [3. 指标](#3. 指标)
  • 九、主实验结果
    • [1. Xbench-DeepSearch](#1. Xbench-DeepSearch)
    • [2. BrowseComp-ZH](#2. BrowseComp-ZH)
    • [3. GAIA](#3. GAIA)
    • [4. 主实验能支持什么,不能支持什么](#4. 主实验能支持什么,不能支持什么)
  • 十、压缩保真、消融与统计检验
    • [1. 全量 SFT 为什么反而更差](#1. 全量 SFT 为什么反而更差)
    • [2. 移除知识图检索](#2. 移除知识图检索)
    • [3. 移除 RFT 压缩器](#3. 移除 RFT 压缩器)
    • [4. 消融仍缺什么](#4. 消融仍缺什么)
  • 十一、效率与可扩展性
    • [1. 为什么累计 token 比单次上下文更重要](#1. 为什么累计 token 比单次上下文更重要)
    • [2. 主模型 token 成本](#2. 主模型 token 成本)
    • [3. 端到端成本不能忽略图和压缩器](#3. 端到端成本不能忽略图和压缩器)
  • 十二、失败案例与反例分析
  • [十三、与 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:共享结晶记忆,隔离流动上下文](#3. Multi-Agent:共享结晶记忆,隔离流动上下文)
    • [4. 一个可落地的设计原则](#4. 一个可落地的设计原则)
  • 十五、局限性
    • [1. 压缩错误会被结构化放大](#1. 压缩错误会被结构化放大)
    • [2. "高保真"证据仍主要来自自动评估](#2. “高保真”证据仍主要来自自动评估)
    • [3. 图组件的独立价值尚未被严格隔离](#3. 图组件的独立价值尚未被严格隔离)
    • [4. 动态触发仍是长度启发式](#4. 动态触发仍是长度启发式)
    • [5. 跨领域泛化需要重新调参](#5. 跨领域泛化需要重新调参)
    • [6. 隐私、安全与多 Agent 尚未系统评测](#6. 隐私、安全与多 Agent 尚未系统评测)
    • [7. 开源可复现性信息仍不完整](#7. 开源可复现性信息仍不完整)
  • 十六、我的理解和启发
    • [1. 真正需要被压缩的不是知识,而是"可见性"](#1. 真正需要被压缩的不是知识,而是“可见性”)
    • [2. Event Snapshot 是这套系统真正的最小记忆单元](#2. Event Snapshot 是这套系统真正的最小记忆单元)
    • [3. 记忆检索应该由任务状态驱动](#3. 记忆检索应该由任务状态驱动)
    • [4. 压缩训练揭示了合成数据的质量陷阱](#4. 压缩训练揭示了合成数据的质量陷阱)
    • [5. 论文把上下文工程推进成了状态架构](#5. 论文把上下文工程推进成了状态架构)
  • 十七、总结
  • 参考资料

前言

一个 DeepResearch Agent 为了回答"某家公司过去五年的战略变化是什么",可能要连续搜索几十个页面、打开财报、核对数字、排除过期新闻,再把分散证据串起来。

最直接的做法,是把每一步思考、工具调用和网页内容全部留在上下文里。问题是,历史越完整,真正有用的信息反而越容易被噪声淹没;上下文一旦超限,系统又只能截断或摘要。前者带来"看过但找不到",后者带来"记住了结论,却丢了数字、实体和约束"。

此前的 Agent Memory 工作大致沿着几条路径缓解这个问题:A-MEM 强调记忆之间的动态组织,MAGMA 强调多图协同,CoM 关注记忆内容的组织与调用,ReMemR1 让 Agent 在写入记忆时回看历史,Mem²Evolve 进一步讨论记忆系统自身如何演化。与此同时,HiAgent、ReSum、Context Folding 和 AgentFold 更直接地处理长轨迹:把完成的局部历史压缩、折叠或分层保存。

但 DeepResearch 场景还有一个更尖锐的矛盾:压缩不是越短越好,检索也不是找到语义相似文本就够了。 一份财报中的"同比增长 7.3%"被压成"业绩增长",或者网页中的楼层、时间、型号被抹掉,后续多跳推理就可能失去唯一能区分答案的约束。

本文提出 Cognitive Scaffold(认知脚手架) 。它把 Agent 的认知状态拆成两部分:用于当前推理的 Fluid Working Context ,以及用于长期保存事件的 Knowledge Graph。当工作上下文接近饱和时,一个经过拒绝采样微调的压缩模型把历史"结晶"为高保真的 Event Snapshot;需要旧证据时,Agent 再由当前思考主动触发图检索。

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

Cognitive Scaffold 把长轨迹中的上下文压缩从"不可逆的文本摘要"改造成"工作上下文与事件知识图之间的可回访状态转移",并用面向原子事实保真的压缩训练与思考驱动的双路径检索闭合写入---回忆循环。

这个判断很重要。知识图、压缩模型、RFT、检索并不是四个平行贡献;它们分别解决"记到哪里""如何少失真地写入""何时回忆""怎样恢复关系"四个环节,共同服务于同一个状态分解。


零、论文基本信息


一、背景与问题

1. 长上下文真正的瓶颈不是容量,而是信噪比

设第 t t t 步的 Agent 上下文为 C t C_t Ct,新产生的思考、工具调用和环境观察为 Δ t \Delta_t Δt。线性 Agent 的更新方式很简单:

C t + 1 = C t ⊕ Δ t C_{t+1}=C_t\oplus\Delta_t Ct+1=Ct⊕Δt

⊕ \oplus ⊕ 表示把新内容追加到已有历史。短任务里,这种方式保留了全部信息;长任务里,它会同时积累搜索结果、重复页面、失败尝试、无关 HTML 和推理草稿。

因此,长上下文存在两类成本:

  • 认知成本:关键证据被大量相似文本包围,模型出现 lost-in-the-middle,开始依赖参数知识或表面关键词;
  • 计算成本:每轮都把越来越长的历史重新送入主推理模型,累计输入 token 近似随轨迹长度二次增长。

论文把这个矛盾称为 context-noise trade-off。增加窗口只能推迟饱和,不能保证上下文中的证据仍然纯净。

2. 摘要式压缩为什么会造成不可逆损失

ReSum 或普通 sliding-window summarization 会把旧历史替换成一段自然语言摘要。它擅长保留主题,却容易平滑掉原子约束。

例如,原始网页写道:

text 复制代码
Dongzhimen Shuanrou 位于 2F;Huoban BBQ 位于 1F;Onyasai 位于 B1。

普通摘要可能只留下"剧院内有多家餐厅"。这段话语义没有错,却已经无法回答"下楼时首先遇到哪一家"。压缩的危险不只是假事实,还包括没有说错、但删掉了决定答案的细节

3. 静态知识图也不足以担当 Agent 记忆

GraphRAG、Graphiti 等图系统能保存实体与关系,但多用于索引既有语料,是一种面向外部知识的 declarative memory。长程 Agent 还需要解决:

  1. 当前轨迹何时应当折叠?
  2. 哪一段历史值得结晶成事件?
  3. 如何保持原查询、最近交互与旧事件之间的连续性?
  4. Agent 在推理中何时主动找回旧信息?

Cognitive Scaffold 的重点不是"使用了知识图",而是为图补上了从在线轨迹写入、再回到在线推理的操作协议。


二、相关工作与本文定位

1. 动态上下文管理

ReSum 周期性重置并摘要历史;Context Folding 和 AgentFold 将完成的子轨迹折叠;HiAgent 按子目标分段,只保留活动子目标的细节。这些方法共同承认一个事实:长程任务不能永远保留平铺历史。

它们的主要边界是存储介质仍以线性文本为主。摘要之间缺少显式关系,跨事件查询需要重新扫描文本;一旦摘要阶段删除了实体或数字,后续检索无法恢复。

2. 结构化 Agent Memory

A-MEM、MAGMA、Nemori 等工作说明,Agent 记忆不应只是向量库中的独立文本块,而应拥有关系、层级或自组织结构。Cognitive Scaffold 与它们的交集是"结构化长期记忆",差异在于评测对象:本文不是长期用户对话,而是一次 DeepResearch 内部持续增长的工具轨迹。

3. 本文解决的是记忆生命周期中的哪个环节

从生命周期看,本文覆盖三个连续动作:

text 复制代码
在线交互积累
  ↓ 达到动态阈值
高保真事件结晶
  ↓ 写入图并回注锚点
思考发现信息缺口
  ↓ 实体 + 关系双路径检索
恢复旧证据并继续推理

所以它介于"上下文管理"和"Agent Memory"之间:工作上下文负责流动,事件图负责结晶,检索负责让结晶内容重新流回当前思考。


三、Cognitive Scaffold 方法总览

先看论文最关键的总览图,因为它同时画出了运行时的两个阶段,以及压缩模型的训练路径。

图源:论文 Figure 2。左侧是短期流动推理,中间是事件结晶、知识图写入和内省检索,右侧是用于训练压缩器的 RFT 对齐管线。该图支持的核心结论是:压缩与检索不是外挂模块,而是工作上下文和长期图记忆之间的循环接口。

系统包含两个模型和两种状态:

  • 主推理模型 π θ \pi_\theta πθ:负责规划、工具调用、判断信息缺口和最终回答;
  • 压缩模型 M ϕ M_\phi Mϕ:负责把选中的历史片段压成 Event Snapshot;
  • Fluid Working Context C t C_t Ct:保存系统提示、原始问题、最近轮次和必要的检索结果;
  • Knowledge Graph G t G_t Gt:持久保存事件节点、实体和关系。

运行过程可分为三个动作:

  1. 积累 : C t C_t Ct 随交互线性增长;
  2. 结晶 :达到阈值后,把旧历史压成事件快照 s k s_k sk,写入 G t G_t Gt,同时以 Memory Note 形式回注当前上下文;
  3. 回忆:主模型由当前思考产生检索意图,从图中同时恢复实体节点和关系边。

四、流动工作上下文:保留当前推理所需的"热状态"

1. 为什么不能把所有内容直接移出上下文

完全清空上下文会导致局部连贯性断裂。Agent 可能忘记刚刚调用了哪个工具、目前在验证哪个假设,也可能在折叠后重复执行相同搜索。

因此,系统没有把上下文当作一次性缓存,而是保留三类信息:

  • C h e a d C_{head} Chead:不可变的系统提示和原始用户问题 Q Q Q;
  • N O T E ( s k ) \mathrm{NOTE}(s_k) NOTE(sk):最新结晶事件的结构化记忆锚点;
  • H r e c e n t H_{recent} Hrecent:最近若干轮原始交互。

折叠后的上下文被重建为:

C t + 1 = C h e a d ⊕ N O T E ( s k ) ⊕ H r e c e n t C_{t+1}=C_{head}\oplus \mathrm{NOTE}(s_k)\oplus H_{recent} Ct+1=Chead⊕NOTE(sk)⊕Hrecent

这个式子的关键不是"少放一些 token",而是保留三种互补信号:任务目标保证不漂移,Memory Note 连接远期历史,最近轮次维持局部动作连续性。

2. 动态密度触发

系统用上下文长度判断是否触发结晶:

I t r i g g e r = I ( ∣ C t ∣ > τ ( k ) ) I_{trigger}=\mathbb{I}(|C_t|>\tau(k)) Itrigger=I(∣Ct∣>τ(k))

k k k 表示此前发生过多少次折叠, τ ( k ) \tau(k) τ(k) 不是固定值,而是按退避策略逐步增大:

τ ( k ) = min ⁡ ( τ b a s e + ⌊ k η ⌋ Δ τ , L m a x ) \tau(k)=\min\left(\tau_{base}+\left\lfloor\frac{k}{\eta}\right\rfloor\Delta\tau,\ L_{max}\right) τ(k)=min(τbase+⌊ηk⌋Δτ, Lmax)

论文设置 τ b a s e = 10 × 1024 \tau_{base}=10\times1024 τbase=10×1024 tokens, Δ τ = 3 × 1024 \Delta\tau=3\times1024 Δτ=3×1024, η = 3 \eta=3 η=3。也就是说,每三次折叠后阈值增加 3K tokens,直到模型最大窗口 L m a x L_{max} Lmax。

作者的直觉是:越靠后的推理往往依赖更长的局部链条,过于频繁地压缩会切断复杂依赖。因此早期用小窗口及时清理噪声,后期逐渐扩大"热状态"。

不过,从公式看,它测量的仍然是 token 数,而不是真正的信息密度。"Dynamic Density Triggering"这个命名比实现更强:系统并没有计算新颖度、熵或证据密度。

3. Lazy Injection 为什么重要

事件快照 s k s_k sk 同时执行两个动作:

G t + 1 = G t ∪ { v k } G_{t+1}=G_t\cup\{v_k\} Gt+1=Gt∪{vk}

一份写入图中的节点属性,用于长期读取;另一份以 Memory Note 回到当前窗口,成为新旧上下文之间的锚点。

如果只写图而不回注,主模型可能不知道刚刚形成了哪段记忆;如果只回注而不持久保存,后续再次折叠后快照仍会消失。双重用途让事件既"落盘",又保持在当前意识中。


五、高保真记忆结晶:RFT 压缩器

1. 动机:摘要质量不能只看语义相似

Event Snapshot 是后续图抽取的唯一来源。如果它漏掉数字,图就不可能恢复数字;如果它编造实体,图结构还会把错误固化为可检索关系。因此压缩模型不是普通 summarizer,而是整个记忆系统的写入门。

论文构造原始历史与候选快照对 ( H r a w , s ) (H_{raw},s) (Hraw,s),采用 Generate--Evaluate--Distill 流程:教师模型生成多个候选,奖励函数打分,只保留高分样本微调小型压缩器。

2. 复合奖励函数

候选快照的总分为:

S c o r e ( s ) = w f m t I f m t ( s ) + w s e m R s e m ( H r a w , s ) + w c o m p R c o m p ( H r a w , s ) \mathrm{Score}(s)=w_{fmt}I_{fmt}(s)+w_{sem}R_{sem}(H_{raw},s)+w_{comp}R_{comp}(H_{raw},s) Score(s)=wfmtIfmt(s)+wsemRsem(Hraw,s)+wcompRcomp(Hraw,s)

三项奖励分别对应:

2.1 格式一致性

I f m t ( s ) I_{fmt}(s) Ifmt(s) 是二值指标,检查输出是否遵守 <summary>...</summary> 等严格格式。结构稳定,后续解析和图抽取才不会因为自由文本而失败。

2.2 语义对齐

R s e m = cos ⁡ ( E ( H r a w ) , E ( s ) ) R_{sem}=\cos(E(H_{raw}),E(s)) Rsem=cos(E(Hraw),E(s))

E ( ⋅ ) E(\cdot) E(⋅) 是嵌入模型。该项衡量快照与原历史的整体语义相似度,用来抑制主题漂移。

2.3 压缩效率

R c o m p = ∣ H r a w ∣ max ⁡ ( ∣ s ∣ , 100 ) R_{comp}=\frac{|H_{raw}|}{\max(|s|,100)} Rcomp=max(∣s∣,100)∣Hraw∣

分母设置 100-token 下限,避免模型靠输出极短文本获得畸高奖励。该项鼓励短,但不会直接保证原子事实完整。

论文使用 w f m t = 0.1 w_{fmt}=0.1 wfmt=0.1、 w s e m = 10 w_{sem}=10 wsem=10、 w c o m p = 0.02 w_{comp}=0.02 wcomp=0.02。语义奖励权重远高于另外两项,体现作者把保真置于压缩率之前。

需要注意的是,公式中的"atomic constraints"并没有以独立的数字或实体覆盖率奖励直接出现;原子保真主要通过高质量样本筛选、压缩 guideline,以及最终的幻觉率和 Entity F1 评测来约束。这是论文表述与公式之间需要区分的地方。

3. 为什么 RFT-Filtered 优于 SFT-All

论文先生成 2,500 对约 20K-token 的轨迹---摘要候选,留下 2,200 对作为完整训练池,其中按复合奖励选取 Top 1,500 进行 RFT-Filtered,另留 300 对测试。

这里的 rejection sampling 不是在线强化学习,而是先拒绝低质量教师样本,再对筛选后的数据做监督微调。它解决了一个常被忽略的问题:教师生成的数据并不天然可靠,把全部候选喂给学生会放大坏摘要。

4. Automated Prompt Optimization

不同底座模型对"简洁""保留约束"等自然语言指令的响应不同。论文用黑盒搜索生成 guideline 变体,并仍以复合奖励作为目标,在留出轨迹上选择最适合当前压缩器的指令。

因此 APO 并不是在推理时持续修改 prompt,而是压缩模型部署前的选择过程。它与 RFT 的分工是:APO 找到合适的行为说明,RFT 让模型把这种行为内化。


六、从 Event Snapshot 到事件知识图

1. 为什么快照还要结构化

Event Snapshot 已经比原始轨迹短,但如果它们仍按时间排成文本列表,多跳检索依然需要线性扫描。系统因此使用 Graphiti 从 s k s_k sk 中抽取实体和关系。

图中既保存:

  • 事件节点与实体节点;
  • part_ofcontradicts 等关系边;
  • 作为中心事件节点属性的原始高保真快照 s k s_k sk。

结构负责导航,快照负责阅读。只保存三元组会损失上下文,只保存摘要又难以沿关系展开;两者结合,才同时保留骨架和细节。

2. 图是动态研究笔记,而不是静态语料索引

每次折叠都会向 G t G_t Gt 添加新事件,图随着研究过程演化。它保存的不是整个网页,而是 Agent 已经访问、比较和综合过的高价值证据。

这也意味着图具有"路径依赖":Agent 没有探索到的网页不会进入图,压缩器漏掉的事实也不会被图抽取补救。知识图提升了已获得证据的可访问性,却不能替代搜索覆盖率。


七、思考驱动的双路径检索

1. Thought-as-Query:由当前思考触发回忆

传统 RAG 通常以用户问题作为固定查询。长程研究中,同一个问题在不同阶段产生不同的信息缺口。系统将当前推理轨迹 R t R_t Rt 嵌入为内省查询:

q i n t = E m b e d ( R t ) q_{int}=\mathrm{Embed}(R_t) qint=Embed(Rt)

例如,用户问题只是"找出那家餐厅",但 Agent 推理到后期发现缺少"楼层顺序"和"与东直门的关系"。用当前思考查询,比反复用原问题更接近即时缺口。

论文称系统持续监控推理轨迹并主动触发检索;附录伪代码则表现为 Agent 显式调用 graph_search。因此工程上更准确的理解是:模型在思考中决定是否发出图检索工具调用,而不是另有一个完全独立的缺口检测器。

2. Entity Path:找回语义相关事件

实体路径对事件节点做稠密语义检索,并以 BM25 稀疏匹配补充精确词项:

s i m ( q i n t , E m b e d ( v ) ) > δ \mathrm{sim}(q_{int},\mathrm{Embed}(v))>\delta sim(qint,Embed(v))>δ

向量相似度适合召回同义表达,BM25 适合保留型号、人名、错误码等精确字符串。二者组合能降低纯向量检索的语义漂移。

3. Relation Path:恢复推理骨架

仅找回相似节点可能得到"餐厅""剧院"等孤立事实。关系路径沿已命中实体的邻接边展开,再用图距离最小化做拓扑重排,优先返回结构上接近的事实。

其价值体现在多跳约束:实体路径回答"有哪些候选",关系路径回答"候选之间如何连接"。

4. Context Augmentation:让回忆自然进入下一轮思考

检索得到的节点与边被封装为 O B S r e t \mathrm{OBS}_{ret} OBSret,像工具返回一样追加到上下文:

C t + 1 = C t ⊕ Δ t ⊕ O B S r e t C_{t+1}=C_t\oplus\Delta_t\oplus\mathrm{OBS}_{ret} Ct+1=Ct⊕Δt⊕OBSret

最终循环是:

text 复制代码
当前思考发现缺口
  ↓
思考形成查询
  ↓
实体召回 + 关系展开
  ↓
子图作为 observation 注入
  ↓
下一轮思考利用旧证据

论文称检索异步进行、不打断推理流,但没有给出并发调度与延迟分解。可以确认的是注入发生在 inter-turn,而不是把检索内容强行插进正在生成的一条 token 流。


八、实验设置

1. 推理与压缩模型

主推理模型使用 Tongyi-DeepResearch-30B-A3B,部署在 8 张 NVIDIA A100 40GB 上;采样参数为 temperature 0.5、top-p 0.9,每次最多生成 8192 tokens,并使用 presence penalty 1.1。

压缩器使用 Qwen3-8B,LoRA rank 64、 α = 16 \alpha=16 α=16,训练使用 4 张 A100 40GB。知识图由 Neo4j 管理,图实例化使用 Graphiti。

2. 数据集

  • Xbench-DeepSearch:需要长轨迹搜索、综合和工具使用;
  • BrowseComp-ZH:中文真实网页浏览,HTML 噪声大,尤其考验目标保持与细粒度定位;
  • GAIA text-only:多步推理和短事实回答,排除多模态样本。

3. 指标

每个实例独立运行三次:

  • Avg@3:三次运行成功率的平均值;
  • Pass@3:只要三次中至少一次成功,该实例就计为成功。

Pass@3 同时混合了能力与采样多样性,因此不能直接当作单次可靠性。论文同时报告 Avg@3,有助于避免只看"碰巧答对一次"。

压缩质量用 claim-level Hallucination Rate 和 Entity F1 衡量,二者由 LLM-as-a-judge 自动计算;留出测试集共 300 对。


九、主实验结果

先看主表,因为它回答最直接的问题:在相同的长程任务上,这套记忆循环是否真的转化成任务成功率。

表源:论文 Table 1。该表比较 Xbench-DeepSearch、BrowseComp-ZH 与 GAIA 上的 Avg@3/Pass@3;Availability 表示系统是否公开。加粗标准是"公开系统中的最佳结果",不等于对所有闭源系统都最优。

1. Xbench-DeepSearch

Cognitive Scaffold 达到 74.7% Avg@3 和 87.0% Pass@3。相对于同一主干来源的 Tongyi DeepResearch(73.0/86.0),绝对提升分别是 1.7 和 1.0 个百分点。

提升并不巨大,但这个对比更干净:它说明状态分解带来的收益不是简单换了更强的推理模型。与此同时,表中的很多 ReAct baseline 只报告单项结果,不能与 Pass@3 完全等价比较。

2. BrowseComp-ZH

本文达到 48.5% Avg@3 和 65.9% Pass@3。与 Tongyi DeepResearch 的 46.7/63.7 相比提升 1.8/2.2 点;与 ReSumTool-30B 的 42.6 Pass@3 相比提升 23.3 点。

作者把这一大差距归因于高噪声网页环境对原子定位信息的需求。这个解释与方法动机一致,但要注意 ReSum 表中没有 Avg@3,且不同系统的具体搜索工具与执行设置未在主表中完全展开,23.3 点不能全部归因于"图比摘要好"。

另一个值得诚实指出的结果是:OpenAI-o3 的 Avg@3 为 58.1,高于本文 48.5。论文声称"公开方法中最佳"是成立的,但并非击败表中所有闭源强模型。

3. GAIA

本文达到 72.8% Avg@3 和 88.3% Pass@3,高于 Tongyi DeepResearch 的 70.9/85.5,也高于表中 OpenAI DeepResearch 的 67.4 Avg@3。

GAIA text-only 只有 103 个问题,样本更小;方向一致,但统计把握弱于 BrowseComp-ZH。这一点也在消融显著性中出现。

4. 主实验能支持什么,不能支持什么

三组数据都提升,说明该系统不是只对某一种语言或网页结构有效;其中同主干对比支持"记忆架构有增益"。但 baseline 背后的模型、工具、上下文策略并非全部等价,表格更适合证明方法具有竞争力,而不是精确拆出每个组件的因果贡献。


十、压缩保真、消融与统计检验

这一页同时给出 Table 2 和 Table 3,前者检验"写入是否可靠",后者检验两个核心组件是否真的影响下游任务。

表源:论文 Table 2 与 Table 3。Table 2 比较原始压缩器、全量 SFT 和高奖励样本 RFT;Table 3 分别移除知识图检索与 RFT 压缩器。它们共同支持"结构可回访"和"写入保真"缺一不可。

1. 全量 SFT 为什么反而更差

Qwen3-8B 原始模型的幻觉率为 7.6%,Entity F1 为 75.0;用全部 2,200 对训练后,幻觉率升至 8.6%,Entity F1 降到 63.9。RFT-Filtered 则把幻觉率降到 5.3%,F1 提到 77.5。

GLM-4-9B 上也出现相同方向:原始 9.4/74.5,全量 SFT 10.6/65.8,筛选后 6.9/76.3。

这组结果揭示了论文最有价值的训练经验:合成数据的数量不能替代写入质量。 全量 SFT 学到的可能不仅是压缩格式,也包括教师候选中的遗漏和臆断;拒绝低分样本比盲目扩大训练集更重要。

不过,Hallucination 与 Entity F1 都由 LLM judge 生成,论文没有提供大规模人工一致性验证,因此 5.3% 应理解为自动评估口径下的结果,而不是绝对事实错误率。

2. 移除知识图检索

BrowseComp-ZH 的 Avg@3 从 48.5 降到 47.2,Pass@3 从 65.9 降到 64.2;GAIA 从 72.8/88.3 降到 72.3/87.2。

在 BrowseComp-ZH 的 288 个样本上,Avg@3 差异经 Holm 校正后 p = 0.0025 p=0.0025 p=0.0025。这说明图检索的贡献虽只有 1.28 个百分点,但重复运行后的方向稳定。

3. 移除 RFT 压缩器

将 RFT 压缩器替换为 SFT-All,BrowseComp-ZH 变为 47.9/65.3,GAIA 变为 71.6/86.4。BrowseComp-ZH 上校正后 p = 0.028 p=0.028 p=0.028;GAIA 校正前 p = 0.045 p=0.045 p=0.045,但样本量较小,校正后不再足够强。

值得注意的是,不同数据集对组件敏感性不同:BrowseComp-ZH 更依赖图回访,GAIA 的 RFT 移除下降更大。这可能说明网页导航更需要恢复关系,而事实型问答更容易受到压缩遗漏影响。这是基于表格的解释,不是论文直接验证的机制分解。

4. 消融仍缺什么

论文没有单独移除以下部分:

  • BM25 与向量检索中的任一路径;
  • Relation Path 或拓扑重排;
  • Lazy Injection;
  • 动态阈值退避;
  • APO;
  • "图结构"与"同样数量的文本快照检索"的等成本对比。

因此 Table 3 证明了"大组件有效",尚不能说明双路径、动态阈值和 APO 各自贡献多少。


十一、效率与可扩展性

1. 为什么累计 token 比单次上下文更重要

对 T T T 步任务,主模型累计输入成本定义为:

L m a i n = ∑ t = 1 T ∣ C t ∣ L_{main}=\sum_{t=1}^{T}|C_t| Lmain=t=1∑T∣Ct∣

即使每轮都不超过窗口上限,只要历史不断增长,前面的内容会被反复计费。折叠的价值不只是"避免爆窗",还在于阻止旧 token 每轮重复进入昂贵的主模型。

2. 主模型 token 成本

BrowseComp-ZH 上,无折叠 baseline 累计消耗 1.08 × 10 9 1.08\times10^9 1.08×109 tokens,Cognitive Scaffold 为 1.20 × 10 8 1.20\times10^8 1.20×108,约降低 9 倍。

与 ReSum 维持的 20K--35K 活动轨迹相比,本文在 GAIA 和 BrowseComp-ZH 的平均活动上下文分别为 12.7K 和 13.1K,静态长度下降超过 50%。

3. 端到端成本不能忽略图和压缩器

作者额外把 reasoner、compressor 与 KG construction 的 token 合并。即便计入 8B 压缩器和轻量 API 图构建,三个基准上仍至少比无折叠 baseline 低 7.6 倍。

时延方面,图操作与压缩让每题端到端完成时间增加约 7%--8%。因此它用少量 wall-clock 延迟换取显著的主模型 token 节省。

这里仍有两个边界:论文没有给出美元成本和 Neo4j 存储增长曲线;"轻量 API"成本也可能随供应商与部署方式变化。token 降低不等于总基础设施成本按同样比例下降。


十二、失败案例与反例分析

论文提供的"蜂巢剧场"案例很有价值,因为它不是只展示最终答案,而是解释线性上下文为何在细粒度约束上失败。

任务需要找到一家餐厅,约束包括:靠近蜂巢剧场、下楼时遇到、与东直门地区相关。网页同时出现 B1 的 Onyasai、1F 的 Huoban BBQ 和 2F 的 Dongzhimen Shuanrou。

线性 baseline A 用"下楼通常到一楼"的常识捷径选择 Huoban BBQ;baseline B 用关键词把"downstairs"直接匹配到 B1,选择 Onyasai。二者都忽略了"与当地相关"这一语义过滤条件。

表源:论文 Table 5 附近的案例页。论文把剧院楼层布局聚合进事件节点,并用独立关系事实连接"Dongzhimen Shuanrou"与东直门区域。这个案例支持图结构能同时保留空间拓扑与语义约束,而不只是召回相似餐厅名。

Cognitive Scaffold 通过两类结晶信息得到正确答案:

  • Node 3 聚合楼层关系:2F → 1F → B1;
  • Node 5 与 Fact 7 显式保留"Dongzhimen Shuanrou 与东直门地区相关"。

这个案例也暴露边界。最终压缩摘要使用了 "speculated to be the target" 的措辞,说明原证据并非完全消除歧义;结构化记忆帮助模型组合约束,却没有把不确定推断变成确定事实。工程实现应为事件节点保留来源 URL、证据片段和置信度,否则推断性边可能在后续被当作事实。


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

方法 主要记忆对象 核心变化 本文与它的关键区别
A-MEM 长期经验片段 记忆动态组织与关联 Cognitive Scaffold 更关注单次长研究轨迹中的上下文折叠与回访
MAGMA 多种关系视角 用多图表达记忆的不同关系 本文采用事件图,并把重点放在"流动上下文 → 图"的高保真写入协议
CoM Agent 记忆内容及其调用 组织可用记忆以支持回答 本文明确建模运行时状态迁移与累计 token 成本
ReMemR1 在线阅读/写入过程 写入时主动回看旧记忆,减少不可逆遗漏 本文在推理时用 thought-driven retrieval 回访,并把历史结晶为图节点
Mem²Evolve 记忆系统的演化 让记忆管理策略随经验发展 本文阈值会退避,但图模式、奖励权重和检索协议基本固定
HiAgent 长任务子目标历史 按子目标维护层级工作记忆 本文不依赖显式子目标分段,而按上下文阈值生成事件快照
Cognitive Scaffold DeepResearch 工具轨迹 工作上下文与事件图之间的可回访状态转移 核心优势是写入保真、结构检索和有界活动上下文形成闭环

这张比较表最值得关注的不是"谁用了图",而是谁改变了记忆生命周期的哪个接口。Cognitive Scaffold 的独特位置是把 context folding 纳入记忆写入,再让当前思考成为取回查询。


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

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

1. Coding Agent:把事件快照设计成可执行的变更记录

Coding Agent 的原子信息不是普通实体,而是:

  • 文件路径与行号;
  • commit、测试命令和退出码;
  • 报错堆栈与触发条件;
  • 已尝试方案及失败原因;
  • 用户明确禁止修改的范围。

压缩奖励不应只看嵌入相似度,还应加入 path/commit/error-code 的精确覆盖率。图边可以表达 introduced_byfails_testdepends_onsupersedes。这样在后续修复另一个模块时,Agent 能沿依赖边找回旧决策,而不是靠模糊语义搜索聊天摘要。

2. Tool Agent:保留可复现性而不是只保留结果

工具调用快照至少应保存:工具名、规范化参数、关键输出、时间、权限状态和副作用。如果只记"查询成功",后续无法判断数据来自哪个过滤条件。

可以把 Lazy Injection 用在长工作流 checkpoint:折叠后回注"当前目标、最近一次成功工具调用、待完成动作",详细工具日志则留在事件图中按需检索。

3. Multi-Agent:共享结晶记忆,隔离流动上下文

每个子 Agent 保持自己的 Fluid Context,避免把所有对话广播给全体;完成子任务后只把高保真 Event Snapshot 提交到共享图。协调 Agent 通过关系路径恢复"谁验证了什么、证据是否冲突、哪些结论仍待确认"。

但多 Agent 同时写图会引入论文尚未解决的问题:实体合并冲突、权限边界、版本一致性和错误传播。共享图需要 provenance 与并发控制,不能只套用单 Agent 方案。

4. 一个可落地的设计原则

把每次折叠视为一次"记忆事务":

text 复制代码
选择待折叠历史
  ↓
抽取事实、约束、决策与来源
  ↓
执行原子字段校验
  ↓
写入事件图并保留原始证据指针
  ↓
生成面向当前任务的短 Memory Note
  ↓
允许后续按实体与关系回访

相比只追求摘要短,这种设计更接近可靠的软件状态管理。


十五、局限性

1. 压缩错误会被结构化放大

压缩器遗漏或编造的内容会进入图抽取,错误关系随后可能被多次检索。论文也承认系统依赖 LLM extraction fidelity,需要更强审计。当前方法没有给出节点级回滚、冲突消解或基于原网页的自动追溯验证。

2. "高保真"证据仍主要来自自动评估

Hallucination Rate 和 Entity F1 使用 LLM judge;语义奖励使用 embedding cosine。它们不能完整衡量数字单位、否定关系、时间范围和因果方向。300 对测试集也不足以覆盖开放网页中的全部错误类型。

3. 图组件的独立价值尚未被严格隔离

论文比较了 w/o KG retrieval,却没有与"相同 Event Snapshot + 向量库检索"做等预算比较。因此提升可能同时来自更好的事件摘要、混合搜索和关系展开,不能完全归结为知识图这种存储形式。

4. 动态触发仍是长度启发式

阈值随折叠次数增加,但没有真正识别事件边界或信息密度。它可能在一个尚未结束的复杂验证链中间折叠,也可能让低价值重复内容占满窗口。未来可以结合子目标完成度、信息增益和工具状态触发。

5. 跨领域泛化需要重新调参

作者明确指出,法律、医疗、技术或代码密集语料可能需要重新设计 guideline、奖励权重和格式约束。当前结论主要来自 DeepResearch 类任务,不能直接外推到长期人格记忆或高风险决策。

6. 隐私、安全与多 Agent 尚未系统评测

论文没有系统研究隐私过滤、安全感知记忆、人类反馈和多 Agent 扩展。事件图是持久层,敏感信息的删除、访问控制和"被遗忘权"会比普通上下文更复杂。

7. 开源可复现性信息仍不完整

论文声明开源代码与轨迹,但正式版本没有提供可核验仓库链接。虽然附录给出硬件、LoRA 和 prompt 模板,完整复现仍需要具体代码、工具环境、图构建 API 与评测脚本。


十六、我的理解和启发

1. 真正需要被压缩的不是知识,而是"可见性"

传统摘要把信息本身变短;Cognitive Scaffold 更接近把大多数旧信息移出主模型的持续可见区,同时保留再次访问的路径。这个区别类似操作系统中的内存分页:页不在工作集里,不等于数据被删除。

2. Event Snapshot 是这套系统真正的最小记忆单元

知识图只是索引结构,Fluid Context 只是运行缓存。决定系统上限的,是 Event Snapshot 是否同时满足:可压缩、可解析、可追溯、可重新注入。

如果要扩展本文,我会优先为快照加入四个字段:原始证据指针、事实与推断标签、时间有效范围、置信度。这样图中的边不只"能找到",还可以被审计和更新。

3. 记忆检索应该由任务状态驱动

用当前思考而不是原始用户问题检索,是本文非常实用的设计。用户问题描述最终目标,当前思考描述眼前缺口。Agent Memory 的查询生成器应该读取"我现在为什么卡住",而不只是"用户最初问了什么"。

4. 压缩训练揭示了合成数据的质量陷阱

SFT-All 在两个底座上都显著恶化 Entity F1,说明"教师数据 + 大规模 SFT"并不天然可靠。对于记忆写入模型,错误会跨时间累积,训练数据筛选甚至比下游生成模型更重要。

5. 论文把上下文工程推进成了状态架构

很多 context engineering 方案仍停留在"保留哪几条消息"。本文更有价值的视角是:Agent 同时拥有热状态和持久状态,两者通过明确协议交换信息。未来的 Agent 框架可能需要像数据库或操作系统一样,定义写入、提交、索引、回滚和取回,而不是只提供一个 messages 数组。


十七、总结

Cognitive Scaffold 面向长程 DeepResearch 的 context-noise trade-off,把 Agent 状态拆为流动工作上下文与持久事件知识图。旧历史达到阈值后,由 RFT-Filtered 压缩器结晶成 Event Snapshot;快照既回注当前上下文保持连续性,又进入图中长期保存;当前思考出现信息缺口时,再通过实体召回和关系展开恢复旧证据。

实验显示,本文在 Xbench-DeepSearch、BrowseComp-ZH 和 GAIA 上分别达到 74.7%、48.5%、72.8% Avg@3,并把 BrowseComp-ZH 的主模型累计输入 token 从 1.08 × 10 9 1.08\times10^9 1.08×109 降到 1.20 × 10 8 1.20\times10^8 1.20×108。更值得关注的是,RFT-Filtered 在两个压缩底座上都优于全量 SFT,说明长程记忆系统的关键不只是"保存多少",而是"写入时是否忠实"。

一句话总结:

本文将长轨迹管理从一次性的摘要删减,提升为可写入、可结构化、可主动回访的认知状态循环。


参考资料

  1. Cognitive Scaffold: From Fluid Context to Crystallized Memory for Long-Horizon DeepResearch Agents
  2. 论文正式 PDF
  3. HiAgent: Hierarchical Working Memory Management for Solving Long-Horizon Agent Tasks with Large Language Model
  4. Lost in the Middle: How Language Models Use Long Contexts
  5. From Local to Global: A Graph RAG Approach to Query-Focused Summarization
相关推荐
薛定e的猫咪16 分钟前
【大模型量化】使用 llama.cpp 完成量化、本地推理与服务化部署
人工智能·深度学习·算法·llama
xiaohaiAIgeo21 分钟前
【2026年】实验室气路泄漏监测与自动切断
人工智能·科普知识
薛定e的猫咪21 分钟前
【源码解读版】ContraBAR:用 CPC 对比学习替代变分推断做贝叶斯元 RL
人工智能·深度学习·学习·算法·机器学习
白色机械键盘23 分钟前
《垂直领域大模型落地“实践指南“:选型、微调与评估》—— 基于 LLaMA-Factory + Easy-Dataset 的全链路实战
人工智能
RisunJan27 分钟前
鸿蒙(HarmonyOS NEXT)开发小白入门学习计划表
学习·华为·harmonyos
PM老周28 分钟前
2026年 AI 研发管理工具怎么选?需求、计划、风险与知识四项能力
人工智能·项目管理·研发管理
_xaboy30 分钟前
开源表单设计器 FcDesigner 保存表单教程:toJson parseJson 回显
低代码·开源·vue·表单·fcdesigner
m0_5474866631 分钟前
《深度学习技术基础》全套PPT课件2026
人工智能·深度学习·powerpoint
征尘bjajmd35 分钟前
黑马AI大模型机器学习课程笔记(个人记录、仅供参考)
人工智能·笔记·机器学习