跳转至

DAGent: Evaluate-then-Grow Planning for Deep Research Agents

会议: NeurIPS2026(任务清单归属;缓存为 arXiv v1,未提供录用证明)
arXiv: 2609.39154
代码: https://github.com/hanwenliu6825/DAGent
领域: 多智能体
关键词: 深度研究、增量规划、有向无环图、分层上下文、结构化信用分配

一句话总结

DAGent 让规划智能体先评估已完成子任务、再增量扩展研究 DAG,并用分层证据传递与 DAGRPO 结构奖励改进执行:无训练 Qwen3-32B 在三个基准上达到 47.3 / 55.3 / 65.0 Pass@1,比同架构先规划后修补变体高 5.3 / 4.8 / 4.0 个百分点。

研究背景与动机

深度研究不是一次检索后生成答案,而是不断判断已有线索是否可信、哪些证据还缺、下一次搜索该往哪里走。ReAct 把动作与观察串在一条轨迹中,随着网页和检索记录累积,上下文越来越拥挤;摘要与折叠方法可以延长轨迹,却未必显式表达多个研究分支间的依赖。DAG 方法允许独立子任务并行,并让每个执行智能体只看所需的上游信息,但仅有图结构还不能保证规划时机正确。

Flash-Searcher 和 FlowSearch 都允许执行后的计划调整,但在任何节点运行前,已经建立覆盖整个任务的计划。本文将这类方式称为 Plan-then-Patch:最需要证据支持的全局承诺,恰好发生在证据最少的时候。若最初对实体身份、时间范围或检索方向判断错误,后续补节点虽然可以救回答案,却无法收回已经执行的无效分支成本。

本文因此把重点从“如何修补一个完整计划”移到“何时允许下一部分计划出现”。已完成节点不仅汇报答案,还汇报理由、置信度与不确定项;规划者据此判断应继续调查、改换搜索策略还是收束答案。核心 idea:只承诺当前证据能够支撑的一批节点,让评估结果驱动图的增长,并利用这张只追加、不改写历史依赖的图组织上下文和训练信用。

方法详解

整体框架

输入是一个研究问题,输出是由证据节点支撑的最终答案。DAG 初始为空,规划智能体(Orchestrator)先生成小规模首批子任务;ReAct 执行智能体(Executor)调用检索、页面访问等工具,完成后交回结构化摘要。此后每轮先评估上一批结果,再添加下一批节点,直到规划者创建一个独占当前批次的答案节点。

方法有三项相互支撑的设计:先评估后增长决定何时创建节点,分层上下文决定新节点能够读到什么,DAGRPO 则在可选的强化学习阶段利用已记录的图分配奖励。DAGent 本身可以不训练直接推理;DAGRPO 不是推理时调用的裁判工具,也不参与每轮节点状态评估。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    Q["研究问题与空 DAG"] --> P["先评估后增长"]
    P --> C["分层上下文"]
    C --> E["ReAct 执行<br/>检索与页面工具"]
    E -->|QueryDoc 与状态反馈| P
    E -->|答案节点执行完成| A["最终答案"]
    E -.->|仅训练:保存图和轨迹| R["DAGRPO 结构奖励"]
    A -.->|仅训练:最终正确性奖励| R
    R -.->|更新共享策略| U["规划者与执行者策略"]

图中实线是推理数据流,虚线是训练监督。节点状态由规划者依据执行结果判断;训练的二值正确性奖励由最终答案裁判提供,两者不是同一种信号。

关键设计

1. 先评估后增长:让下一批计划建立在已经得到的证据上

每个节点保存子任务描述、执行提示、直接依赖集合和状态。执行者完成节点后生成 QueryDoc,包含当前子任务答案、简短解释、关键执行步骤、取值在 0 到 1 之间的自报置信度,以及需要核实的不确定项。规划者依据这些字段,为上一批的每个节点显式赋予 Success、Uncertain 或 Not Found。Success 表示获得可信证据,Uncertain 表示证据还需验证,Not Found 则表示执行有效但没有找到相关证据;后两者不能被默默当成成功结果。

