跳转至

AgentGrad: Intervention-guided Prompt Optimization for Multi Agent Systems

会议: NeurIPS 2026
arXiv: 2609.08572
领域: 多智能体系统
关键词: 提示优化、序贯干预、智能体级监督、文本梯度、语义抽象

一句话总结

AgentGrad 用单智能体干预寻找可修复失败的提示,以干预前后的中间输出差异提取文本梯度,再按共同纠错模式聚类与抽象;GPT-5-mini 五项任务平均较未优化提示提高 11.76 个百分点,但部分性能和成本概括需以表格中的例外为准。

研究背景与动机

多智能体系统的最终回答通常经过多个提示控制的步骤。前一个智能体可能负责检索或改写请求,后一个负责组合证据、求解或输出答案,因此一次系统失败既可能来自局部步骤,也可能来自步骤之间的信息传递。仅知道最终答案错了,并不能直接知道应该改哪个提示。TextGrad 一类方法把自然语言反馈传播给组件,GEPA 通过轨迹反思搜索提示,MIPROv2 则联合搜索指令与示例;这些方法提供了优化方向,却不一定先验证“只改变这个智能体,系统是否真的能够成功”。

这种不确定性会在两个环节积累。提取反馈时,如果对所有提示都提出修改建议,昂贵的候选评估可能花在并不能修复当前失败的组件上;即便选中了一个提示,仅凭最终答案的对错也缺少该智能体中间输出应当变成什么样的直接证据。汇总反馈时,随机挑来的多个失败又可能要求不同甚至互相干扰的修改,例如隐私改写中的实体漏删与另一类输出格式问题。把它们直接拼接,得到的往往不是一个清楚的、可验证的修改方向。

AgentGrad 把这两个问题接起来处理:先临时给一个智能体提供训练提示,观察整个系统能否被修复;只有成功的干预才提供该智能体的候选监督,再把相似的局部纠错要求抽象成可复用的提示规则。这里追求的是找到当前轨迹中的有效修复靶点,不是证明一个唯一的因果根因。核心 idea:用单智能体干预得到“改哪里、改成什么”的局部证据,再把相似证据抽象为通用提示更新,并通过局部与验证集两道门检验。

方法详解

整体框架

输入是一个已有的多智能体系统、各智能体的当前提示、训练集、验证集以及任务奖励函数。输出仍是同一个系统的一组提示,不涉及更新模型权重,也不增加部署时必需的干预模块。每轮先用当前系统执行训练样本,收集奖励未达最大值的失败轨迹,再依次完成修复靶点定位、局部反馈提取、语义聚合和候选提示验证。

这个流程有两种容易混淆的“顺序”。定位时,从最后执行的智能体往前测试,每个测试只干预一个智能体;保留下来的是尚未修复的样本集合,而不是前一次加入 hint 的系统状态。更新时,则按照语义簇大小从大到小提出候选,只有通过两道评估的候选才真正替换提示。因此,临时干预的输出不等于最终部署提示,候选提示也不等于已接受更新。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["训练轨迹与失败<br/>训练标签构造 hint"] --> B["逆序单智能体干预"]
    B --> C["输出对比监督"]
    C --> D["语义聚类与抽象"]
    D --> E["双门验证更新"]
    E -->|预算内下一轮| A
    E -->|保留已接受提示| F["部署推理<br/>新输入,无 hint"]

图中的标签、干预和输出对比属于离线提示优化。部署时,新输入只经过原有智能体及其优化后的提示;训练 ground truth 不会随着输入注入系统。验证集用于筛选可推广的修改,测试集用于报告优化结束后的性能,三者不能互换。

关键设计

1. 逆序单智能体干预:先确认一个局部改变是否足以修复系统

对某个失败,AgentGrad 从最后一个智能体开始,在它的当前提示后临时追加 hint,然后观察完整任务奖励是否达到最大值。若成功,就把该失败分配给这个智能体,不再为同一个样本继续向前寻找;若仍失败,才尝试更早的智能体。逆序的理由是作者观察到失败较多集中在靠后的智能体,优先测试这些位置可以减少预期干预次数,但这不是对所有系统都成立的结构定理。

