0%

MASPO:面向 LLM 多智能体系统的联合提示词优化

笔记日期: 2026-05-11
笔记作者: Zhongzhu Zhou
论文: MASPO: Joint Prompt Optimization for LLM-based Multi-Agent Systems
论文作者: Zhexuan Wang, Xuebo Liu, Li Wang, Zifei Shan, Yutong Wang, Zhenxi Song, Min Zhang
arXiv: 2605.06623v1,2026-05-07
会议/状态: ICML 2026
本笔记使用的论文文件: src/related-documents/papers/2605.06623-MASPO.pdf


简短结论

这篇论文讨论的是一个很实际的问题:当我们把多个 LLM agent 组成一个协作系统之后,怎样自动优化每个 agent 的提示词,而不是只靠人工凭经验写 prompt? 单个模型调用的提示词优化相对直接:换一个 prompt,看最终答案是否更好。但多智能体系统不一样。一个上游 agent 的输出可能看起来很符合自己的角色,却会误导下游 agent,最终让整个系统失败。

论文把这种现象称为 local-global misalignment,也就是“局部目标”和“整体目标”之间不一致。MASPO 的核心思想是:优化某个 agent 的 prompt 时,不能只看它自己的输出是否更好,还要看它的输出是否真的帮助了后续 agent,以及最终系统答案是否更好。

因此,MASPO 同时使用三类信号:

  1. Local Validity:目标 agent 自己的输出有没有变好;
  2. Lookahead Potential:直接后继 agent 在接收新输出后有没有变好;
  3. Global Alignment:最终系统答案有没有变好。

这三类信号被合成为一个 joint reward。然后,MASPO 会专门挖掘那些“局部看起来成功、但下游或全局失败”的样本,把它们放进 misalignment buffer,作为后续提示词生成时的硬例子。搜索过程使用 evolutionary beam search,同时用 beam refresh 处理多 agent 联合优化时的非平稳问题。

从结果看,MASPO 在数学、复杂推理和代码生成共 6 个 benchmark 上都取得了比较稳定的提升。Sequential MAS + MASPO 的平均准确率是 70.39,Hierarchical MAS + MASPO 的平均准确率是 71.05。论文报告相对于最强 prompt optimization baseline 的平均提升约为 2.90 个百分点。在 GPQA 这类更依赖协作推理的任务上,提升尤其明显。

我读完后的主要理解是:MASPO 的价值不在于“找到了某个神奇 prompt”,而在于它把优化对象从单个 agent 的局部表现,提升到了整个协作链条。对多智能体系统来说,一个 prompt 不是孤立字符串,而是信息流中的接口。一个好的 prompt 不只是让 agent 自己说得更像样,还要让下游 agent 更容易继续完成任务。


1. 前置知识

1.1 什么是 LLM 多智能体系统

LLM 多智能体系统可以理解为:把多个模型调用组织成一个有分工的工作流。每个 agent 有自己的角色和提示词,例如 planner、solver、reflector、critic、coder、verifier、summarizer 等。一个 agent 的输出会成为另一个 agent 的输入上下文。

最简单的结构可能是:

1
2
3
4
5
6
7
问题
|
v
Solver agent:先给出候选解法
|
v
Reflector agent:检查候选解法并给出最终答案

稍微复杂一些的结构可能是:

1
2
3
4
5
6
7
8
9
10
        Planner
/ \
v v
Specialist A Specialist B
\ /
v v
Verifier
|
v
Final answer

这种设计的好处是,不同 agent 可以被提示词引导到不同思维模式:有人负责规划,有人负责推导,有人负责挑错,有人负责写代码,有人负责最终验证。问题在于,这些 agent 不是相互独立的。上游输出的内容、格式、粒度、遗漏和错误,都会影响下游 agent 的行为。

因此,多智能体系统的质量不只是“每个节点单独强不强”,还取决于“节点之间的信息接口是否好用”。MASPO 正是围绕这个接口问题展开的。

1.2 为什么 prompt optimization 重要

手写 prompt 在原型阶段很方便,但很难系统化。人可以写出一个看起来不错的角色描述,但它可能在边界案例上失败;一个 prompt 可能适合数学题,却不适合代码题;一个 prompt 可能让 agent 说得更详细,却破坏最终答案格式。

Prompt optimization 的目标是把这个过程自动化:生成候选 prompt,运行任务,比较效果,保留更好的候选,再继续迭代。

