CodexQA

行业与实践研究与基准测试

32K 窗口打过 128K 裸模型:腾讯 ContextPilot 评主动上下文管理

CodexQA 团队阅读约 6 分钟

Qwen3-8B 只配工具,四套均值从 45.93 掉到 27.61;训完 ContextPilot-8B-RL 是 69.40,窗口只有 32K。深度搜索平均分高于 SUPO,但 WebExplorer 的 xBench 仍是 56.67 对 58.00。

本文目录

32K 窗口打过 128K 裸模型:腾讯 ContextPilot 评主动上下文管理

腾讯优图实验室联合清华大学、上海人工智能实验室的预印本 ContextPilot: Teaching Agents for Proactive Context Management via Fine-grained RL,arXiv 戳记 2026 年 8 月 28 日(2608.28476)。作者是 Zhuoshi Pan、Qizhi Pei、Junru Lu、Honglin Lin、H. Vicky Zhao、Di Yin、Xing Sun,通讯是 H. Vicky Zhao 和 Xing Sun。项目页是 https://tencent.github.io/ContextPilot ,代码在 https://github.com/Tencent/ContextPilot 。许可证是 CC BY 4.0。ContextPilot 让模型自己改工作上下文:规划、长期记忆、软卸载,再用细粒度强化学习给这些动作记功。评测看长上下文问答和深度搜索,窗口只有 32K。

工具先分成会改历史的和不会改的

它在 StateLM 的基础工具上加了三类。StateLM 是先前那套主动上下文管理 Agent。感知和规划:analyzeText 算长度,checkBudget 看剩余 token,plan 写一份短计划。检索:buildIndex、searchContext、readChunk、readMultiChunks。记忆:note、updateNote、readNote,再加上 memorize、updateMemory、readMemory。memorize 抽出实体、时间和事件,并在记忆条目之间建边;readMemory 连邻居一起读。卸载:deleteContext 换成占位,summarizeContext 换成摘要,compressContext 用轻量压缩模型(文中例子是 llmlingua-2),foldHistory 把历史收成关键词和摘要,再用 searchContext 按关键词找回来。

卸载、写记忆、改记忆被当成上下文编辑。轨迹就在这些操作上切成快照,因为它们改了交互历史。

监督数据不是裸轨迹。教师模型生成时,harness 会在该看检索结果时提示去 readChunk,上下文超过预定阈值时只许用卸载工具。这些提示只在生成时存在,不进最终 SFT 轨迹。长上下文问答的 SFT 来自 NovelQA 的 PublicDomain 切分和 NarrativeQA 训练集,强化学习用 LongBench-v2 训练集。深度搜索的底模是 WebSailor-7B 和 WebExplorer-8B,已经会搜,跳过 SFT,直接在 OpenSeeker 抽出的 1.1 万条上做 RL。

试点没有给一张可抄的分数表。作者从已有轨迹的上下文管理动作上分叉,采样后续轨迹,看最终成功率的标准差。方差在动作之间差很多,所以不该把探索预算平均分。另一张图说明:最终做对,可能只是反复检索;最终做错,上下文管理仍可能合理。把整条轨迹的奖赏平摊到每个中间快照,会奖到低效行为,也会罚到合理决定。

RL 用 verl。一条完整轨迹最多切成 88 个快照。每个问题收集 N=128 个轨迹快照:先从 88 次轨迹级采样开始,最多留下 M=64 个快照,剩下的预算用部分展开补。推理时输入上限 30K,生成上限 2K。评测表里的工作窗口标的是 32K。超参没有做充分搜索,限制节自己写了这一点。

尺子:选择对照标准答案,其余用 LLM 裁判,各跑三次

长上下文问答四套:NovelQA 的 Copyright 切分、∞Bench 的 En.MC、LongMemEval-S、BrowseComp+。BrowseComp+ 建在固定语料上,不上网搜,所以归在长上下文问答,不归深度搜索。NovelQA 和 ∞Bench 是选择题,用精确匹配。其余用 LLM-as-a-Judge。每个方法跑 3 次,报均值和标准差。带 dagger 的 MemoryAgent、ReadAgent、StateLM 数字来自 Liu et al.,不是这篇重跑的。

深度搜索四套:BrowseComp、BrowseComp-ZH、GAIA 纯文本子集 103 题、xBench-DeepSearch。表头写 BrowseComp 和 BrowseComp-ZH 用 pass@3,GAIA 和 xBench-DS 用 pass@1。Avg. 是四列不加权平均,尺度并不相同。

长上下文对照:不训练的 ReadAgent;RL 记忆 Agent MemAgent;主动管理的 StateLM;同一套工具、不做微调的 “w/ tools”。深度搜索对照:ReAct;上下文超过 28K 就截断早期消息的 ReAct;推理时摘要的 ReSum;把摘要和 Agent 能力一起 RL 的 SUPO;同一批 1.1 万条、但没有上下文管理工具的 OpenSeeker。

长上下文:小模型裸用工具会变差,训完才越过 128K 底模

表 2。ContextPilot 行的窗口是 32K,对应底模不用工具是 128K。

Qwen3-8B 不用工具,四套均值 45.93(NovelQA 65.74±0.55,∞Bench 66.96±1.09,LongMemEval-S 45.20±1.02,BrowseComp+ 5.82±0.86)。同一模型只配工具、不训练,掉到 27.61。ContextPilot-8B(SFT)65.78。ContextPilot-8B-RL 69.40:83.88±0.67、75.25±0.82、64.27±1.15、54.18±1.47。