对剩余失败集合的递推,可以用原文的修复集合定义说明:

\[ \mathcal{T}^{n}=\big\{(x_i,y_i)\in\mathcal{F}^{n+1}\mid r\big(\Pi^{(n,\mathcal{H})}(x_i;\mathcal{P}),y_i\big)=r_{\max}\big\}. \]

这里的干预系统只改变第 \(n\) 个智能体的行为,其他智能体仍使用当前提示;下游则根据被改变的中间输出继续执行。修复集合从尚未解决的失败集合中移除,使每个样本在本轮最多贡献给一个选中的靶点。不能把这个集合收缩读成“先修改最后一个智能体,再累积修改倒数第二个,直到整个系统被同时修好”。

Hint 从样本的真实答案或最终输出应满足的约束构造,并结合数据集说明、系统结构和智能体角色。它提供的是训练时的额外信息,不是可用于无标签新任务的万能修复器。若从后往前测试完仍不能修复,样本本轮不产生梯度;下一轮重新执行训练集时仍会再遇到它,并非永久删除难例。

这个靶点定义回答的是“在当前输入、上下文、hint 和测试顺序下,哪里存在一个足以修复结果的局部改变”。更早的智能体也可能有问题,另一个智能体也可能同样能够修复;晚期智能体甚至可能补偿上游错误。因此,“识别了可修复靶点”比“发现唯一责任智能体”更准确,也限定了后续监督的解释范围。

2. 输出对比监督:把一次成功干预转成中间行为的纠错证据

普通任务标签只能告诉优化器最终输出应是什么,未必告诉检索、改写或证据整合步骤应产生什么中间结果。AgentGrad 保存选中智能体在原失败执行中的输出,以及在同一输入上下文下加入 hint 后的修正输出。后者虽然是模型生成的,但其对应轨迹已经通过系统级成功检验,因而作为智能体级伪标签,比只看最终错误描述更贴近要改的提示。

梯度提取器同时读取当前提示、该智能体的输入、原输出和修正输出:

\[ \delta_i^n=\mathrm{LLM}_{\nabla}\!\left(p^n,x_i^n,\hat{y}_i^n,\tilde{y}_i^n\right). \]

输出是自然语言纠错建议:提示需要补充哪种规则,才能更可能生成修正行为,而不是原失败行为。这个“文本梯度”是优化方向的类比,不是真正对离散提示求导,也不是通过反向传播更新 LLM 参数。相同输入上下文让对比集中在行为变化上,但不能保证伪标签是唯一正确或最简的中间实现。

原文称这个提取步骤不需要显式 loss,是因为原输出与伪标签的差异直接充当局部监督,不必再单独写一个系统级损失描述给提取器。整个框架依然使用真实答案或任务约束构造 hint,并依赖奖励判断成功、失败和更新收益。因此,loss-free 不能解释成 label-free,更不能解释成没有监督或评估器。

3. 语义聚类与抽象:把个例建议变成一个共同纠错方向

针对每个智能体,聚合器收集本轮分配给它的样本级文本梯度,在一次 LLM 调用内同时完成语义分组和组内抽象。它不是先随机划分小批次再直接串联所有建议,而是让共享纠错模式的建议进入同一簇,并为该簇输出一个概括性的文本梯度。每个簇同时对应产生这些建议的训练失败样本,构成用于检验候选修改的语义小批次。

抽象需要保留真正共同的行为规则,而不是罗列案例实体。以隐私改写为例,“某条样本没遮盖组织名”“另一条没遮盖位置”“第三条把看起来像虚构的人名当成安全内容”可以共同指向标识性实体的遮盖策略。把这些信号概括为实体级规则,比把三个具体字符串逐个塞进提示更有机会迁移;不共享这个问题的反馈应留在其他簇中。

簇数量由聚合器决定,作者通过簇大小的软下限调节抽象粒度。推荐下限按 \(5\to3\to1\to5\to\cdots\) 循环:较大下限鼓励寻找跨样本规律,较小下限容纳细粒度或罕见纠错方向。它不是固定分成 5、3、1 个簇,也不是硬性要求每个簇都达到该大小;若梯度太不相似,允许更小的簇,避免为了满足数量而混合无关失败。