对 Uncertain 或 Not Found 节点,规划者在预算允许时创建 refine 节点,改用另一种搜索策略或继续核验。每条子任务线最多三次尝试,具体是一次初始执行加两次 refine,而不是额外再重试三次。预算耗尽后,这条线索保留为显式的不确定性,不能无限循环搜索。新节点的依赖只能指向已经运行并经过评估的节点,所以当前批次的执行任务可以并行,而不是依赖同批尚未完成的结果。

图只追加新节点与新节点的依赖,不删除旧节点、不重新接线。这个限制不仅为了简化调度,还保证最终图中的祖先关系与节点运行时实际接收到的上游信息一致。规划者只有在认为证据足以收束时才创建答案节点;该节点必须独占一批,直接依赖规划者选中的证据节点,避免它与尚未完成的证据搜索同时运行。

这与“分多次调用生成一个完整计划”不同:若多次规划仍全部发生在执行前,本质上仍是先承诺再修补。DAGent 的首批是唯一没有执行证据可参考的规划,因此保持较小;后续调查方向由真实结果决定,而非只是把最初的目录逐层展开。

2. 分层上下文:默认传结论,必要时回看直接依赖的原始记录

把所有祖先记录送入每个节点会使图退化成不断膨胀的长上下文。DAGent 的选择性传播(Selective Propagation)只把直接依赖节点的 QueryDocs 作为默认上游上下文。其负担主要受入度和每份摘要长度影响,而不是把图深度或全部节点数直接转化为上下文长度;这不意味着任意高入度的节点仍能保持固定开销。

QueryDoc 保留结论与可靠性信息,但摘要会遗漏原文措辞、被排除的候选或检索过程细节。因此每个节点另存完整交互记录 InteractionTranscript,记录工具动作与返回观察。执行者需要具体材料时,调用 recall(node_id, goal),让一个语言模型从指定直接依赖节点的完整记录中抽取与目标相关的片段。它不是全图检索,也不是默认把所有原始历史重新灌回当前任务。

附录对 RecallTool 的约束是只使用指定记录,每项主张附文档 ID、URL 或原句,并明确说明未找到相关内容的情况。这样可以在保留来源可追溯性的同时控制返回范围,但召回结果仍是模型抽取,不等同于无损读取。Qwen3-32B 在三个基准上仅有 22.0% / 13.6% / 11.0% 的任务调用过该工具,符合“摘要优先、原始记录兜底”的定位。

3. DAGRPO 结构奖励:区分答案链上的执行与规划结构错误

仅按最终答对与否训练,会把同一任务轨迹中的有效证据和无关探索赋予同样奖励。DAGRPO 从最终答案节点出发,取答案节点自身及全部祖先的闭包,记为 \(S(\tau)\)。其中执行节点的输出直接或间接进入了答案合成链;闭包外节点依然可能具有探索价值,但不应在答对的轨迹中获得与答案链完全相同的信用。

因此答案链上的执行者保留完整二值结果奖励,链外执行者乘以衰减系数 \(\alpha\)。失败轨迹的结果奖励为零,乘法衰减不会再额外处罚那些“搜到了材料但最终没被答案使用”的节点;这也是不用常数减分的原因。没有答案节点的轨迹回退到 \(\alpha=1\),恢复结果奖励式的执行者信用分配。

必须强调,祖先闭包只是结构性贡献代理,不是因果归因。一个节点被列为依赖,不证明它不可替代或事实正确;真正的边际贡献需要移除节点后重跑受影响子图。作者以奖励不随祖先数量直接增加、无关依赖会污染下游上下文、训练中图规模没有膨胀等理由解释为何难以靠乱加边获利,这些论据不能替代一般性的防奖励投机保证。

规划者另获结构合规惩罚:每个上一批节点都要有状态,尚有尝试预算的弱节点应被 refine,答案节点要独占一批,提示不能重复,JSON 必须可解析,依赖引用必须合法。奖励在轨迹层累积违规轮数并封顶,而不是在每个格式错误 token 上独立扣分。规划者与执行者分别做组内奖励归一化,避免数量更大的执行者子轨迹主导规划者的基线统计。

一个完整示例

以下是机制示意,不是论文报告的测试案例。假设问题要求确认某项历史奖项的获奖者及其当时所属机构,首批可以并行调查获奖记录和候选者履历,但不预先建立所有可能人物的后续研究链。