单 agent 场景通常可以写成:

1
候选 prompt -> 模型输出 -> 和目标答案/评分标准比较 -> 得到分数

这里的评分可以来自 ground truth、单元测试、LLM judge、人类偏好、rubric 等。但多 agent 场景更复杂,因为某个 prompt 对最终答案的影响可能是间接的。

例如,planner 的输出没有唯一标准答案。它可能逻辑清楚,但太抽象,导致 coder 无法直接写出正确代码。也可能看起来局部没问题,却漏掉了一个关键约束,让下游 verifier 走错方向。此时,如果只看 planner 本身是否“符合角色”,就会给出错误奖励。

1.3 什么是 credit assignment

Credit assignment 可以理解为“归因”:最终结果成功或失败,到底应该归功或归咎于哪个环节?在强化学习里,奖励通常出现在轨迹末端,模型需要判断前面哪些动作真正贡献了奖励。在 LLM 多 agent 系统里,也有类似问题。

假设最终答案错了,原因可能有很多:

  • planner 拆题时遗漏了限制条件;
  • solver 算错了一步;
  • reflector 过度怀疑,把正确答案改错了;
  • coder 写出了逻辑正确但格式不符合 benchmark 的代码;
  • verifier 只看到了表面格式,没有发现深层错误。

如果只看最终答案,就很难知道是哪一步出了问题。如果只看某个 agent 的局部输出,又看不到它是否帮助了整体系统。MASPO 的 joint reward 就是想补上两者之间的空白。

论文把一个 agent 的贡献拆成三层:

1
2
3
local validity      -> 这个 agent 自己有没有输出得更好?
lookahead potential -> 下一个 agent 用了它的输出后有没有变好?
global alignment -> 最终系统答案有没有变好?

这个拆法很关键。它说明 MASPO 不是单纯在优化“局部文本质量”,而是在优化信息在协作链条里的可用性。

1.4 拓扑结构和非平稳性

多智能体系统的拓扑结构就是 agent 之间的通信图。链式结构是一种 topology,层级式结构也是一种 topology。还有一些系统会动态路由、剪枝 agent、选择不同工具或不同模型。

当我们逐个优化 agent prompt 时,会遇到一个问题:其他 agent 的 prompt 也在变化。比如先优化了 agent 1,那么 agent 2 后续接收到的上下文就变了;再优化 agent 2 后,agent 1 原来某个输出的价值也可能变了。也就是说,每个 prompt 面对的“环境”不是固定的。

这就是 MASPO 论文里强调的 non-stationarity。为了处理它,论文采用两类机制:

  • 按照拓扑顺序优化 agent,尽量尊重因果依赖;
  • 当一个 agent 被再次访问时,重新评估 beam 里的候选 prompt,避免使用过期分数。

第二点就是 beam refresh。它的直觉很朴素:一个 prompt 候选以前表现好,可能只是因为以前的上游上下文刚好适合它。系统里其他 prompt 改变后,旧分数就不一定可靠。

Beam search 的基本思想是:搜索时不要只保留当前最好的一个候选,而是保留若干个有潜力的候选。Evolutionary search 则通过改写、变异、组合等方式生成新候选。

MASPO 把这两者结合起来。对每个目标 agent,它维护一个 prompt candidate beam。每轮从 beam 里的父 prompt 出发,根据真实执行 trace 生成若干新 prompt,然后用 joint reward 打分,保留 top-K。

这里的“真实执行 trace”包括:

1
2
3
query q
输入给目标 agent 的上下文 C
目标 agent 的输出 o

也就是说,MASPO 不是盲目改 prompt,而是让 optimizer model 观察这个 prompt 在实际任务中的行为,再提出改写建议。さらに重要的是,它会额外注入 misalignment cases,也就是那些局部成功但协作失败的 hard cases。


2. 论文到底做了什么

MASPO 提出的是一个面向 LLM 多智能体系统的联合 prompt optimization 框架。论文的出发点是:在 MAS 中,role-specific prompt 不只是决定每个 agent 怎么说话,它还决定 agent 之间如何协作。独立优化每个 prompt 会忽略跨 agent 的依赖关系。

可以把几种思路对比如下:

1
2
3
4
5
6
7
8
9
10
11
12
人工设计 MAS
人手写角色、提示词和通信结构。
适合快速原型,但稳定性依赖经验。

把单 agent prompt optimizer 套到 MAS 上
主要看局部输出或最终答案。
容易忽略中间 agent 的因果贡献。