这一步的价值不只是缩短反馈文本。它把“多个案例各自要求什么”改写成“这些案例共同要求提示学会什么”,让提示优化器面对一个更连贯的修改方向。与此同时,聚类与抽象仍是 LLM 判断,可能合并过度或漏掉边界条件,所以其输出不能直接当作正确更新,必须经过后续评估。

4. 双门验证更新:先修好对应模式,再证明修改能推广

所有语义小批次按大小递减排列,优先尝试影响更多样本的规则,再处理更具体的修复。提示优化器读取某个智能体的当前提示和对应抽象梯度,生成候选提示;评估系统只替换这个提示,其他智能体的提示保持当前状态。这个阶段与定位中的临时 hint 不同:候选是试图把纠错策略写进长期使用的指令,而不是给某个样本提供答案。

第一道门在产生该梯度的语义小批次上比较新旧系统的平均奖励。只有严格提高才触发验证集评估;第二道门要求验证集的平均奖励也严格提高。两道门均通过,才接受更新并改变当前提示集合;否则丢弃候选,继续其他梯度。第一道门检查更新是否落实了指定纠错模式,第二道门拦住只记住当前训练案例或损伤其他输入的修改。

两道门的逻辑可直接写成:

\[ \operatorname{accept}(\mathcal{P}_{\mathrm{new}})\iff R_{\mathcal{D}_j^n}(\mathcal{P}_{\mathrm{new}})>R_{\mathcal{D}_j^n}(\mathcal{P})\ \land\ R_{\mathcal{D}_{\mathrm{val}}}(\mathcal{P}_{\mathrm{new}})>R_{\mathcal{D}_{\mathrm{val}}}(\mathcal{P}). \]

其中 \(R\) 是相应数据集上的平均任务奖励。这是验收规则,不是可微损失;原文的严格大于也不等于带置信区间的显著性检验。循环受 rollout 预算约束,预算内反复重建失败集合。已有更新会改变后续轮次的轨迹及可修复样本,所以反馈与靶点都需要随当前系统重新获得,而不是一次定位后永远固定。

一个完整示例

原文图 5 给出隐私请求改写的定性案例:一个智能体应把敏感标识替换成明确占位符,但原输出仍保留组织名称、地理位置,或看起来像虚构的人名。系统失败后,首先逆序测试候选智能体;这里关注的是改写智能体被单独加入训练 hint 后,能否输出遮盖后的请求并使整个任务成功。

成功干预产生修正输出。提取器比较原输出与修正输出,把“这次漏了某个实体”改成可用于修改提示的建议。图中的三个相关案例被聚到一组,聚合器提炼出共同的标识遮盖规则;另一个纠错信号不同的案例被排除,不为了扩大簇而混进来。

优化器随后尝试把该规则加入改写提示,并在这组原失败样本上检验无 hint 的新提示是否有效。若局部奖励提高,再看验证集是否也提高;两者都成功才保留提示。这个例子说明的是机制,图 5 没有给出该候选的具体奖励变化或验收次数,不能把它包装成一条带数值的实测训练日志。

损失函数 / 训练策略

学习对象是提示集合,目标是在预算允许的系统 rollout 内找到验证奖励更高的提示,最后在保留测试集上评估。失败由奖励低于最大值定义,而不是仅由一个人为编写的“错误说明”定义;连续奖励任务中,未达最大值的样本也可能进入失败集合。

任务模型与优化组件使用同一 backbone:GPT-5-mini 实验中的任务执行、梯度提取、聚合和提示修改都使用 GPT-5-mini,Qwen3-8B 实验则都使用 Qwen3-8B。各优化算法采用相同 backbone 的设置,避免让某个方法单独获得更强的优化器模型;这不意味着不同 backbone 的成本或所有优化步骤的调用量相同。

本地缓存为 v2,方法与实验正文完整可读,但在参考文献后结束,没有任务包所称的附录。正文给出 rollout 预算这一约束,却没有具体预算值、所有数据划分大小或完整任务评分细节。因此不补写这些超参,也不把后面的时间、成本或迁移实验视为已经核实的同预算对照。