Qwen3-14B 不用工具 53.26,只配工具 44.78,SFT 70.60,RL 72.20:84.81±0.86、81.08±1.15、67.40±0.91、55.50±1.71。

Gemma4-E4B-it 不用工具 31.01,只配工具 23.55,SFT 54.74,RL 60.96:72.92±0.86、60.99±1.25、62.47±1.62、47.47±1.08。

StateLM-8B-RL 的四套均值是 65.85,ContextPilot-8B-RL 高 3.55。StateLM-14B-RL 是 70.11,ContextPilot-14B-RL 是 72.20。这些 StateLM 数字带来源标记,不是同一次重跑。

8B 上 RL 相对 SFT 平均 +3.62。NovelQA 只从 82.56 到 83.88,因为 SFT 已经用过 NovelQA 的另一切分。BrowseComp+ 从 48.84 到 54.18,+5.34。文中 NovelQA 平均输入大约 119K token,BrowseComp+ 大约 552K。RL 的好处在更长的那套上更大。

同表还有一行 Qwen3.5-397B-A17B:不用工具、256K 窗口,均值 80.55;配上全套工具、32K 窗口,均值 87.16。这是大模型加工具,不是训出来的 ContextPilot。14B-RL 的 72.20 仍低于这一行。论文说的是同等规模里平均最好,不是打过 397B。

深度搜索:平均分上去了,xBench 不是每格都赢

表 3,三次均值±标准差。

WebSailor-7B:ReAct 25.47,截断 27.31,ReSum 32.09,SUPO 36.31,OpenSeeker 35.78,ContextPilot 38.32。四列是 BrowseComp 21.17±1.31,BrowseComp-ZH 43.14±1.07,GAIA 45.31±0.92,xBench-DS 43.67±0.94。

WebExplorer-8B:ReAct 42.90,截断 43.10,ReSum 45.11,SUPO 49.09,OpenSeeker 47.92,ContextPilot 50.10。四列是 32.17±1.18,53.63±1.23,57.93±0.92,56.67±0.94。

两条底模上,ContextPilot 的四套均值分别比 SUPO 高 2.01 和 1.01,论文写成两条底模平均高 1.51。不是每列都高。WebExplorer-8B 的 xBench-DS 上,SUPO 是 58.00±0.82,ContextPilot 是 56.67±0.94。截断 ReAct 相对普通 ReAct 只多一点点,说明单靠截早期消息不够。

消融:工具是叠加上去的,信用分配最后再抬一截

表 4 用 Qwen3.5-397B-A17B,只改工具、不谈小模型训练。原工具均值 77.89。加工具:规划后 80.29,再加软卸载 83.08,再加长期记忆 87.16。BrowseComp+ 从 63.49 到 80.96。这是累计添加,不是四套工具各自独立的对照。

表 5 是 Qwen3-8B 的训练消融,括号是相对上一行的变化。SFT:82.56 / 71.03 / 60.67 / 48.84。GRPO:83.53(+0.97)/ 72.78(+1.75)/ 60.07(-0.60)/ 50.96(+2.12)。再加基于熵的部分展开:82.52(-1.01)/ 73.07(+0.29)/ 62.13(+2.06)/ 49.64(-1.32)。再加按上下文变化的部分展开:83.05(+0.53)/ 73.94(+0.87)/ 61.40(-0.73)/ 51.08(+1.44)。再加细粒度信用分配:83.88(+0.83)/ 75.25(+1.31)/ 64.27(+2.87)/ 54.18(+3.10)。熵这一步在 BrowseComp+ 上掉 1.32。细粒度信用分配在四套上都相对上一行上升。Gemma 的对应表在附录,正文没有把那张表的数字放进主结论。

训练过程里,检索占比下降,失败定义是环境报错

至少 15 轮的轨迹上,按轮计算平均输入 token。WebExplorer-8B 在 BrowseComp 上输入长度几乎线性涨到大约 30K。ContextPilot-8B 每轮稳定在大约 8K 到 10K。这是图上的约数,不是表 3 的准确率。

Qwen3-8B 的 RL 过程里,早期检索工具大约占全部调用的一半,之后检索占比下降,规划与感知、长期记忆、卸载上升。工具失败定义为环境侧错误:调用格式坏、参数非法、或违反工具前提。早期记忆和卸载的失败率明显高于检索。论文没有把图 6 的每个检查点读成表,所以这里不补具体失败率。

这些数不能被读成什么

工具集仍可能盖不住所有编辑需求。部分展开和信用分配的超参没有充分搜索。任务主要是长上下文问答和深度搜索,没有覆盖编码 Agent 和 GUI Agent。

三次均值不是显著性检验。带 dagger 的行不是这篇重跑。选择题精确匹配和其他基准的 LLM 裁判不能当成同一把尺子。深度搜索的 pass@3 和 pass@1 被放进同一个 Avg.。32K 对 128K 是窗口设置不同,不是同一上下文长度上的公平对照。只配工具、不训练,8B、14B、E4B 的均值都下降,所以工具本身不是增益来源。397B 加全套工具的 87.16 不能记到 ContextPilot 的训练上。xBench 有一格输给 SUPO。输入长度是图上的大约值。

出处:腾讯优图实验室,Zhuoshi Pan、Qizhi Pei、Junru Lu、Honglin Lin、H. Vicky Zhao、Di Yin、Xing Sun,ContextPilot: Teaching Agents for Proactive Context Management via Fine-grained RL,2026-08-28,https://arxiv.org/abs/2608.28476

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误