MASPO
同时看 local、lookahead、global 三类信号。
专门挖掘 local-global misalignment。
用动态 beam search 处理多 agent 联合优化。

论文 Figure 1 给出了 MASPO 的整体流程,可以简化为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
采样执行 trace
|
v
prompt optimizer 生成候选 prompt
|
v
LLM evaluator 比较候选行为和参考行为
|
v
joint reward = local + lookahead + global
|
v
挖掘 misalignment cases
|
v
evolutionary beam search 保留更好的候选
|
v
beam refresh 重新校准旧候选分数

这套流程的关键是:MASPO 不把中间 agent 当成孤立节点来评估,而是看它对整条协作链的因果贡献。比如一个 reflector 可能写得很有条理,但如果它经常把正确答案改错,那它对系统是不好的。一个 coder 可能写出看似完整的解释,但如果最后代码块不符合 benchmark 的抽取规则,系统也会失败。

因此,这篇论文最值得关注的点不是“prompt 搜索”本身,而是它提出了一个更适合 MAS 的 prompt 评分方式。


3. 方法细节

3.1 用有向图描述多智能体系统

论文把多智能体系统表示成有向图 G=(V,E)G=(V,E)。每个节点 viv_i 是一个 agent,每条边 (vj,vi)(v_j, v_i) 表示 agent vjv_j 的输出会传给 agent viv_i 作为上下文。

每个 agent 有:

  • 一个 LLM 推理函数 fif_i
  • 一个角色提示词 pip_i
  • 来自前驱 agent 的上下文 CiC_i
  • 自己的输出 oio_i

论文中的生成过程可以写成:

oi=fi(pi,q,Ci),Ci=vjNin(vi)oj.o_i = f_i(p_i, q, C_i), \quad C_i = \bigoplus_{v_j \in N_{in}(v_i)} o_j.

也就是说,agent 会读取原始问题 qq 和前驱输出拼接得到的上下文 CiC_i,然后生成自己的输出 oio_i。所有 agent 的 prompt 组成一个集合 P={pi}i=1NP=\{p_i\}_{i=1}^{N}。整个系统的最终输出可以写作:

oglob=Φ(G,P,q).o_{glob} = \Phi(G, P, q).

优化目标是找到更好的 prompt configuration PP,让最终系统表现更好。但这个目标很难直接优化,原因包括:

  • prompt 是离散自然语言字符串,无法直接用梯度更新;
  • 多个 prompt 的组合空间很大;
  • 一个上游 prompt 的变化会改变下游 agent 的输入分布;
  • 中间 agent 往往没有 ground-truth 标签。

MASPO 的解决方式是:按拓扑顺序分 agent 优化,用 LLM 进行相对偏好比较,并把局部、下游、全局信号组合起来。

3.2 拓扑调度与 trace-guided proposal

MASPO 不会一次性同时优化所有 agent 的 prompt。它采用类似 coordinate ascent 的策略:按照通信图的拓扑顺序访问 agent,每次选择一个目标 agent,优化若干代,然后固定它,继续优化后继 agent,多个 round 后再回头重新访问。

这个做法比简单的一次性顺序优化更合理。因为如果只优化一遍,上游 agent 可能会过拟合到下游 agent 的初始状态;而下游 agent 后面发生变化时,上游 prompt 可能不再合适。MASPO 的 interleaved schedule 允许各个 agent 逐步共同适应。

对于一个目标 agent,MASPO 会收集执行 trace:

1
trace = (问题 q, 输入上下文 C, 当前 agent 输出 o)

这些 trace 会被送给 optimizer model。optimizer model 不是随机改写 prompt,而是观察这些真实行为后,提出更有针对性的 prompt 变体。论文把这称为 trace-guided generation。

直观地说,就是:

1
父 prompt + 实际执行 trace -> optimizer model -> 候选 prompt

主实验里,optimizer model 使用 Gemini-2.5-Pro,temperature 设为 0.7,以鼓励生成多样候选;evaluator model temperature 设为 0,以提高比较稳定性。

3.3 joint reward:MASPO 的核心

MASPO 的 joint reward 是全篇最核心的技术组件。对于候选 prompt pp' 和参考 prompt pp,MASPO 在一批样本上比较两者,并组合三类偏好信号。

可以把公式简化理解为:

R=αRlocal+βRlookahead+θRglobal.R = \alpha \cdot R_{local} + \beta \cdot R_{lookahead} + \theta \cdot R_{global}.