获奖记录节点返回一个候选与来源,状态为 Success;履历节点发现两个相似姓名,QueryDoc 标记身份不确定,规划者将其评为 Uncertain。下一批为履历线创建第一次 refine,查询含奖项年份的机构档案,同时其他已获可信证据的线索可以继续扩展。若 refine 仍不确定,只允许再做一次 refine,使该线累计最多三次执行。

当身份明确后,新建机构核对节点,直接依赖已确认的履历和获奖记录,只收到两份 QueryDocs。如果需要获奖公告中的原始机构写法,该节点向获奖记录节点调用 RecallTool,而不是读取全图所有页面。最后答案节点独占一批,依赖核对后的有效证据,输出人名和机构。

若训练时还有一个与最终答案无关的旁支,它留在记录图中但不属于 \(S(\tau)\);最终答对时,它获得衰减信用。这个旁支可能帮助排除候选,结构闭包却未必体现这类价值,正好说明“图可达”与“真实因果贡献”的差别。

损失函数 / 训练策略

DAGRPO 沿用 GRPO 的裁剪策略梯度形式,改变的是优势归一化前的奖励构造,而不是引入新的图神经网络。设 \(R(\tau)\in\{0,1\}\) 为最终答案奖励,\(u\) 为角色,核心奖励和优势为:

\[ \tilde r_i^{(u)}= \begin{cases} R(\tau), & u=\mathrm{exec},\ v_i\in S(\tau),\\ \alpha R(\tau), & u=\mathrm{exec},\ v_i\notin S(\tau),\\ R(\tau)+r_{\mathrm{proc}}(\tau), & u=\mathrm{orch}, \end{cases} \qquad \hat A_i^{(u)}=\frac{\tilde r_i^{(u)}-\mu_u}{\sigma_u}. \]

规划者组包含同一任务采样的 \(G\) 条轨迹,执行者组包含这些轨迹产生并保留的全部执行者子轨迹;\(\mu_u\)、\(\sigma_u\) 在各自角色组内计算。不能把 GRPO-DAGent 基线误称为不区分角色的全局 GRPO:它同样使用角色分离,只设置 \(\alpha=1\) 并去掉结构合规惩罚。

结构惩罚定义为:

\[ r_{\mathrm{proc}}(\tau)=-\lambda_{\mathrm{proc}}\min\bigl(N(\tau),K_{\mathrm{proc}}\bigr). \]

\(N(\tau)\) 是存在结构违规的规划轮数,不是违规类别总数。实验用 \(\lambda_{\mathrm{proc}}=0.3\)、\(K_{\mathrm{proc}}=5\),所以最多扣 1.5;答对但含一至三轮违规的轨迹仍高于无违规的失败轨迹,更多违规则不再保证这一排序。

训练使用 Qwen3-8B,在 BrowseComp-Plus 的 680 个训练任务上做全线性层 LoRA,rank 与 LoRA alpha 均为 64。每批 32 个任务,每个任务采样 8 条轨迹,AdamW 学习率为 \(1\times10^{-5}\),训练 21 次更新;硬件为两张 H200。DAPO 风格的上下裁剪幅度分别为 0.20 和 0.28,熵系数与参考模型 KL 系数均为 0.001,完整 DAGRPO 采用 \(\alpha=0.5\)。

对各子轨迹 token 的裁剪目标,按整条任务轨迹的总响应 token 数归一化,并在目标之外加入参考模型 KL 稳定项。推理使用 greedy decoding、关闭 thinking;训练出的检查点零样本迁移到 GAIA 和 xbench-DeepSearch,不在这些评测集上继续训练。

实验关键数据

主实验

指标都是 Pass@1(%),但先明确三个数据条件:BrowseComp-Plus 为 150 个评测任务,easy / medium / hard 各 50 个,使用固定语料上的 Qwen3-Embedding-8B 本地密集检索;GAIA 主表为 103 个纯文本验证任务,L1 / L2 / L3 分别为 39 / 52 / 12 个;xbench-DeepSearch 是 2505 版本的 100 个中文任务。后两者共享 Serper Google 搜索和 Jina 页面抽取,同一基准内各方法共享工具后端。