实验关键数据

主实验

以下按任务列出 AgentGrad 与同 backbone 的最强已报告对手;原始表 1、2 还包含 MIPROv2、TextGrad、GEPA 和未优化提示。数值是任务分数的百分数尺度,报告为 3 个随机种子的均值 ± 标准误,不是标准差;不同任务采用不同奖励,不能把数值大小直接当作任务难度排名。

Backbone 数据集 AgentGrad 最强对照及分数 差值(百分点)
GPT-5-mini HotpotQA 73.89 ± 1.09 GEPA:68.33 ± 1.55 +5.56
GPT-5-mini HoVer 64.78 ± 1.44 TextGrad:63.22 ± 1.47 +1.56
GPT-5-mini PUPA 95.17 ± 0.49 GEPA:91.87 ± 1.55 +3.30
GPT-5-mini IFBench 76.08 ± 0.45 GEPA:75.23 ± 0.32 +0.85
GPT-5-mini MATH 87.62 ± 0.09 GEPA:86.37 ± 0.50 +1.25
Qwen3-8B HotpotQA 60.45 ± 1.68 MIPROv2:58.33 ± 2.37 +2.12
Qwen3-8B HoVer 52.11 ± 1.66 TextGrad:51.44 ± 0.78 +0.67
Qwen3-8B PUPA 91.51 ± 0.72 GEPA:91.03 ± 1.71 +0.48
Qwen3-8B IFBench 41.42 ± 0.99 TextGrad:42.52 ± 0.45 −1.10
Qwen3-8B MATH 85.81 ± 0.25 GEPA:85.05 ± 0.48 +0.76

GPT-5-mini 下五项任务均为表中最高均值,较未优化提示的五任务平均增益为 +11.76 个百分点;Qwen3-8B 的对应平均增益为 +9.67。后者虽然平均增益最佳,但 IFBench 不如 TextGrad,原文“两个 backbone 上全部任务都胜出”的文字概括不符合表 2,不能照抄成无例外结论。

消融实验

表 3 在 GPT-5-mini 的 HotpotQA 与 PUPA 上逐步加入干预靶点定位(TI)、智能体级监督(AS)和语义文本梯度抽象(STGA)。Vanilla 是该消融的起点,不应与主表 TextGrad 当成完全相同的实验配置。

配置 HotpotQA PUPA 说明
Vanilla 67.89 ± 0.80 85.74 ± 1.65 无三项新增组件
TI 69.33 ± 0.38 89.58 ± 1.89 单独加入干预靶点定位
TI + AS 70.89 ± 0.62 92.23 ± 0.68 使用修正中间输出监督
TI + STGA 71.89 ± 0.29 93.13 ± 0.53 不加 AS,加入语义抽象
TI + AS + STGA 73.89 ± 1.09 95.17 ± 0.49 完整 AgentGrad

相对 TI,加入 AS 在两项任务上提高 1.56、2.65 个百分点,加入 STGA 提高 2.56、3.55;完整方法优于这些部分组合。这里支持的是组件具有互补作用,不是一个包含所有单组件、所有组合的完整因子实验。

关键发现

表 4、5 的时间与成本仅针对 GPT-5-mini。以下保留 GEPA 作为固定参照,并额外注明逐任务更便宜的例外;它不是所有任务上同时最快、最便宜的 baseline。时间/成本、主性能和附加测试迁移的预算与运行范围不能混为一组等预算测量,本缓存缺少进一步核验所需的预算细节。