其中:

  • Local Validity:候选 prompt 是否让目标 agent 自己的输出更好;
  • Lookahead Potential:目标 agent 的新输出是否让直接后继 agent 表现更好;
  • Global Alignment:最终系统输出是否更好。

论文中使用 oioio'_i \succ o_i 这类偏好比较来表示“候选输出优于参考输出”。这些比较由 evaluator model 根据特定 rubric 产生。

这个设计的实用性在于:中间 agent 很多时候没有明确标准答案。比如 planner 的“最佳计划”是什么?reflector 的“最佳反馈”是什么?这些很难标注。但我们可以比较:用这个 planner 输出之后,下游 solver 是否更容易成功;用这个 reflector prompt 后,最终答案是否更可靠。

一个代码任务例子可以帮助理解:

1
2
3
4
目标 agent:代码规划器
局部输出:解题计划
后继 agent:代码生成器
最终系统:可运行的 Python 函数

一个计划可能局部看起来清楚,但太抽象,导致代码生成器写不出正确实现。Local Validity 可能给它高分,但 Lookahead Potential 会发现下游没有变好。MASPO 正是用这个中间信号来修正评价。

3.4 挖掘 misalignment cases

MASPO 把一种样本定义为 misalignment case:目标 agent 在局部比较上变好,但下游或最终输出没有变好。用自然语言说就是:

1
2
这个 agent 看起来做对了自己的事,
但它没有真正帮助系统协作成功。

论文中的条件大致可以理解为:

Local=1and(Lookahead=0  or  Global=0).Local=1 \quad \text{and} \quad (Lookahead=0 \;\text{or}\; Global=0).

这些样本会进入 BmisB_{mis}。后续生成 prompt 变体时,optimizer model 会优先看到一部分 misalignment cases。这样做的原因是,成功样本的信息量往往不高;它们说明系统哪里已经能工作,但不一定说明哪里需要修。相反,misalignment cases 直接暴露 agent 接口之间的断裂点。

在真实 agent 系统中,这类断裂很常见:

  • planner 没有把题目约束传递给 solver;
  • solver 写了推导,但没有清楚标出最终答案;
  • reflector 太激进,把正确答案改错;
  • coder 输出了说明文字,导致 benchmark 无法抽取函数;
  • verifier 只检查格式,没有检查逻辑。

MASPO 的 misalignment buffer 就像一个“协作失败案例库”。它让 prompt optimizer 不只是重复学习成功经验,而是专门针对接口失败修 prompt。

对每个目标 agent,MASPO 维护一个 top-K prompt beam。每个父 prompt 生成若干候选子 prompt。每个候选会被 joint reward 打分,然后累加到父节点分数上:

J(p)=R(p,pparent;B)+J(pparent).J(p') = R(p', p_{parent}; B) + J(p_{parent}).

之后,系统保留分数最高的候选。

这样做有两个好处:

  1. 不会过早锁死到单一搜索路径;
  2. 能把多批样本的证据累积起来,降低单批样本噪声。

论文默认 beam width 为 K=2K=2,每个父 prompt 生成 Ksub=2K_{sub}=2 个候选。这个搜索规模并不大,说明 MASPO 不是靠蛮力枚举,而是依赖 trace-guided generation 和 joint reward 提高搜索效率。

3.6 beam refresh:处理旧分数过期

Beam refresh 是一个细节,但很重要。假设 agent 2 的某个 prompt 在 agent 1 还是旧 prompt 时表现很好。后来 agent 1 被优化了,agent 2 接收到的上下文分布变了。那么 agent 2 旧候选的分数就可能失效。

MASPO 在重新访问某个 agent 时,会把 beam 里的候选 prompt 在当前上下文下重新评估,并和当前全局最佳 prompt 比较:

Jnew(p)=R(p,pbest;B)0.5.J_{new}(p) = R(p, p_{best}; B) - 0.5.

这里的关键不是减去 0.5 本身,而是“旧分数不能盲信”。Table 2 的 ablation 也支持这一点:去掉 beam refresh 后,Sequential MAS 平均分从 70.39 降到 68.53

我认为这个设计很符合多 agent 系统的实际情况。只要上游输出变化,下游 prompt 的价值就需要重新校准。


4. 实验设置

4.1 模型设置

