深度研究 Agent 不只是回答问题——它要搜索、验证、记忆、综合,在长时间跨度里产出带引用的报告。但前沿系统(OpenAI DeepResearch、Claude Research 等)都是闭源的,开源方案往往只擅长某一类任务。
QUEST 用仅 8K 条全合成训练数据,把 2B–35B 的开源模型训练成通用深度研究 Agent,同时覆盖事实检索、引用落地、报告综合三大能力。核心配方:基于 Rubric Tree 的数据合成管线 + 结构化上下文压缩 + MT → SFT → RL 三阶段训练。
搜索引擎正在从「返回网页列表」进化到「自主检索证据并综合知识」。深度研究 Agent 接到复杂任务后,会分解子目标、执行搜索、阅读网页、产出带引用的回答或长报告。
但训练这样的 Agent 很难,因为深度研究任务横跨两种评估范式:
论文指出,一个通用深度研究 Agent 需要同时具备三种能力——而现有 benchmark 和训练方案往往只覆盖其中一种:
传统 QA 监督只看「答案对不对」,无法处理多解任务、开放报告和细粒度信用分配。QUEST 的切入点就是:用 Rubric Tree 把任务约束结构化,让训练和评估都有可验证的细粒度信号。
QUEST 的训练数据不是人工标注的 QA 对,而是 Quest-8K:每条数据包含一个复杂查询、一棵任务专属的 Rubric Tree、以及对应的评估协议。从 2 万条候选中严格筛选到 8,161 条。
图:数据合成管线总览。上半部分是生成流程,下半部分是客观任务和开放任务的 Rubric Tree 示例。灰色为根节点,蓝色为中间分支,红色为可自动验证的叶子节点。
展开说明 ▸根节点代表总分,从子节点聚合。叶子节点是可二元验证的具体约束(事实正确性、来源归属等),内部节点递归分解更高层约束。这种设计带来两个关键好处:
官方数据示例 · 来自 osunlp/QUEST-RL-Data · task_id: tree2py_traj_104 · 类别: Outdoor & Recreation
下面用数据集中第 104 号客观任务走一遍完整流程。这类任务的最终产物是:自然语言问题 + 验证树 + 可执行的 Python 评估脚本(tree2py)。
深度研究 Agent 在多轮搜索中上下文会迅速膨胀。现有开源方案要么限制轮数,要么依赖超大上下文窗口硬撑。QUEST 的做法是:当上下文超过阈值时,用 Context Condenser(GPT-5-mini)把全部历史压缩为一个结构化的 Context State,然后在全新上下文窗口中继续。
图:上下文超阈值时,Context Condenser 将历史压缩为 Context State,Agent 在新窗口中继续推理。
展开说明 ▸已与来源 URL 交叉验证的事实,可直接复用,无需重复搜索
被其他来源反驳的声明,标注不信任原因,默认不再使用
部分支持的声明,附待访问 URL 或待重跑的查询,驱动后续验证
Context State 编码了 Agent 的认知状态(epistemic state)——恢复后的 Agent 知道「已确认什么、怀疑什么、还需验证什么」,避免冗余工具调用,支持跨长程任务的连贯引用综合。
QUEST 的训练分三阶段,每阶段解决不同问题。三者缺一不可——消融实验表明 MT+SFT+RL 组合在所有 benchmark 上综合最优。
两个辅助任务,让基座模型学会长上下文理解和 Context State 结构——不需要额外标注,直接复用数据合成管线的副产品:
用教师模型 Tongyi DeepResearch 在 Quest-8K 上收集完整 Agent 轨迹。评估分数超过阈值才保留;客观任务不达标时注入评估反馈做 reflection retry。开放任务用 GPT-5.2 润色最终报告,GPT-5-mini 回溯插入行内引用。
关键设计:session-level 训练——把完整轨迹按 Context Condenser 的压缩边界切成多个 session,每个 session 只包含当前有效上下文,解耦训练长度与轨迹长度。
#Session = 轨迹按 Context Condenser 切分后的 SFT 训练样本数(平均每条 Traj. 约 2 个 Session)。MT 是独立辅助任务,无 Session 概念;RL 只用任务 prompt,不存轨迹。
| Stage | Type | #Task | #Traj. | #Session |
|---|---|---|---|---|
| MT | ||||
| C.S.(上下文摘要) | — | 309,346 | — | |
| R.I.E.(信息提取) | — | 1,052,663 | — | |
| SFT | ||||
| Objective | 5,070 | 19,435 | 39,861 | |
| Open-ended | 1,958 | 4,485 | 11,903 | |
| RL | ||||
| Objective | 864 | — | — | |
| Open-ended | 269 | — | — | |
用 GRPO 做 outcome-based RL,复合奖励函数:
QUEST 的不少设计来自试错——尤其是开放任务的 reward 信号,论文专门用一节(§7.4)讲了两种失败方案,才收敛到前文提到的相对成对评分。
直觉上:方案 A 是「没有尺子瞎打分」,方案 B 是「和奥运冠军比输赢——新手永远输」,最终方案是「和参考报告比相对质量——有进步就能拿分」。
以下设计在论文中有实验,但最终没有进入 QUEST 主配方。
QUEST-35B 在 8 个深度研究 benchmark 上建立了开源 Agent 的新 SOTA,多个指标匹配或超越闭源前沿系统。
QUEST-35B 与主流闭源 / 开源深度研究 Agent 在 8 个 benchmark 上的整体对比。
展开说明 ▸
图 5:QUEST-35B 在四个训练阶段(Vanilla → SFT → +MT → +RL)上八个 benchmark 的分数变化。所有结果均使用 context condenser。
展开说明 ▸「仅 8K 合成任务,QUEST 就接近甚至超越了闭源前沿 Agent——关键在于 Rubric Tree 提供了可验证的细粒度训练信号,而非数据规模。」