数据集 时间:AgentGrad / GEPA(分钟) 成本:AgentGrad / GEPA(美元) 成本或参照边界
HotpotQA 109 / 346 30.43 / 35.31 比 GEPA 降低 13.8%
HoVer 244 / 390 52.18 / 58.64 比 GEPA 降低 11.0%
PUPA 151 / 319 20.53 / 29.29 MIPROv2 为 19.81,更便宜
IFBench 90 / 269 19.45 / 23.28 比 GEPA 降低 16.5%
MATH 88 / 360 13.13 / 27.12 TextGrad 为 20.87,才是第二低成本
原表平均 136 / 337 27.14 / 34.73 对平均 GEPA 时间约 2.5 倍、成本低 21.8%
  • 图 4 把小批次改善率定义为“所有候选中,改善对应小批次并触发验证的比例”,验证改善率定义为“验证调用中,进一步改善验证奖励的比例”。在 HotpotQA/PUPA 平均上,AgentGrad 分别为 0.72、0.27,TextGrad 为 0.44、0.21,GEPA 为 0.28、0.14;没有图中的确切分母,不能反推出接受更新总数。
  • 表 6 是优化后提示直接迁移到同领域未见 benchmark、无进一步优化的附加测试,不是重新在目标任务训练。HotpotQA → 2WikiMultiHopQA 为 51.22 ± 1.63,对照 GEPA 为 44.89 ± 4.96;MATH → OlympiadBench 为 68.33 ± 1.21,对照 GEPA 为 66.00 ± 1.43。
  • 表 5 的平均成本下降 21.8% 是平均成本之间的比较,不是每任务都节省 21.8%。PUPA 比最低成本 MIPROv2 反而更贵;MATH 底行写 37.1%,但相对次低成本 TextGrad 的下降由表值计算约为 37.1%,相对 GEPA 则约为 51.6%,两种参照需区分。

亮点与洞察

  • 干预不仅用于给失败贴责任标签,还生成可对比的中间输出监督。它把系统级反馈转换成局部提示规则,但监督的可信度仍受 hint 与任务评估器限制。
  • 聚合器一次调用同时分组与抽象,避免把无关案例混成一份更新说明。软簇大小循环提供了从常见模式到罕见修复的不同粒度,而不是硬性丢弃小簇。
  • 两道评估把“落实纠错方向”和“不过拟合个例”分开检查。图 4 的局部与验证改善率为这一分工提供经验解释,但还不足以单独证明全部速度优势来自某一个组件。

局限与展望

  • 单智能体 hint 能修复的失败才提供本轮监督。必须同时改变多个智能体才能解决的错误可能持续被排除,重新访问难例不等于已解决组合干预问题。
  • 逆序、首次成功的选择规则有定位偏好。可进一步比较不同干预顺序、多个可修复靶点与修复稳定性,而不把当前靶点升级为唯一因果结论。
  • hint 依赖真实答案或可验证约束,伪标签还可能包含样本特定信息。无标签任务、弱评估器任务和标签泄漏风险都需要独立检验。
  • 仅 3 个种子的标准误及严格改善门槛,不构成普遍显著性保证。小幅性能差距尤其需要更多重复和明确的统计检验。
  • 本地文本没有附录与具体预算,不能充分复现成本、时间和迁移实验的运行配置;表 2 的 IFBench 例外也限制了“每任务最佳”的表述。

相关工作与启发

  • vs TextGrad / ProTeGi:都把自然语言反馈当作提示修改方向;AgentGrad 先用成功干预定位靶点并生成中间伪标签,再做语义抽象,不是获得了真实数值梯度。
  • vs GEPA:GEPA 利用轨迹反思与进化式提示搜索;AgentGrad 强调单智能体修复证据和共同纠错模式。主表均值与附加迁移支持其效果,但不能忽略 IFBench 例外或未知预算。
  • vs MIPROv2:MIPROv2 联合搜索指令和示例;AgentGrad 的重点是从失败轨迹生成局部更新监督。成本优势不是逐任务绝对成立,PUPA 上 MIPROv2 更便宜。
  • 对失败归因方法的启发:诊断产生的反事实修正输出可成为优化数据,但应区分“足以修复的位置”和“唯一错误来源”,并保存干预条件以检查监督可靠性。

评分

  • 新颖性: 4/5 — 将干预定位、局部伪标签和语义抽象串成提示优化闭环。
  • 实验充分度: 4/5 — 两个 backbone、五任务和组件消融较全面,但预算细节在本缓存缺失。
  • 写作质量: 3/5 — 方法可复述,性能概括存在表文不一致,部分效率参照需仔细区分。
  • 价值: 4/5 — 为已有多智能体流水线提供无需模型权重更新的可解释改进路线。