主实验中,论文使用 Qwen3-8B 作为多智能体系统里各个 agent 的 backbone model。agent 运行在 standard non-thinking inference mode,以避免把模型自身 reasoning mode 的增强和 prompt optimization 的效果混在一起。

优化器和评估器使用 Gemini-2.5-Pro

  • optimizer model temperature = 0.7;
  • evaluator model temperature = 0;
  • agent inference temperature = 0。

论文还做了一个 self-optimized 设置:用 Qwen3-8B 自己作为 optimizer 和 evaluator,替代 Gemini-2.5-Pro。这个实验很有意义,因为现实中并不总能使用强 evaluator,或者成本上不允许大量调用强模型。

4.2 benchmark

论文覆盖了三类任务、六个数据集。

数学能力:

  • MATH-500;
  • AGIEval-MATH Level-5 subset;
  • AQuA。

复杂推理:

  • GPQA-Diamond。

代码生成:

  • MBPP;
  • HumanEval-ET。

这个组合比较适合检验 MASPO。数学题和 GPQA 需要多步推理,代码生成需要规划、实现、格式约束和验证。多 agent 工作流常常正是在这些任务上被使用。

4.3 baseline

论文比较了单 agent 和多 agent 两类 baseline。

单 agent 或非联合优化方法包括:

  • Vanilla prompting;
  • Chain-of-Thought;
  • CoT self-consistency;
  • Self-Refine;
  • AgentDropout。

多 agent 相关 baseline 包括:

  • Sequential MAS;
  • Hierarchical MAS;
  • 基于 TPE 的优化方法;
  • SPO,也就是一种 self-supervised prompt optimizer,被改造成用于 MAS。

这样的 baseline 组合可以回答几个问题:

1
2
3
4
多 agent 本身是否比单 agent 好?
prompt optimization 是否比手写 MAS prompt 好?
MASPO 是否比通用 prompt optimizer 更适合 MAS?
MASPO 是否只适用于某一种拓扑?

4.4 MASPO 默认超参数

论文主设置包括:

  • sample pool size D=50|D|=50
  • mini-batch size B=10|B|=10
  • beam width K=2K=2
  • 每个父 prompt 生成 2 个候选变体;
  • misalignment cases 最大注入数量 Kmis=3K_{mis}=3
  • joint reward 权重 α=0.4\alpha=0.4β=0.4\beta=0.4θ=0.2\theta=0.2
  • 每个拓扑 round 的 step size T=3T=3
  • round 数量 D=3D=3

这些设置说明 MASPO 不是依赖大量标注数据。论文希望证明:用几十个无标注或少量样本,加上 LLM-based preference evaluation,就可以优化多 agent prompt。


5. 结果与分析

5.1 Table 1:主结果

Table 1 是论文最重要的结果表。关键数字如下:

1
2
3
4
5
6
7
8
9
Sequential MAS baseline 平均分:       65.31
Sequential MAS + TPE 平均分: 66.49
Sequential MAS + SPO 平均分: 66.56
Sequential MAS + MASPO 平均分: 70.39

Hierarchical MAS baseline 平均分: 68.32
Hierarchical MAS + TPE 平均分: 68.47
Hierarchical MAS + SPO 平均分: 69.01
Hierarchical MAS + MASPO 平均分: 71.05

这说明两点。

第一,通用 prompt optimization 直接套到 MAS 上,提升有限。TPE 和 SPO 都有一些收益,但没有解决多 agent 的 local-global credit assignment 问题。

第二,MASPO 在两种拓扑上都有效。它不是只适用于某个链式结构。论文报告 MASPO 让 Sequential MAS 平均准确率提高 5.06 个百分点,让 Hierarchical MAS 平均准确率提高 2.73 个百分点。

在具体任务上,GPQA 的提升尤其明显。Sequential MAS 的 GPQA 从 47.73 提升到 58.08。HumanEval-ET 从 68.90 提升到 73.78。这类任务很依赖 agent 之间的有效协作,因此也更能体现 MASPO 的价值。

5.2 GPQA 为什么值得单独看

GPQA-Diamond 是复杂推理 benchmark。它不只是格式问题,也不是简单算术题。系统需要处理领域知识、排除干扰项、维护推理链一致性。

在 Table 1 中,Sequential MAS + SPO 在 GPQA 上是 49.52,而 Sequential MAS + MASPO 是 58.08。这个差距相当大。

