丢弃账本与反事实重放:为深搜 Agent 的写时不可逆摘要补上延迟信用分配
针对角色解耦深搜 Agent 中有损摘要把丢弃的收益记在当期、成本延迟到期末才显现的记账错位,提出关系级丢弃账本、离提示原始观测缓冲与恢复式反事实重放,为无法推迟的写时策展补上可计量的延迟信用
背景与动机
长程深搜 Agent 的主流病灶已经从「检索不到」换成「装不下」。ReAct 式单上下文流水线在 BrowseComp 上有 59% 的轨迹在上下文耗尽前没能给出答案,平均 12 轮以上、15 次以上搜索调用。IterSynth(arXiv:2609.29444,浙江大学 + 腾讯,12 位作者)用一套角色解耦的写时压缩把这组数字压到 7–8 轮、8–10 次调用、耗尽率低于 5%,Qwen3-8B 上五基准平均 50.7。
平均值掩盖了一个方向明确的缺口。同一张 ≤8B 组内表里,IterSynth-8B 在 GAIA 上得 55.3,最强同规模基线 MiroThinker-v1.0-8B 得 66.4,落后 11.1 分;BrowseComp 上也低 0.2 分。它在 BrowseComp-ZH 上领先 15.2 分、Xbench-2510 上领先 12.0 分,把平均拉了上去。
GAIA 恰好是论文附录 F.4 亲手点名的失败模式所在的基准。F.4 把残差错误分成两类,第一类标题就是 Summary information loss(GAIA),描述为:Synthesizer 的全局摘要只记下两个实体各自的属性,不记连接两者的关系;等到 Planner 依据这份摘要收口,缺掉的正是那条连接,而所有必要事实在轨迹前段已经全部检索到过。
这句话把问题定位到了一个具体动作上:每轮 Synthesizer 把环境返回的原始观测 压进 ,轨迹历史在每一步被显式截断,被写丢的东西没有第二条通路回到状态里。这是标准的写时策展。
写时策展的代价并不新鲜。JitMem(arXiv:2609.27334)把它的结构讲得最清楚:系统在不知道未来查询时就决定记住什么,不可逆地丢弃信息,而一次存储决策的价值要等到相关查询出现才显现,构成延迟信用分配问题。JitMem 的解法是保留原始轨迹、把策展推迟到读时,让策展产物在同一任务上被立即消费,从而拿到即时信用。
IterSynth 无法执行这套解法。它留不出「读时」这个时点:下一轮的信息需求不是外部送来的新任务,而是由消费摘要的同一个策略内生生成的。查询已知的那一刻就是写入完成的那一刻,两者之间没有可以推迟的间隙。它只能带着写时策展往前跑,而写时策展的账在现有配方里从未被记过。
账记在哪儿、漏了什么,可以从三个已经存在的仪器上逐条看出来。
第一个是轮级 rubric。它由 20 组正负对比轨迹蒸馏、经 Claude-4.6-Sonnet 归纳合并成每角色不超过 5 条的冻结判据,训练时由 Gemini-2.5-flash-lite 在每一轮打分两次。论文说明 synthesis 侧判据时举的例子是「evidence integration 的忠实度」与「off-topic 信息的抑制」。后者给「丢弃」发正分,而这次打分发生在第 轮,需求出现在第 轮。收益即时入账,成本延迟不入账,每一次更新都受到偏向丢弃的激励。论文解释 掉到 49.0 时用的说法——turn-level 信号压过终端奖励,策略偏向 locally rewarded、rubric-pleasing 的行为而牺牲最终完成度——正是丢弃偏向被放大后的症状; 的 50.7 只是把偏向压到一个还撑得住的幅度。
第二个是终端奖励。它稀疏,还和 Planner 的查询决策混在一起:一条因丢弃而失败的轨迹,在终端看来与一条因问错问题而失败的轨迹没有区别。RDPO 按角色分组的优势解决了 Planner 与 Synthesizer 各该拿多少,解决不了「这次失败是不是第 3 轮那次丢弃造成的」。
第三个是 SFT 的轨迹门控。冷启动从 10K 条轨迹展开出约 87.4K 条角色条件样本,过滤管线最后一道是 outcome correctness gating,只保留终端答案可验证正确的轨迹。一条在第 3 轮丢掉关键关系、第 7 轮靠重新检索补回、最终答对的轨迹会完整通过这道门,它第 3 轮的 Synthesizer 输出以正样本身份进入训练集。终端正确性对「丢弃」这个动作没有分辨力,一次有害的丢弃被正强化。
三个仪器在丢弃这件事上都是瞎的,写时压缩又无处推迟。三处缺口指向同一个未记账的单位:一次更新里被写丢的证据项,以及它后来本该值多少。
核心思路
提出 RELIC(Retention Ledger with Interventional Counterfactuals),把写时压缩中的「丢弃」从一个不可观测的副产品改造成可计量、可归因、可训练的对象。做法是把延迟成本折现到写入时刻——推迟不了策展,就把未来的代价提前搬到第 轮的账上。
五个组件。
一是关系级丢弃账本。账本的原子单位不是句子而是关系三元组,因为 F.4 丢的是关系不是事实:两个实体和各自属性都在,连接两者的边没了。把 Synthesizer 的自由改写拆成对每个进入 的证据项的操作记录,命运取保留、丢弃、改写保留三值。为免裁判,用确定性对齐实现:把 切成证据项,逐项判断它在 中的留存状态;可识别性判据是匹配器退化为常数时报 NA,不得填 0。
二是离提示的原始观测缓冲。 在 rollout 时存在,被截断的是上下文,不是磁盘。把它落到提示外的存储里,零额外推理成本、零额外模型调用。这一步移植自 JitMem 保留原始轨迹的做法,也是整套方案里唯一能搬过来的那一半。
三是恢复式反事实重放。对失败轨迹,从第 轮重放,注入 ( 为第 轮被丢弃项的集合),固定同一 seed 与同一检索快照,看终端是否翻转,得到每个丢弃项的反事实价值 。RDPO 的采样结构可以直接复用做配对比较,不必另采基线。
📌 两组采样数不要混用:论文里出现的是两个独立的数——RL 训练时每 query 的组大小为 8(group size per question = 8);而 RL 训练集是先做 5 条独立 rollout,只保留”5 次中恰好对 1–2 次”的 query筛出来的。前者决定组内方差结构(配对比较可用),后者决定样本框的难度分布。重放时 的配对基线应采自同一 query 的 8 条组,而”失败轨迹”这个样本框本身已经是 5 选 1–2 过滤后的结果——它偏向中等难度,极端难与极端易的 query 都不在框内,这会限制 的外推范围。
四是延迟信用项。RL 侧给 Synthesizer 的复合奖励加一项 ,与 rubric 里那条给丢弃发正分的判据落在同一本账的两侧。 时 RELIC 严格退化为 RDPO。
五是 SFT 双门。把 outcome correctness gating 升级为终端正确且不含 的丢弃项,把高代价丢弃的样本从 87.4K 里剔除或降权,即使那条轨迹终端答对。这是纯数据工程动作,不增加训练成本。
与 JitMem 的关键区别在时点结构,不在效果。JitMem 靠「等到查询已知再策展」绕开延迟信用;RELIC 面对查询内生的序列设定,推迟没有落点,改用事后重放折现。与 ReSum(arXiv:2509.13313)和 IterResearch(arXiv:2511.07327)的区别在对象:两者优化的是压缩后的摘要有多好,不区分少掉的那一项是噪声还是承重件。与 MemAgent(arXiv:2507.02259)的区别在训练信号:MemAgent 用 overwrite 策略更新记忆并端到端 RL,在以保留为主导目标的 RULER 上做到 512K 95%+,而 IterSynth 的摘要身兼三职——保留、consolidation、支撑规划——保留只是其中之一。
退化点写清楚: 且账本仅观测不干预时,RELIC 与 IterSynth-RDPO 在相同 seed 下应给出一致的分数,这一条也充当复现性自检。
技术路线
第 1 步 · 账本构建与对齐器可识别性审计。 在 IterSynth 的 rollout 上挂旁路记录器,不改提示、不改策略,只把每轮 、、 落盘。对齐器先做句子级切分,再做关系三元组抽取,最后判定留存。先跑零干预对照:把对齐器换成「全部判为保留」的常数基线,若它与真实对齐器在下游 分布上不可区分,则账本不可识别,整条路线在此停下并如实报告。
第 2 步 · 反事实重放协议。 以失败轨迹为样本框,按轮次均匀抽样注入点,每点重放一次,记录终端是否翻转与翻转后的分差。重放固定三件事:同一 seed、同一检索快照(把搜索引擎返回缓存下来)、注入点之前的同一 Planner 决策序列。主要挑战是注入后轨迹会偏离原轨迹, 测到的是「从该点起重跑的期望差」而非「原轨迹的反事实差」,需要多 seed 平均压方差;F.3 给出平均 7–8 轮,注入点落在 3–5 轮,单条重放成本约为原 rollout 的一半。
第 3 步 · 丢弃预览打分器。 用第 2 步标注的 数据训练一个轻量打分头,或退一步用离线分层查表(按证据项类型、轮次位置、与问题的词汇重叠度分层取均值)。挑战是标注只覆盖失败轨迹,成功轨迹里的丢弃从未被重放,构成选择性标注偏差;处置办法是对成功轨迹补做对称的「强制丢弃」干预,把保留项强行删掉再重放,看分数是否下跌。两类干预合起来才是完整的 分布。
第 4 步 · 两处接入。 SFT 侧按第五组件重建样本集,先用 网格跑冷启动,只测 GAIA 与 Xbench-2505 两档以省算力。RL 侧把延迟项接进 RDPO 的复合奖励, 从 0 起扫, 另在 上重扫一遍。训练配置沿用原论文:上下文 32,768、训练 30 轮上限、评测 50 轮上限、KL 系数 0.001、熵系数 0.0、组大小 8。
第 5 步 · 四臂设计与预注册判据。 A 臂为原样 IterSynth-RDPO;B 臂加账本但只观测不干预;C 臂在 B 之上加 SFT 双门;D 臂在 C 之上加 RL 延迟项。骨干统一 Qwen3-8B,五基准全跑。
四条可证伪预测。前三条并列,第四条单列。
- P1 GAIA 上被丢弃项的平均 显著高于 Xbench-2505(同组内配对比较)。这条不成立,F.4 与 −11.1 缺口之间的因果联系即被切断。
- P2 C 臂相对 A 臂的涨幅在 GAIA 上高于五基准平均涨幅。RELIC 的主战场是 GAIA;若涨幅平均分布,说明方案只在做通用数据清洗。
- P3 与该轮 rubric 中抑制类判据的得分正相关。若相关系数接近 0 或为负,「rubric 奖励了有害丢弃」不成立,延迟项要改成独立项而非对冲项。
P4 判据落在超参上:加入延迟项之后,最优 应从 0.5 下降。若 不变或上升,延迟项与 rubric 便不在同一轴,二者需并联而非串联。
⚠️ 网格必须加密:论文只在 三个点上扫过,得到的倒 U 形峰值在 0.5。 若只从 0.5 移到 0.4,现有网格分辨不出来,P4 会得到一个假的”不变”结论。第 4 步的 重扫至少要覆盖 0.3 / 0.4 / 0.5 / 0.6 / 0.7 五点;且 与 存在交互(延迟项分担了一部分原本由 rubric 承担的信号),要做 的二维扫描,不能固定一个扫另一个。
预期成果
定量目标分三档。第一档是诊断产出:首个可复现的写时压缩丢弃率剖面,含按基准、按轮次位置、按证据项类型的三维分布,配一个带 标注的轨迹数据集。第二档是门控收益:C 臂相对 A 臂在 GAIA 上把 −11.1 的缺口缩小三分之一,约 +3.7 分,SFT 样本量从 87.4K 下降且降幅可公开。第三档是端到端收益:D 臂五基准平均在 50.7 上再进 2 到 4 分,BrowseComp 由 −0.2 转正。
定性影响两条。其一,把「摘要质量」这个笼统目标拆成保留率与 consolidation 质量两个正交轴,前者从此有仪器可用;任何写时压缩范式——ReSum、AgentFold、IterResearch、MemAgent 的 overwrite 记忆——都能挂上这套账本做横向审计。其二,给出一条在延迟信用无法规避时仍可行的测量路径:不推迟策展,改用事后重放折现。这条对一切「不可逆中间状态 + 终端奖励」的流水线通用,代码 Agent 的补丁状态与具身 Agent 的信念状态同样适用。
风险写明。反事实重放的每次注入都会让轨迹分叉, 是带方差的估计量而非真值,拿它做奖励会引入新偏差。D 臂须报告「用 点估计」与「只用 符号」两种接入方式的对照,后者更粗糙,不放大估计误差。
局限性与失效模式
账本只覆盖一类缺陷。F.4 列出的残差错误有两类:GAIA 上是关系丢失(Summary information loss),BrowseComp 上是证据合并错误(Incorrect evidence consolidation)。RELIC 的账本原子单位是「证据项有没有被写丢」,对第一类直接命中;第二类里证据进到了摘要里、只是被合并错了,对齐器会把它判成「改写保留」, 测不到它。BrowseComp 因此不是 RELIC 的主战场,把它并入五基准平均会稀释效应;建议把 GAIA 单列为主终点、BrowseComp 只作旁证。
的选择性标注偏差无法靠对称干预完全抵消。对成功轨迹做「强制丢弃」补做干预是对的,但强制丢弃的分布与自发丢弃的分布不同——自发丢弃集中在模型认为冗余的证据上,强制丢弃是均匀或随机的。两者合起来得到的仍是混合分布,用它训练的预览打分器会在自发丢弃区域欠拟合。缓解办法是按「证据项在同期 rollout 中的自发丢弃频率」分层抽样强制丢弃项,而不是均匀抽。
延迟项与 rubric 的关系有两种可能,P4 只能区分一端。若 rubric 的抑制类判据确实奖励了有害丢弃,加延迟项后 应下降;但还有第二种可能——抑制类判据本身无害,有害丢弃来自 Synthesizer 的容量限制而非奖励偏向,此时加延迟项不改变 。P4 阴性不能区分这两种情况,须配合 P3 的相关系数一起判:P3 近零且 P4 阴性,指向后者,此时延迟项应与 rubric 并联而非串联。
账本与 SFT 样本集的阶段要对齐。87.4K 角色条件样本来自冷启动 SFT 阶段的轨迹展开(10K 条轨迹 × 约 4.37 轮 × 2 角色),而 是在 RL 阶段的 rollout 上估的。两个阶段的策略不同、 也不同(训练期 30、评测期 50)。用 RL 期估出的 去筛 SFT 期样本,是一次跨分布迁移,需要在 SFT 展开阶段单独挂一次记录器重估,或至少在两者各抽一批做一致性检验。
反事实重放的注入会改变后续检索。固定检索快照只解决了「搜索引擎返回不变」,解决不了「注入后 Planner 会提出不同的查询」。 因此测的是「从注入点起重跑的期望差」,比原轨迹的严格反事实差更宽;注入点越靠前这个偏差越大,而丢到关键关系的那一轮往往靠前。处置是把注入点限制在前 5 轮内并报告分轮次的偏差估计,而不是把各轮 直接相加。
相关工作
- IterSynth(arXiv:2609.29444)— 角色解耦 Planner/Synthesizer 加轮级 rubric 的 RDPO,本文直接审计与改造的对象;附录 F.4 的 Summary information loss 与 GAIA 上 −11.1 的缺口构成主要证据。
- JitMem(arXiv:2609.27334)— 保留原始轨迹、把策展推迟到读时并用同任务即时信用训练策展器;其疗法在序列设定下无处落点,是本文提出折现方案的直接动因。
- ReSum(arXiv:2509.13313)— 用外部工具周期性压缩交互历史的即插即用范式,ReSum-GRPO 以 advantage broadcasting 做跨段信用分配;处理的是摘要本身的质量,不区分被压掉的内容。
- IterResearch(arXiv:2511.07327)— 以演化报告为记忆、周期性合成洞见的 workspace 重建范式,交互规模可扩展到 2048 次;与 IterSynth 同属写时压缩族,在 F.3 表中作为直接对照出现。
- MemAgent(arXiv:2507.02259)— 分段读取并以 overwrite 策略更新记忆,扩展 DAPO 做多轮独立上下文训练;证明不可逆 overwrite 在保留主导的任务上可被端到端训好,为本文界定「IterSynth 的摘要职责不止保留」提供对照。