驱逐密度感知的 Agent 轨迹预算分配:上下文压缩下探索信号与梯度偏置的联合优化
针对长程 Agent 强化学习中上下文驱逐造成的训练-部署条件失配,提出以驱逐密度为一等统计量对 rollout 预算做分层分配的 EDGE 框架,把探索信号的梯度可得率与压缩偏置率放进同一个目标函数联合优化
背景与动机
长程 Agent 在生产环境里几乎都跑在带上下文压缩的 harness 上:Claude Code、Qwen-Agent、AgentFold、MemexRL、OpenCode 会在 rollout 过程中驱逐或摘要掉早期内容。这个工程现实给训练侧留下一个被长期忽略的后果——轨迹不再是序列。
MemoryWalker(arXiv:2609.00865)把该后果形式化为轨迹树:每一次驱逐都让有效历史分叉一次。论文给出两个失败模式。Naive-Compressed 保留最右路径,后续 token 条件化在一个由未来状态算出的压缩前缀上,构成 time-travel leakage;Naive-Full 重放深度优先遍历,训练对象与推理时真实接触到的上下文不匹配。在 eviction-heavy 设置下,Naive-Compressed 在 AgentFold 上的 train–inference log-probability gap 达到 0.366,约为无压缩基线的 26 倍。
CANOPY(arXiv:2609.01245)从另一侧逼近同一个长程问题。它把 outcome-only RL 在小模型上的”天花板”判定为工程假象,并归因于两个并发失效:signal starvation——group-relative RL 只在 rollout group 混合成功与失败时才产生梯度,探索不足时最先静音的恰好是最难、最有指导性的任务;以及 policy drift——在小任务池上挤压过多更新会损伤策略本身,对应协议里的 KL 锚定。放大同任务探索后,Qwen3-14B 在 AppWorld 上取得 Test-Normal TGC 86.9、Test-Challenge 67.6,Qwen3.5-9B 在 SWE-bench Verified 上提升 16.6 分。
两篇论文处理的对象高度重合,却各自把对方的核心变量当成了常量。触发上下文压缩的是长程任务,而长程任务正是 CANOPY 判定为最有指导性的那一批。放大探索这一动作,等于把采样预算倾泻到压缩偏置最大的样本上。CANOPY 的实验在固定 harness 下完成,驱逐密度没有作为变量进入协议;MemoryWalker 的修正在给定语料上完成,语料的驱逐密度分布没有作为变量进入目标函数。
缺口还可以指认得更精确。MemoryWalker 的 SDCC 保证是 pointwise 的:每个驱逐点的残差 KL 为 ε_KL,Pinsker 不等式把它转成 O(√ε_KL) 的 train–deployment 行为差异 TV 界。这条界对单条轨迹成立,可是 junction 的数量本身是数据分布的函数。CANOPY 式的探索放大会改变 junction 总数在语料中的分布。ε_KL 保持不变而 junction 数从 3 涨到 30 时,累积 TV 界按 √|J| 增长。逐点正确不蕴含语料层面正确。
需要说明的一点:上述「线性」与「√|J|」的差异不是措辞问题,它直接决定第 3 步目标函数里偏置项该用什么形式。若累积误差随 junction 数线性增长,则 (1 − λ·b_k) 这一乘性折价会低估驱逐密集层的代价,更贴合的形式是把偏置写成与 |J| 成正比的加性惩罚;第 3 项技术挑战(λ 标定)的扫描结果恰好可以用来在两者之间做判别。
现有方案不够好,体现在三个层次各自缺一块:
- 梯度层(LogitTree、4D attention mask、SDCC)回答”给定语料怎么算对”,不回答”该收集哪些语料”。
- 探索层(CANOPY)回答”信号太少怎么放大”,放大时不区分被放大的样本偏置多大。
- 数据策展层(SWE-Prime,arXiv:2608.27449)在轨迹级与片段级筛数据,筛选用的是过程质量、结果质量与代表性,没有上下文压缩这个维度。
核心思路
本提案提出 EDGE(Eviction-Density-stratified Gradient-Efficient curation),把驱逐密度提为与任务难度并列的一等统计量,在同一个优化式里一并处理”这条样本有没有梯度”与”这条样本的梯度偏多少”。
方法由三步构成。
第一步是驱逐剖面标注。每条轨迹 τ 标注出 junction 序列 J(τ) = {(t_i, ρ_i)},t_i 为驱逐时刻,ρ_i 为该次压缩率(被驱逐 token 数除以驱逐前长度)。由此定义两个轨迹级统计量:驱逐密度 D(τ) = |J| / T,累积压缩预算 C(τ) = Σ ρ_i。
第二步是分层双层估计。按 (D, C) 的联合分位数把任务池切成 K = 4 层,每层独立估计两个量。梯度可得率 g_k 沿用 CANOPY 口径,即该层 rollout group 混合成败的概率;偏置率 b_k 沿用 MemoryWalker 口径,即同一批 rollout 在 naive 线性化与 SDCC 修正下 log-prob 差值的层内均值。
第三步是预算分配。在总预算 B 的约束下最大化 Σ_k n_k · g_k(n_k) · (1 − λ·b_k),其中 λ 是把偏置折算为信号损失的价格因子。这个目标式的形状直接表达了本提案的主张:梯度可得率与偏置率必须进同一个目标函数。
与现有工作的关键区别有三条。
对 MemoryWalker 而言,它优化的是”每个 junction 的 KL 残差”,属 pointwise;EDGE 优化的是”语料层面的 junction 分布”,属 distributional。两者正交,EDGE 的输出(分层预算)充当 MemoryWalker 修正器的输入语料分布。
对 CANOPY 而言,它最大化的目标是 g_k;EDGE 的目标多乘一个 (1 − λ·b_k) 因子。λ = 0 时 EDGE 严格退化为 CANOPY,这个退化关系让对照实验有干净的归因。
对 SWE-Prime 而言,它在”已产生的成功轨迹”集合内按质量筛选,EDGE 在”任务池”层按驱逐剖面分配采样预算,介入点位于轨迹产生之前而非之后。
分配策略还有一个值得写明的性质:g_k(n_k) 随探索量单调递增并饱和(覆盖曲线,CANOPY 的核心经验观察),目标函数严格凹,最优解由水填充条件 ∂/∂n_k [n_k·g_k(n_k)·(1−λ·b_k)] = μ 给出内点解。这与”把全部预算投给最难的层”这类线性角点解形成对照,也是 EDGE 区别于朴素难度加权的地方。
技术路线
步骤 1|驱逐剖面标注器。 白盒 harness(AgentFold、MemexRL、TC-RAG)直接读驱逐记录,取到精确 junction 位置与压缩率。黑盒 harness(Claude Code、OpenCode)不暴露记录,改用步间 prompt token 计数的负跳变推断 junction 时刻,跳变量作为 ρ 的估计。MemoryWalker 已指出 SDCC 可适用于黑盒 harness,但 junction 定位本身仍需额外机制,这是需要补齐的缺口。
步骤 2|分层与方差控制。 按 (D, C) 联合分位数切 K = 4 层。分层后每层样本量下降,g_k 的估计方差随之放大,采用经验贝叶斯向全局均值收缩,收缩强度按层内样本量自适应。
步骤 3|偏置率在线估计。 每层每轮抽一小批 rollout 做双算:同一批数据分别走 naive 线性化与 SDCC 修正,取 log-prob 差值的层内均值作为 b_k 的当前估计。这批数据只用于估计,不进梯度。
⚠️ 层内均值这一估计量存在符号抵消风险。 MemoryWalker 的实测显示两个失败模式的偏差符号相反且量级相当:在未训练的 Qwen3-4B 上、跨三个白盒 harness,Naive-Compressed 的 Δ_comp 以负值为主,Naive-Full 的 Δ_full 以正值为主,单个 matched leaf 贡献 Δ_full = +18.5 nats(原文明确写 “opposite in sign to Pitfall A, with comparable magnitude”)。若某一层的 rollout 里两种 naive 线性化并存,直接对 Δ 取层内均值会让两股偏差互相抵消,b_k 被系统性低估,进而让该层在分配中显得比实际更”干净”。修正是把 b_k 拆成 b_k^A 与 b_k^B 分别估计,再按 |b_k^A| + |b_k^B| 或按各自占比加权合成;仅当确认该层只有单一线性化路径时,直接取均值才成立。
步骤 4|水填充分配与滚动重估。 按水填充条件求解各层 n_k,μ 由 Σ n_k = B 定出。每轮训练结束后重估 g_k 与 b_k,据此刷新下一轮的分配比例。
步骤 5|三臂对照实验。 臂 A 为 CANOPY 原协议(均匀放大探索 + naive 线性化);臂 B 为 CANOPY 加均匀 SDCC 修正(只补梯度层修正,不做分层);臂 C 为 EDGE(分层分配 + 逐层 SDCC)。三臂固定同一任务池与同一总预算 B,只改变分配策略与修正策略。
关键技术挑战有四项。
第一项是混淆变量。驱逐密度是长程任务的代理量,长程任务本就更难,分层会把”难”与”驱逐密”绑在一起。分离办法是在同一任务池内用不同的上下文预算上限人为制造驱逐密度差异,任务难度保持不变。该设计决定了本提案能否被证伪。
第二项是黑盒 junction 推断的噪声。token 计数负跳变也来自工具输出截断,未必是驱逐。判别信号是跳变后是否出现摘要式文本:真驱逐会插入压缩产物,截断不会。
第三项是 λ 的标定。λ 作为偏置与信号的兑换率没有先验值。做法是在臂 B 上扫 λ ∈ {0, 0.25, 1, 4},观察最优 λ 是否稳定落在非零处。若最优 λ = 0,说明压缩偏置不是一阶效应,核心主张即不成立。
第四项是计算开销口径。LogitTree 需要 K+1 次反向传播,4D mask 需要自定义 kernel。分层后驱逐密集层被优先采样,单步开销随之抬高。预算约束 B 应以 GPU 时计,而非 rollout 条数计,否则臂 C 的额外开销会被记成免费。
预期成果
定量目标分三项。主指标是固定 GPU 时预算下,臂 C 在 AppWorld Test-Challenge 与 SWE-bench Verified 上的得分高于臂 A 与臂 B。偏置指标是把驱逐密集层(D 的上四分位)的 train–inference log-probability gap 压到无压缩基线的 1.5 倍以内——参照 MemoryWalker 在 AgentFold 上的实测,naive 线性化达到基线的 26 倍(0.366,无压缩基线 0.014),该目标等于要求把 gap 从 0.366 压到约 0.021,即相对降幅约 17 倍。效率指标是达到臂 A 同等最终性能所需 GPU 时的下降幅度。
除上述三项,还应把累积速率本身作为一个待测量纳入定量目标:在人为控制驱逐密度的条件下记录 gap 随 |J| 的增长曲线,判定其更接近线性还是 √|J|。这一测量不预设结论,却直接决定偏置项的函数形式,是本提案唯一一处「结论会改写方法本身」的实验。
定性目标有两项。其一是产出”驱逐密度—梯度可得率—偏置率”的三维剖面,作为长程 Agent RL 语料的常规诊断工具。其二是明确回答一个二值问题:压缩偏置在 outcome-only RL 中是一阶效应还是高阶修正。
可证伪预测如下。在驱逐密集层上,SDCC 修正后的梯度可得率 g_k^corrected 应显著低于 naive 估计的 g_k^naive。依据是 Pitfall A 的 leakage 让轨迹后期 token 条件化在一个”来自未来”的压缩前缀上,这个前缀会人为抬高分组成败的分化度,制造出虚假的可用信号。若实测两者无显著差异,说明压缩偏置只影响梯度幅度、不影响信号判定,EDGE 退化为 CANOPY,本提案的耦合假说即被证伪。
影响落在流水线的介入点上。若预测成立,“先收集、后修正”的长程 Agent RL 流水线需要改成”先分层、再收集、逐层修正”;数据工程的介入点从轨迹产生之后,前移到采样预算分配之时。
局限性与失效模式
-
黑盒 junction 推断的误差会被分配器放大而非摊平。 用 token 计数的负跳变定位 junction,再以跳变后是否出现摘要式文本做判别,这条规则是启发式的。它污染的不是最终指标,而是 D(τ) 这一分层的输入。误判率只要在层间不均匀,水填充分配就会系统性地把预算送错层,且这种错误在臂 C 上比在均匀分配的臂 B 上更致命。
-
λ 与累积速率两个待测量不是独立可辨的。 第 3 项技术挑战的 λ 扫描与新增的累积速率测量共用同一批实验数据:若偏置项的函数形式设错(该用线性却用了乘性折价),扫出的”最优 λ”会随之偏移,二者存在联合可辨识性问题。实验设计需要显式做正交化,否则会留下事后调参的空间。
-
混淆变量分离所依赖的假设本身待检验。 用不同的上下文预算上限人为制造驱逐密度差异,原稿称”任务难度保持不变”。但更小的上下文预算不只让驱逐更密,也可能让一部分任务在物理上不再可解——被驱逐的若恰好是解题必需的中间产物,任务就跨过了可解性边界而非仅仅变难。该假设需要单独检验,不能默认成立;这也是本提案最容易被证伪的软肋。
-
CANOPY 的 policy drift 分支未被纳入目标函数。 EDGE 只承接了 signal starvation 一支(g_k),policy drift 对应的 KL 锚定在分层后如何随 n_k 变化没有任何建模。drift 强度很可能与驱逐密度相关——驱逐密集层的有效任务池更小、单位任务承载的更新更多,挤压更强。果真如此,EDGE 的分配策略会与 drift 控制相互干扰,臂 C 相对臂 A 的增益就难以归因到偏置折价这一项上。
-
整套度量依托 outcome-only RL 的显式 log-prob。 g_k 定义为组混合成败的概率,b_k 依托 token 级 log-prob 差值。换成带过程奖励或稠密奖励的设定,g_k 的定义本身失效,方法不直接迁移。这一点限制了结论的适用范围,而非实现难度。
-
白盒 harness 的驱逐记录依赖版本。 直接读驱逐记录这一前提绑定具体 harness 版本;Claude Code、OpenCode 这类黑盒 harness 一旦调整压缩策略,历史标注的驱逐剖面即告过期,分层需周期性重标。长期运行的成本未被计入第 4 项技术挑战的开销口径。
相关工作
-
梯度层的锚点是 MemoryWalker(arXiv:2609.00865,Alibaba Token Foundry,6 位作者)。它提出轨迹树结构与两种精确修正(LogitTree、packed 4D attention mask)及变分松弛 SDCC,给出 O(√ε_KL) 的 TV 界。本提案沿用其 log-prob gap 度量作为偏置率的定义基础,补上语料层分布这一维度。
-
探索层的锚点是 CANOPY(arXiv:2609.01245,5 位作者,Alibaba Research——该归属依据为代码发布仓库所属组织,非论文显式署名,详见文末注释)。它把 outcome-only RL 的天花板归因于 signal starvation 与 policy drift,用放大同任务探索加 KL 锚定的极简协议登顶 AppWorld 榜单。本提案沿用其梯度可得率定义,并在目标式中加入偏置折价因子。
-
压缩侧 harness 的代表是 Memex(RL)(arXiv:2603.04257,4 位作者)。它用索引化经验记忆把工作上下文与外部全保真归档分离,压缩与召回都是可学习的一等动作。本提案的黑盒 junction 推断需要适配这类显式记忆 API 与隐式摘要两类压缩机制。
-
长程 web agent 的主动上下文管理见 AgentFold(arXiv:2510.24699,15 位作者)。它也出现在 MemoryWalker 的实验 harness 中,是 eviction-heavy 设置下 gap 达到 0.366 的那个载体,本提案的偏置指标以该 harness 的实测值作参照基线。
-
数据策展层的对照是 SWE-Prime(arXiv:2608.27449,10 位作者)。它在轨迹级与片段级两级筛选 SFT 数据,用 10% 的轨迹子集在 SWE-Bench Pro 与 SWE-Bench Verified 上分别取得最高 12.2% 与 24.2% 的相对增益。它的筛选维度不含上下文压缩,本提案正是要补上这个维度,并把介入点前移到采样预算分配阶段。
引用核查记录
| 引用 | ID / 作者数 | 关键数字 | 结论 |
|---|---|---|---|
| MemoryWalker(2609.00865) | ✅ 6 人 | 0.366、26×、无压缩基线 0.014、O(√ε_KL)、Δ_full +18.5 nats、LogitTree K+1 次反向 | 全部命中 HTML 全文。机构经署名行确认为 Token Foundry, Alibaba Group。Pitfall A(time-travel leakage)/ Pitfall B(stale-context leakage)表述与原文一致;白盒 = TC-RAG/AgentFold/MemexRL、黑盒 = Claude Code/OpenCode 的分类亦与原文一致 |
| CANOPY(2609.01245) | ✅ 5 人 | TGC 86.9、Test-Challenge 67.6、+16.6 分 | 全部命中。signal starvation 定义与原文逐字吻合。修正:原文为 signal starvation 与 policy drift 双重诊断,原稿只写前者 → 已补全 |
| MemexRL(2603.04257) | ✅ 4 人 | — | 命题属实:原文明确”separates a compact in-context working context from a full-fidelity external experience archive” |
| AgentFold(2510.24699) | ✅ 15 人 | — | 标题与命题属实,确为 MemoryWalker 三个白盒 harness 之一 |
| SWE-Prime(2608.27449) | ✅ 10 人 | 10% 子集、12.2%、24.2% | 全部命中,两级筛选维度与原文逐字一致 |
核查中发现的归属问题(已就地修正):正文「累积 TV 界按 √|J| 增长」一句,经全文检索 accumulat / union bound / number of junctions 确认,MemoryWalker 并未给出跨 junction 的组合速率——其 O(√ε_KL) 界在原文中是 per-junction 口径。该 √|J| 属本提案推论,已在正文标注来源,并补入原文实际给出的更强证据(Pitfall B 误差随 K 线性累积,App. B.4 Eq. 14)。