我的理解是:GPQA 会放大局部优化的缺陷。一个 reflector 可能写得很自信,但把正确思路推翻;一个 solver 可能给出很长推理,但其中埋了错误前提;一个 planner 可能把题目拆得看似合理,但遗漏关键条件。MASPO 的 lookahead 和 global 信号更容易惩罚这些“表面合理但协作无效”的输出。

5.3 Table 2:ablation 告诉我们什么

Table 2 是理解方法最有用的表。完整 MASPO 平均分是 70.39。去掉关键组件后,分数会下降:

1
2
3
4
5
6
7
Serial Search:                  68.10
Single Cycle: 68.19
w/o Beam Refresh: 68.53
w/o Joint Evaluate: 67.77
w/o Misalignment Sampling: 69.68
w/ Success-Case Sampling: 69.29
Self-Optimized with Qwen3-8B: 67.70

下降最大的是 w/o Joint Evaluate。这强烈支持论文主张:MASPO 不是只靠搜索策略,而是靠更适合 MAS 的评价信号。只看局部或只看最终结果,都不足以优化中间 agent。

另一个有意思的结果是,采样 success cases 的效果比采样 misalignment cases 更差。这说明成功样本未必有高信息量。失败的协作接口更能告诉 optimizer 应该修哪里。

5.4 Figure 2 和 Table 4:local 与 lookahead 信号更关键

Figure 2 展示 joint reward 不同权重组合下的性能地形。Table 4 给出详细数字。最优设置是:

1
2
3
4
Local Validity      alpha = 0.4
Lookahead Potential beta = 0.4
Global Alignment theta = 0.2
平均准确率 = 70.39

这个结果很有启发性。Global Alignment 并不是不重要,但如果给 final signal 过高权重,效果反而不一定好。原因是 final signal 对中间 agent 来说太稀疏、太间接。Local 和 lookahead 给了更密集、更接近 agent 接口的反馈。

这也说明 MASPO 的 lookahead 设计不是装饰,而是 credit assignment 的关键部分。它回答的是:这个 agent 输出的东西,是否真的让下游 agent 更容易成功?

5.5 Figure 3:misalignment rate 会下降

Figure 3 跟踪不同优化深度下的 misalignment rate。MASPO 比其他变体更稳定地降低 misalignment rate。

这个结果重要,因为它不是单纯的最终分数。它说明 MASPO 确实在减少自己定义的失败模式:局部成功但协作失败。换句话说,MASPO 不只是偶然找到了高分 prompt,而是在针对性修复 agent 之间的信息接口。

5.6 Table 3:优化后的 prompt 可以迁移到更强模型

Table 3 做了 cross-model transfer。论文先用 Qwen3-8B 优化 prompt,然后把优化后的 prompt 直接迁移到更强模型上,不再额外微调:

1
2
3
4
DeepSeek-V3 MAS:          71.79 -> 75.86
GLM-4.6 MAS: 75.61 -> 78.41
Claude-Sonnet-4 MAS: 77.58 -> 79.73
Gemini-2.5-Pro MAS: 84.93 -> 87.14

这说明 MASPO 学到的可能不只是 Qwen3-8B 的某些特殊偏好,而是一类更通用的协作协议:solver 应该如何呈现推理,reflector 应该如何检查,code agent 应该如何输出,final answer 应该如何格式化。

对实践者来说,这个结果很有吸引力。一个可能的流程是:

1
2
用较便宜的模型做 prompt optimization
然后把优化后的 prompt 迁移到更强、更贵的模型上服务

当然,这不代表所有任务都能迁移,但至少论文提供了不错的初步证据。

5.7 Table 5:MASPO 可以和拓扑优化互补

Table 5 把 MASPO 加到 AgentDropout 上。AgentDropout 本身优化的是通信拓扑,也就是剪掉一些 agent 交互以提高效率和性能。结果是:

1
2
AgentDropout 平均分:        66.89
AgentDropout + MASPO 平均分:70.46

这说明两个优化维度是互补的:

  • topology optimization 决定谁和谁通信;
  • prompt optimization 决定每个节点应该怎么说、怎么协作。

一个更好的图结构仍然需要好的角色提示词;更好的提示词也可以在被剪枝后的图上继续发挥作用。

5.8 Table 6:sample pool size 在 50 左右趋于饱和

Table 6 研究 sample pool size:

1
2
3
30 samples:69.13
50 samples:70.39
70 samples:70.43