设置与统计口径 方法 BrowseComp-Plus GAIA xbench-DeepSearch
Qwen3-32B,无训练,单次 greedy ReAct,109K 31.3 39.8 58.0
Qwen3-32B,无训练,单次 greedy Fold Agent 41.3 42.7 55.0
Qwen3-32B,无训练,单次 greedy Flash-Searcher 38.7 44.7 58.0
Qwen3-32B,无训练,单次 greedy FlowSearch 43.3 51.5 63.0
Qwen3-32B,无训练,单次 greedy DAGent 47.3 55.3 65.0
Qwen3-8B,训练,三 seed 均值 ± 样本标准差 GRPO-DAGent 46.0 ± 1.2 50.8 ± 1.1 63.0 ± 1.0
Qwen3-8B,训练,三 seed 均值 ± 样本标准差 DAGRPO-DAGent 49.6 ± 1.0 53.4 ± 1.0 65.7 ± 1.5

主表摘自原文 Table 1。32B 的 DAGent 比 FlowSearch 高 4.0 / 3.8 / 2.0 个百分点;8B 的结构奖励增益应与同预算 GRPO-DAGent 比较,是 3.6 / 2.6 / 2.7 个百分点,三个基准等权平均约 3.0。不能把这两个不同规模、不同统计口径的分组作为一组直接排名。

FlowSearch 使用作者发布实现,启用执行后修补的 Coordinator,统一 backbone 与工具,但保留其官方预算,仅在 Qwen3-32B 上补测。多上下文方法的 32K × N 是每个上下文的预算,不是整个研究问题只消耗 32K;DAGent 每个上下文的提示上限为 8,192 token,含工具输出的响应上限为 32,768 token。

裁判为 GPT-4o-mini,边界案例用 GPT-4.1 仲裁。150 个按三个基准各 50 个抽样的人工校准案例中,人类多数票与裁判的总体一致率为 97.3%,Cohen's \(\kappa=0.95\)。GAIA 使用答案等价裁判,替代原始近精确匹配评分,不能不加说明地与原协议成绩比较。

消融实验

Qwen3-32B 无训练配置 BrowseComp-Plus GAIA xbench-DeepSearch Overall
DAGent 完整方法 47.3 55.3 65.0 55.9
同架构 Plan-then-Patch 42.0 50.5 61.0 51.2
去掉先评估后增长,单次前置计划 33.3 42.7 55.0 43.7
去掉选择性传播 34.7 44.7 57.0 45.5
去掉 QueryDoc 39.3 47.6 60.0 49.0
去掉 InteractionTranscript / RecallTool 43.3 52.4 63.0 52.9

原文 Table 2 的各行均为单次 greedy,Overall 为三个基准的非加权平均。同架构 Plan-then-Patch 保留执行者、工具、上下文组件与三次尝试机制,仅改变跨轮规划方式:先建立完整图,再允许 refine 或添加节点。它不等于完全禁止后续调整的单次计划消融,后者下降更大。

Qwen3-8B 训练配置 \(\alpha\) 结构惩罚 BrowseComp-Plus GAIA xbench-DeepSearch Overall
DAGRPO,三 seed 均值 0.50 开 49.6 53.4 65.7 56.2
去掉拓扑信用,单 seed 1.00 开 47.3 51.5 64.0 54.3
去掉合规惩罚,单 seed 0.50 关 48.0 52.4 65.0 55.1
完全取消链外信用,单 seed 0.00 开 44.0 49.5 61.0 51.5
GRPO 基线,三 seed 均值 1.00 关 46.0 50.8 63.0 53.3

原文 Table 3 的完整方法与 GRPO 行为三 seed 均值,其余是同预算单 seed。去掉拓扑信用和合规惩罚的 Overall 变化按原表分别为 −2.0、−1.1;前者可能与已四舍五入的 Overall 相减相差 0.1。较小的单基准差距落在 seed 波动量级,不能据此宣称每个组件都经过独立显著性检验。

