ContextPilot:用细粒度强化学习教会智能体主动管理上下文 ContextPilot: Teaching Agents for Proactive Context Management via Fine-grained RL
扩展上下文管理工具集,用细粒度强化学习教智能体主动管理自身工作上下文
前置知识
主动上下文管理
区别于按固定规则截断或摘要的被动方案,主动上下文管理让模型通过调用上下文编辑工具(如删除、摘要、折叠历史)自行决定何时、如何修改自己的工作上下文。工具调用会改写交互历史,使轨迹在编辑点断裂为多个快照,模型需在整个任务周期内动态权衡保留与压缩哪些信息。
ContextPilot 的全部设计——工具集、SFT 数据构造、RL 算法——都围绕'让模型成为主动的上下文管理者'这一范式展开,不理解该范式就无法理解其动机与贡献。
ReAct 范式
ReAct 是主流的智能体推理范式:模型每步基于当前上下文生成思考与工具调用,环境返回观测后,三者一起追加进上下文,循环直至完成任务。代价是上下文随交互单调增长,在长周期任务中迅速逼近甚至超出模型上下文窗口。
论文的问题起点正是 ReAct 式上下文单调膨胀;ContextPilot 在此范式上引入上下文转移函数 $F$,使每次上下文管理操作后上下文被改写而非简单追加。
GRPO
GRPO 是一种免 critic 的策略优化算法:对同一查询采样一组轨迹,用组内奖励的均值和标准差做标准化得到优势 $\hat{A}=(R-\mathrm{mean})/\mathrm{std}$,再以 PPO 类目标更新策略。它省去价值网络,广泛用于 LLM 的 RL 训练。
ContextPilot 的最终优化目标就是 GRPO,但其创新在于把'样本'从整条轨迹换成快照、把奖励从单一终局奖励换成基于分支的快照级奖励,本质是对 GRPO 信用分配粒度的改造。
部分回滚
部分回滚指在轨迹级 rollout 之后,从轨迹中的关键中间决策点出发额外采样分支子轨迹,把探索预算集中到影响大的动作上,而非对所有动作平均分配。ARPO 等工作已在工具调用场景中采用类似思想。
ContextPilot 的 context-aware partial rollout 是其 RL 配方的第一半:它决定'在哪里多采样',并为后续细粒度信用分配提供经过同一动作的多条后续分支。
轨迹快照
一条含 $K$ 次工具调用、其中 $M$ 次为上下文编辑操作的轨迹,会在每个编辑点被切分为 $M+1$ 个快照 $S_1,\dots,S_{M+1}$。每个快照代表独立的中间上下文状态,训练时当作独立样本,并对已在前序快照出现过的 token 做损失掩码以避免重复优化。
快照是本文信用分配的基本单位:'细粒度'指的就是把奖励和优势计算从轨迹级下放到快照级。
生成熵
对 LLM 生成的前 $k$ 个 token,熵定义为 $H=-\frac{1}{k}\sum_i\sum_j p_{i,j}\log p_{i,j}$,衡量模型输出的不确定性。熵高说明模型'拿不准',熵的变化常被用来定位决策不确定性发生显著变化的时刻。
ContextPilot 用相对轨迹初始熵的增量 $\Delta H$ 与上下文长度变化 $\Delta C$ 构成敏感度分数,挑选值得分支探索的关键上下文管理动作。
研究动机
长周期智能体任务(长上下文 QA、深度搜索)要求模型在多轮交互中反复检索、整合分散信息。主流 ReAct 范式把每步的思考、工具调用和观测不断追加进上下文,导致工作上下文持续膨胀:NovelQA 平均输入约 119K token,BrowseComp+ 高达 552K token,128K 窗口的 Qwen3-8B 在 BrowseComp+ 上准确率仅 5.82%。近期主动上下文管理方法允许模型用工具编辑自己的上下文,但仍存在三个缺陷:其一,工具集局限于搜索、删除、摘要,缺乏全局规划、长期记忆和自适应压缩能力;其二,RL 训练对所有上下文管理动作一视同仁地探索,而不同动作对结果的影响差异巨大——论文在 NovelQA 上用 Qwen3-8B 从各动作分支采 10 条续写轨迹统计成功率标准差,readChunk 高达 2.79,而 buildIndex 仅 1.48;其三,训练把最终轨迹级奖励直接赋给所有中间动作,而案例分析(Figure 3)显示答案对错与管理质量可能错位:答对的轨迹可能依赖重复检索(低效),答错的轨迹反而管理合理,复用轨迹奖励会强化坏习惯、惩罚好决策。
本文的目标是本文目标是构建面向长周期智能体推理的主动上下文管理框架 ContextPilot,让模型在保持紧凑工作上下文的同时取得更强性能。具体分三方面:工具侧,在 StateLM 的基础工具集上系统性补齐规划、长期记忆和软上下文卸载三类能力,新增 plan、memorize、updateMemory、readMemory、summarizeContext、compressContext、foldHistory 等工具;训练侧,设计专门适配上下文管理的 RL 方法——用上下文变化量和熵变化定位关键编辑决策进行分支采样,并用所有经过该动作的终端分支轨迹估计动作级优势,实现细粒度信用分配;评测侧,把评估从以往偏重的长上下文 QA 扩展到深度搜索任务(GAIA、BrowseComp 等),在 Qwen3-8B/14B、Gemma4-E4B、WebSailor-7B、WebExplorer-8B 等多个基座上验证一致增益。衡量标准是在仅用 32K 上下文窗口的条件下超越 128K 全上下文基线。
与已有工作不同的是,与已有工作的本质差异在于'把上下文管理本身当作一等公民来训练'。StateLM、Sculptor 等先行者虽然引入了轨迹快照和 token 级损失掩码,但 RL 探索仍是轨迹级的、对编辑动作不加区分,奖励也只是把终局结果广播给全部中间快照。本文的独特切入由两个观察驱动:一是不同上下文管理动作的成功率方差差异显著(readChunk 2.79 vs buildIndex 1.48),说明探索预算应按敏感度分配而非均摊,这催生了基于上下文与熵变化的部分回滚;二是终局对错与管理质量错位,说明中间决策需要独立于最终答案的奖励估计,这催生了用该动作所有后续分支的终端奖励均值作为动作级奖励的细粒度信用分配。此外,已有工作几乎只在长上下文 QA 上评测,本文首次把主动上下文管理系统性地带入深度搜索任务,验证了范式的跨任务泛化。
核心方法
ContextPilot 是'SFT 打底 + RL 精调'的两阶段框架。直觉是:上下文编辑工具会大幅改写历史、对后续步骤影响深远,因此训练时应当(a)给模型一套足以覆盖规划、记忆、卸载的完整工具,(b)在高影响决策点多采样、并按每个中间决策的真实价值给予奖励。技术路线上,先设计含 4 大类 17 个工具的上下文管理工具集(Table 1),用带规则脚手架的 harness 引导教师模型合成 SFT 轨迹(提示与约束仅用于生成期,不进入最终数据);再用 verl 库做 RL:每个查询的全局预算为 128 个快照,先做 8 条轨迹级 rollout、切分出至多 64 个快照,剩余预算按敏感度分数 $S(a)=\alpha\Delta C+\beta\Delta H$ 选出的 top 动作做分支采样的部分回滚补足;每条完整轨迹至多切 8 个快照。奖励由结果、格式、惩罚三项构成,快照级优势按同查询分组做 GRPO 标准化更新。
核心创新有两点。第一,context-aware partial rollout:为每个上下文管理动作定义敏感度分数 $S(a_{cm}^t)=\alpha\cdot\Delta C_{cm}^t+\beta\cdot\Delta H_{cm}^t$,其中上下文变化 $\Delta C=\frac{len(c^{t+1})-len(c^t)}{len(c^t)}$,熵变化 $\Delta H=H^t-H_{initial}$ 取相对轨迹开头的初始熵而非上一步,以捕捉相对初始查询状态的重大不确定性变化而非相邻步的局部抖动;剩余探索预算分配给分数最高的动作分支。第二,快照级细粒度信用分配:不同于 StateLM 把终局奖励广播给所有中间快照,本文把中间快照 $S_i$ 的奖励定义为其所有后续终端轨迹奖励的均值 $R(S_i)=\frac{1}{|\mathcal{T}(S_i)|}\sum_{T}R(T)$,终端奖励为 $R(S_M)=R_{out}+R_{fmt}+R_{pen}$,再在同查询快照组内做 GRPO 标准化。附录 A 讨论了该估计的方差削减效果。
方法步骤详情
第一步,工具集设计:感知与规划类(analyzeText、checkBudget、plan);检索类(buildIndex、searchContext、readChunk/readMultiChunks);记忆管理类(note/updateNote/readNote 短期笔记,memorize 抽取实体、时间戳与事件片段并建跨块关联,updateMemory/readMemory 读写长期记忆);软卸载类(deleteContext 置占位符、summarizeContext 换摘要、compressContext 用 LLMLingua-2 压缩、foldHistory 把历史折叠为可检索索引)。第二步,SFT 数据合成:规则化 harness 在恰当时机给教师模型提示与约束(如 search 后必须 readChunk、超阈值只允许卸载类工具),生成后剥离脚手架。第三步,RL:rollout 时计算每个上下文管理动作的 $\Delta C$ 与 $\Delta H$,按敏感度 $S$ 降序选 top 动作分支采样补足快照预算;奖励含 $R_{out}$、$R_{fmt}$ 与惩罚项 $R_{pen}$;快照按查询分组算 GRPO 优势,逐快照独立优化。推理输入上限 30K、生成 2K token。
技术新颖性
技术新颖性体现在三个层面。其一,把'上下文管理动作的影响异质性'形式化为可计算的敏感度分数并直接驱动探索分配,这是首次将 ARPO 式部分回滚改造为上下文管理专用版本;消融显示仅用熵的版本不稳定(BrowseComp+ 上 -1.32),加入上下文变化后才稳定增益,说明两个信号缺一不可。其二,信用分配从轨迹级下放到快照级:利用部分回滚天然产生的多条经过同一中间动作的分支,用其终端奖励均值估计该动作价值,把稀疏的终局信号变成密集的动作级信号;消融显示在 context-aware 部分回滚之上再加细粒度信用分配,四个基准再涨 0.83/1.31/2.87/3.10 个点。其三,工具设计本身也是贡献:在 397B 模型上逐类累加工具的消融中,平均分从 77.89 一路升至 87.16,BrowseComp+ 从 63.49 涨到 80.96,证明长期记忆与软卸载并非锦上添花而是关键组件。
实验结果
长上下文 QA(Table 2):ContextPilot-8B-RL 四基准平均 69.40,超 StateLM-8B-RL 的 65.85 约 3.55 分,14B 版达 72.20;Qwen3-8B 无工具 128K 上下文仅 45.93,ContextPilot-8B 用 32K 窗口即反超。RL 在 SFT 之上平均再涨 3.62 分,其中 BrowseComp+ 涨 5.34(48.84→54.18),NovelQA 仅涨 1.32,印证任务越长(552K vs 119K token)RL 收益越大。深度搜索(Table 3):WebSailor-7B 上平均 38.32,超 SUPO(36.31)与 OpenSeeker(35.78);WebExplorer-8B 上 50.10 超 SUPO 的 49.09,两骨干平均领先 1.51 分。Token 效率(Figure 4):WebExplorer-8B 每轮输入线性涨至约 30K,ContextPilot-8B 稳定在 8-10K。行为分析(Figure 5/6):检索类调用占比从约 50% 随 RL 下降,规划、记忆、卸载类上升,记忆与卸载工具失败率随训练下降、任务成功率同步上升。消融:工具逐类累加平均分 77.89→87.16;算法侧 BrowseComp+ 依次 48.84→50.96→49.64→51.08→54.18。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 长上下文 QA(四基准平均:NovelQA/∞Bench/LongMemEval-S/BrowseComp+) | 平均准确率 | ContextPilot-8B-RL 69.40;ContextPilot-14B-RL 72.20 | StateLM-8B-RL 65.85;Qwen3-8B 无工具(128K) 45.93 | 较 StateLM-8B-RL +3.55;较 128K 基座 +23.47(窗口仅 32K) |
| BrowseComp+(长上下文 QA) | 准确率 | ContextPilot-8B-RL 54.18 | StateLM-8B-RL 46.44;Qwen3-8B 无工具 5.82 | +7.74;RL 阶段单级 +5.34 |
| 深度搜索四基准平均(BrowseComp/BC-ZH/GAIA/xBench-DS,WebSailor-7B) | pass@3 / pass@1 平均 | ContextPilot 38.32 | SUPO 36.31;OpenSeeker 35.78;ReAct 25.47 | 较 SUPO +2.01,较 ReAct +12.85 |
| 深度搜索四基准平均(WebExplorer-8B) | pass@3 / pass@1 平均 | ContextPilot 50.10(BrowseComp 32.17,BC-ZH 53.63) | SUPO 49.09;ReSum 45.11 | 较 SUPO +1.01;两骨干平均 +1.51 |
| BrowseComp token 效率 | 每轮平均输入 token(15 轮以上轨迹) | ContextPilot-8B 稳定在 8K-10K | WebExplorer-8B 线性增长至约 30K | 长轨迹下输入长度约降至 1/3 |
| 工具设计消融(Qwen3.5-397B-A17B) | 四基准平均准确率 | 完整工具集 87.16(BrowseComp+ 80.96) | 原始工具集 77.89(BrowseComp+ 63.49) | +9.27;BrowseComp+ +17.47 |
| RL 算法消融(Qwen3-8B,BrowseComp+) | 准确率 | SFT→GRPO→+熵→+上下文→+细粒度:48.84→50.96→49.64→51.08→54.18 | 仅 GRPO 50.96;仅熵式部分回滚 49.64 | 完整配方较 SFT +5.34,细粒度信用分配单项 +3.10 |
局限与改进
作者承认三点局限:工具集未必覆盖所有上下文编辑需求;受算力约束未对部分回滚与信用分配相关超参做充分搜索;实验局限于长上下文 QA 与深度搜索。我自己的观察:敏感度分数 $S=\alpha\Delta C+\beta\Delta H$ 中 $\alpha,\beta$ 的取值方式论文未详述,属于手工启发式,跨任务/模型的迁移性存疑;快照级奖励仍源于终端轨迹,本质是结果奖励的再分配,缺乏对'管理过程本身质量'的直接监督(Figure 3 指出的对错与管理质量错位只是被缓解而非根治);部分回滚对每条查询要采 128 个快照,rollout 开销比普通 RL 高数倍,成本收益没有单独核算;每条轨迹至多切 8 个快照、输入上限 30K 的设定对超长任务(BrowseComp+ 平均 552K token)是否构成瓶颈未讨论;此外小模型(Gemma4-E4B 平均 60.96)与大模型(397B 平均 87.16)差距仍大,说明方法红利部分依赖基座能力。
独立分析的弱点
第一,敏感度分数是线性启发式:$\alpha\Delta C+\beta\Delta H$ 把上下文长度变化与熵变化简单加权,无法区分'删除大量冗余'与'删除关键证据'这类同长不同质的操作,改进方向是引入内容相关性信号(Figure 1 中的跨块相关性已出现但未进入打分公式)。第二,中间快照奖励取分支均值 $R(S_i)=\frac{1}{|\mathcal{T}(S_i)|}\sum R(T)$,当某动作后续分支很少时估计方差大,可设最小分支数门槛或置信度加权。第三,SFT 依赖教师模型加规则 harness,脚手架质量直接决定数据质量,而'超阈值只许卸载'等硬规则可能限制教师探索更优策略,可改为软引导或让教师自研策略。第四,部分回滚预算 $N=128$ 固定,未按任务难度自适应调整,简单任务上浪费算力,可引入难度感知的预算分配。第五,BrowseComp+ 基于固定语料、无真实网络交互,结论向真实开放网络搜索的迁移有待验证,建议补充在线搜索端到端实验。第六,快照至多 8 个的上限是为训练稳定而设,代价是超长轨迹后段的编辑决策得不到独立信用。
未来方向
作者提出的方向包括:设计更丰富的上下文组织、压缩与检索操作以覆盖更多编辑需求;对部分回滚与信用分配做系统的超参搜索;把主动上下文管理扩展到智能体编码、GUI 智能体等更广的推理场景。基于本文成果可自然延伸的方向:一是把敏感度分数升级为可学习的打分模型,甚至让策略自己学会'哪里值得分支';二是将快照级信用分配推广到一般多工具 RL 训练,凡存在'动作深刻影响后续轨迹分布'的场景(代码编辑、数据库操作、科学实验循环)都可借鉴;三是让 memorize 构建的事件记忆与外部向量库、知识图谱互通,形成分层的长短时记忆体系;四是利用分支轨迹的奖励分布做测试时选择或蒸馏,把训练期的探索能力转化为推理期的自适应性;五是在数小时级的超长 agent 会话中检验快照切分与 30K 输入上限的适用性,并研究上下文管理策略的持续学习。
复现评估
复现条件较好:代码开源于 github.com/Tencent/ContextPilot,项目页在 tencent.github.io/ContextPilot,模型权重发布于 HuggingFace 集合 panzs19/contextpilot。训练数据均为公开集:长上下文 QA 的 SFT 用 NovelQA PublicDomain 切分与 NarrativeQA 训练集,RL 用 LongBench-v2 训练集;深度搜索直接在 OpenSeeker 的 1K 样本上做 RL(基座已有搜索能力故跳过 SFT)。工程栈是 verl 库,关键超参已给出:每查询 128 快照、8 条初始 rollout、至多 64 快照、每轨迹至多 8 快照、输入 30K/生成 2K。难点在算力:RL 阶段每查询要维护上百个快照样本并做分支采样,涉及 8B/14B 模型训练需多卡集群,普通实验室复现 14B 规模有压力;建议先复现 8B 或直接下载权重做推理验证,再视资源决定是否重训。敏感度权重 $\alpha,\beta$ 等细节需查阅附录 D,部分实现可能需联系作者确认。
论文图表
条形图展示各上下文管理工具的成功率标准差:readChunk 最高(2.79),其后是 deleteContext(2.70)、searchContext(2.52)、memorize(2.33)、summarizeContext(2.13)、plan(1.95)、analyzeText(1.81)、readMemory(1.65)、buildIndex(1.48),finish 最低(0.74)。
它用实验数据证明了不同上下文管理动作对最终结果的影响存在显著异质性,是论文提出'按敏感度分配探索预算'这一核心设计的直接动机。
两个对比案例:左例答案正确(Robert D. McBain)但工具链是 search×3、readChunk、search×2 反复检索的低效管理;右例答案错误(Ty Longley)却执行了 note、delete×2、updateNote、readNote 等合理的上下文管理操作。
该图揭示了'终局对错'与'管理质量'错位的现象,说明轨迹级奖励会惩罚好的管理、强化坏的习惯,是细粒度快照级信用分配的立论依据。