从 50 到 70 的提升很小。论文因此使用 50 作为默认设置。这个结果对实践有帮助,因为它说明 MASPO 不一定需要很大的样本池。真正的成本更可能来自反复调用 optimizer/evaluator,而不是准备大量样本。


6. 我认为论文做得好的地方

6.1 抓住了多 agent 系统的真实失败模式

MASPO 最有说服力的地方是问题定义。多 agent 系统的失败往往发生在接口上。某个 agent 的输出会成为另一个 agent 的上下文,因此输出的格式、粒度、假设和缺失都会被下游放大。

Lookahead Potential 把这个接口显式纳入评价。我认为这是一个很好的设计原则:优化 agent workflow 时,中间产物应该按“对消费者是否有用”来评分,而不是只按“产物本身是否看起来合理”来评分。

6.2 不完全依赖最终标签

MASPO 当然也看最终结果,但它没有要求每个中间输出都有人工标签。现实中,很多中间产物本来就没有标准答案。比如“最好的反思文本”或“最好的规划文本”很难定义。

MASPO 使用 evaluator model 做相对比较,虽然不完美,但很现实。它让多 agent prompt optimization 有了可操作路径。

6.3 认真处理了非平稳性

Beam refresh 是一个小但关键的设计。许多优化方法默认评价环境固定,但多 agent prompt optimization 里环境会随着其他 prompt 变化。MASPO 在重新访问 agent 时刷新 beam 分数,是一个正确的工程直觉。

6.4 实验覆盖面还不错

论文不只在一个任务上展示效果,而是覆盖数学、复杂推理和代码生成。再加上 cross-model transfer、AgentDropout 组合实验、sample size 分析,整体证据链比较完整。


7. 局限性与边界条件

7.1 evaluator model 的可靠性仍是关键假设

MASPO 依赖 evaluator model 比较 local、lookahead 和 global 输出。如果 evaluator 有偏差、不稳定,或者不擅长某个领域,reward 就会变噪。

主实验使用 Gemini-2.5-Pro,这增强了评价质量,但也引入了成本和可用性问题。论文的 self-optimized 版本使用 Qwen3-8B 自己做 optimizer/evaluator,平均分是 67.70,低于完整 MASPO 的 70.39。这说明方法在弱 evaluator 下仍有用,但 evaluator 质量确实影响结果。

7.2 成本模型还不够完整

论文给出了 sample pool、batch size、beam width 等设置,但没有非常详细地说明完整优化流程的 wall-clock time 或 API 成本。

实际部署时,用户会关心:

  • optimizer 调用了多少次;
  • evaluator 调用了多少次;
  • 每次 trace 的 token 数量;
  • agent 数量增加时成本怎么增长;
  • 优化后的 prompt 能否被足够多任务复用,从而摊薄成本。

我认为 MASPO 更适合 prompt 会长期复用的场景。如果只是一次性小任务,优化成本可能不划算。

7.3 实验拓扑仍然比较规整

Sequential MAS 和 Hierarchical MAS 很重要,但现实 agent 系统可能更复杂:动态路由、工具调用、检索、长期记忆、外部 API、条件分支、执行反馈等。MASPO 的图模型能表达一部分结构,但真正的工具型 agent workflow 可能更乱。

未来很值得把 MASPO 放到软件工程 agent 上测试,例如仓库浏览、补丁生成、单元测试执行、错误修复、多轮调试等。论文包括代码生成 benchmark,但还没有覆盖完整长程工具调用场景。

7.4 prompt 可能过拟合 benchmark 接口

Appendix E 里的优化 prompt 包含很多格式要求,例如 <answer> 标签、不要 type hints、不要 comments、只输出函数定义等。这些对 benchmark 很有用,但需要区分两种提升:

1
2
真实推理能力提升
benchmark 接口适配提升

两者都重要。格式错导致 benchmark 失败,修格式当然是有效改进。但如果目标是更通用的推理能力,就不能把格式适配误认为深层能力提升。

7.5 misalignment mining 依赖 local validity 的定义

Misalignment case 的定义依赖 local evaluator。如果 local validity 判断错了,buffer 里收集的 hard cases 也可能偏。比如某个输出表面看起来局部正确,但其实包含隐藏错误,此时系统失败不一定是 local-global misalignment,而可能是 local correctness 本身出了问题。

这说明 evaluator prompt 和 rubric 是 MASPO 的关键工程资产。它们写得不好,优化方向就会偏。

7.6 安全与对抗性场景还没有深入研究