关键发现

  • 最大的无训练消融损失来自取消增量规划:三个基准下降 14.0 / 12.6 / 10.0 个百分点。选择性传播的损失其次,说明局部依赖上下文与正确规划时机同样重要。
  • 摘要不是唯一信息通道。保留完整记录并允许 RecallTool 兜底,在较低调用覆盖率下仍带来 4.0 / 2.9 / 2.0 个百分点的总体优势,但表格差值不能直接认定为每个调用任务上的因果效果。
  • 同架构效率比较中,完整 DAGent 的总输入加输出 token 为 1.20M / 0.66M / 0.44M,Plan-then-Patch 为 1.68M / 0.85M / 0.52M;后者更贵且更不准确。步骤按每批最长执行轨迹加规划轮数计,不是总工具调用数或延迟。
  • Flash-Searcher 的 token 和耗时低于 DAGent,因此本文不是“对所有方法都更便宜”。更稳妥的结论是,在同架构或每节点独立上下文的比较中,增量规划改善了准确率与实际成本;各工作流没有共同的整任务成本上限。
  • \(\alpha=0\) 比 GRPO 基线更差,说明未进入答案链的探索不能全部视为无用。完整方法在每个基准上优于单 seed 的其他衰减设置,但精确最优系数仍可能随任务和训练规模改变。

亮点与洞察

  • 规划时机本身是算法变量。 DAG 并行化解决“怎样执行”,先评估后增长进一步解决“现在是否值得创建这条分支”。把弱证据作为下一轮输入,而不是异常兜底,是这篇论文最有迁移价值的思路。
  • 只追加的图同时服务执行与训练。 不改写历史依赖,使训练可以直接读出运行时真实的证据流。其价值不是证明节点贡献,而是得到一个低成本、可复现的结构代理。
  • 摘要与可追溯记录承担不同任务。 QueryDoc 降低日常上下文负担,InteractionTranscript 留住核验材料。两者不是互相替代的记忆方案,而是默认接口与按需回看的分工。

局限与展望

  • 作者明确说明方法原生处理文本;GPT-5 的 GAIA 完整 165 题实验通过图像、文档与音频 inspector 把附件转成文字,并非规划循环直接进行多模态证据判断。其结果不能混入主表的 103 题纯文本 GAIA。
  • 检索器未返回的证据无法凭规划创造,搜索引擎、嵌入和页面抽取质量仍是瓶颈。QueryDoc 的置信度也是执行模型自报,并未证明具有概率校准意义。
  • 答案祖先闭包忽略“排除了错误候选但未被接入答案”的潜在贡献;结构违规与低准确率的关联也可能受任务难度混杂。可探索小规模子图重跑、反事实核验来校准这类代理。
  • 三个基准主要验证可判定的封闭答案,不支持直接推广为长篇开放研究报告质量提升。引用覆盖、证据冲突处理和报告完整性需要新的评测。
  • RL 仅覆盖 Qwen3-8B、LoRA 和 21 次更新,主训练比较只有三个 seed,组件消融多为单 seed。更大模型、长训练与全参数微调的收益仍未建立。
  • 只追加图保留了清晰历史,也使早期错误依赖不能直接修改。未来可区分不可变执行日志与可修订当前知识图,但需要重新定义两者之间的信用映射。

相关工作与启发

  • vs Flash-Searcher / FlowSearch:它们先形成覆盖任务的计划再根据执行结果修补;DAGent 只在依赖证据已运行后添加新任务。FlowSearch 的实际实现包含可删除节点的修补器,本文优势不只是击败一个完全静态图。
  • vs Summary / Fold Agent:前者重点延长单条轨迹的可用上下文,DAGent 以多父依赖和每节点独立上下文组织证据。两种思路可结合,但组合后需要控制摘要损失与扇入成本。
  • vs M-GRPO / Graph-GRPO / CCPO:M-GRPO 按角色归一化信用,Graph-GRPO 学习固定智能体集合的通信拓扑,CCPO 用反事实移除估计边际贡献。DAGRPO 则在运行中产生的任务 DAG 上,用答案祖先闭包在角色分离之外再细分执行信用。
  • 研究启发:可以将 refine 预算从固定三次改为由证据冲突、搜索成本和预期信息收益共同决定。这个方向需要真实反事实或信息增益评估,不能仅依据自报置信度重复调度。

评分

  • 新颖性: 4/5 — 增量证据条件规划与可记录的结构信用结合清楚,但仍建立在既有 DAG、ReAct 与 GRPO 组件上。
  • 实验充分度: 4/5 — 有同架构规划对照、工具统一和三 seed 主训练结果;组件单 seed 与开放报告缺评测限制了结论。
  • 写作质量: 4/5 — 规划时机、上下文和奖励的关系明确,结构代理与因果贡献的边界说明较诚实。
  • 价值: 4/5 — 适合复用到长程检索型多智能体,但检索质量、证据校准和训练规模仍决定可推广范围。