优化后的 prompt 可能更强硬、更格式化、更偏向 benchmark。对于开放式工具 agent,这可能带来风险:过度自信、对 prompt injection 更敏感、忽略不确定性、错误执行工具等。论文的 impact statement 认为没有特别需要强调的负面影响,但在真实系统中仍然需要额外安全评估。


8. 可复现性与实践笔记

8.1 代码开源情况

论文中给出的代码地址是:

1
https://github.com/wangzx1219/MASPO

这是好消息。论文附录也提供了 optimizer prompts、evaluator prompts、MASPO 算法伪代码,以及优化后 prompt 的案例。这些内容对复现很有帮助。

8.2 复现主结果需要什么

要复现主实验,大致需要:

  • MASPO 代码;
  • MATH-500、AGIEval-MATH、AQuA、GPQA-Diamond、MBPP、HumanEval-ET 的数据加载与评测脚本;
  • Qwen3-8B 的 non-thinking inference;
  • Gemini-2.5-Pro 或可替代的 optimizer/evaluator;
  • Appendix D 中的初始 prompt 和 MAS 拓扑;
  • Appendix A/B 中的 optimizer/evaluator prompt;
  • 足够的预算运行多轮候选生成和评价。

复现风险可能不在算法本身,而在外部模型版本、API 行为、LLM judge 稳定性和 benchmark 解析细节上。

8.3 如果把 MASPO 用到真实 workflow,我会怎么做

我会从一个小而清晰的工作流开始:

1
2
3
4
5
6
7
8
9
1. 明确 agent graph。
2. 为每个 agent 写初始角色 prompt。
3. 准备 30-50 个代表性任务。
4. 记录完整 trace:query、上下文、每个 agent 输出、最终结果。
5. 为每个角色写 local rubric。
6. 定义 final success metric。
7. 运行少量 MASPO round。
8. 人工检查优化后的 prompt。
9. 和旧 prompt 做 A/B test。

我不会直接把自动优化后的 prompt 无检查部署到生产。Prompt optimizer 可能找到脆弱捷径,尤其在工具调用、代码执行和用户数据场景中,人工检查非常必要。

8.4 这篇论文给实践者的设计启发

即使不完整实现 MASPO,也可以借鉴几个思路:

  • 中间产物要按“对下游是否有用”来评价;
  • 记录协作失败案例,而不是只记录最终失败;
  • 当其他 agent 变化后,重新评估旧 prompt 候选;
  • 把输出格式要求当作任务的一部分,而不是事后修补;
  • 拓扑优化和 prompt 优化是两个不同维度,可以组合;
  • 如果优化后的 prompt 能迁移,可以先用较便宜模型优化,再迁移到较强模型。

9. 总结

MASPO 的贡献在于,它把多智能体 prompt optimization 的关键矛盾讲清楚了:多 agent 系统不是一堆独立 prompt 的集合,而是一条信息协作链。一个 agent 的输出必须被下游 agent 消费,因此 prompt 的好坏不能只看局部文本质量。

论文最有价值的设计是 joint reward,尤其是 lookahead potential。它让 optimizer 能够评估“这个输出是否真的帮助了后继 agent”。Misalignment buffer 则把局部成功、全局失败的案例转化成后续搜索的 hard signal。Beam refresh 进一步处理了联合优化过程中的非平稳性。

当然,MASPO 还不是 agent optimization 的最终答案。它依赖 LLM evaluator,成本模型还需要更清楚,真实长程工具 agent 场景也需要更多验证。但作为从手写 prompt 走向系统化多 agent 优化的一步,这篇论文很值得读。

如果用一句话概括这篇论文:

MASPO 让 prompt optimization 不只关心某个 agent 是否“看起来答得好”,而是关心它的输出是否真的让整个 agent 系统更好地完成任务。

参考文献

  1. Zhexuan Wang et al. MASPO: Joint Prompt Optimization for LLM-based Multi-Agent Systems. ICML 2026, arXiv:2605.06623.
  2. Opsahl-Ong et al. Optimizing Instructions and Demonstrations for Multi-Stage Language Model Programs. EMNLP 2024.
  3. Xiang et al. Self-Supervised Prompt Optimization. EMNLP 2025.
  4. Wang et al. AgentDropout: Dynamic Agent Elimination for Token-Efficient and High-Performance LLM-Based Multi-Agent Collaboration. ACL 2025.
  5. Yao et al. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023.

笔记写于 2026-05-11。