OMAC:A Holistic Optimization Framework for LLM-Based Multi-Agent Collaboration
标题:一种基于LLM多智能体协作的整体优化框架 arxiv:2505.11765v4|github:github.com/xiwenchao/O…
一、背景
目前的多智能体系统(MAS)通常依赖手工设计,并且MAS系统设计和优化方面的研究十分有限。在这篇论文中,作者提出OMAC,一个通用的用对基于LLM的MAS整体优化的框架,具体来说,提出了MAS系统的5个关键维度,包括智能体功能与协作结构两个方面。在此基础上,提出了一个通用算法,利用the Semantic Initializer语义初始器和the Contrastive Comparator对比比较器两个智能体优化任一维度。随后,提出了一种可实现多维度联合优化的算法。并通过大量实验表明,相较于现有各类前沿方法,OMAC在多种任务上均具备更优异的性能。
二、方法
(一)问题定义
定义1:智能体
一个LLM驱动的智能体,受自然语言提示词控制,生成完成给定任务的解答。可将1个智能体a其定义成函数,p∈P表示定义角色和功能的指令提示词,在上下文学习in-context learning场景下,提示词可能包含几个指导智能体行为的示范;i∈I由问题信息、任务描述、MAS中其他智能体的潜在指令和解决方法组成;o∈O包含智能体生成的分析、推理、给定任务的解答。
定义2:多部协作
多智能体在多步骤流程中协同工作。每一步都涉及整个团队的一个智能体子集,目标是通过让每个步骤的智能体利用其他智能体之前生成的解答和输出来增强问题求解能力。
(二)多智能体协作优化的五个维度
对于MAS的整体优化,提出了5个维度:2个关于智能体功能,3个关于协作架构,具体如下:
- 优化已有的智能体(功能-1):聚焦于优化当前多智能体系统MAS的已有智能体,具体包括:优化指令提示词、配套的少量示范来增强具体任务性能。
- 优化新智能体的构建(功能-2):负责生成新的智能体,具体而言,基于任务上下文和已有的MAS配置,生成和优化用于驱动新智能体的指令提示词、少量示范。这些新智能体随后综合进已有的MAS,增强整体协作能力。
- 优化候选智能体筛选流程(架构-1):在开展协作前,结合具体任务从全部可用智能体中筛选合适的候选智能体。具体而言,核心目标是优化基于LLM的控制器指令提示词。该提示词引导控制器筛选出对多智能体协作流程增益最大的智能体子集,此项筛选决策需结合给定任务背景与现有智能体的功能综合判定。
- 优化智能体动态参与机制(架构-2):研究多阶段协作各环节中智能体的动态选取机制。具体而言,目标是优化基于LLM的控制器指令提示词,使其能从候选智能体组中挑选最适配的智能体参与当前协作环节。与方案1不同,该控制器会将过往智能体输出的结果一并作为上下文输入,从而动态筛选出预计能在多智能体协作当前环节发挥最高效、最优作用的智能体。
- 优化智能体通信流程(架构-3):优化智能体间通信流程。具体而言,目标是优化基于LLM的控制器的指令提示词,以确定是否某个智能体的输出是另一个智能体的输入。控制器在优化提示词的引导下,依据给定任务上下文以及各智能体具备的功能,完成此类通信路由决策。
本文将MAS的协作过程抽象为图上的信息流,推导出这五类维度:智能体对应图中的节点,通信通道对应图中的边。由此,两类功能维度用于优化节点性能,具体分为优化现有智能体与构建全新智能体两种方式;三类结构维度则用于定义图的构建规则,涵盖全局智能体选取、动态局部智能体选取以及智能体间通信路径规划。这五类维度结合在一起,完整覆盖了优化MAS信息流图所需的核心要素。尽管在特定实际应用场景中,还会出现预算管控、计算效率等各类面向任务的附加影响因素,但这里提出的维度体系提炼出了多智能体协作具备普适性的核心要素,即协作关系图中的节点与边。
(三)优化单个维度"Optimization for a Single Dimension"
OMAC 框架中用于优化单个维度(无论是智能体功能维度还是协作结构维度)的核心算法是通用的,只需根据目标维度进行少量上下文调整即可应用。以下是对该节的详细拆解和解释:
1. 核心设计思想
OMAC 的单维度优化算法旨在通过迭代的方式,不断改进多智能体系统(MAS)中的特定组件(如某个智能体的提示词或某个控制器的决策逻辑)。 该算法主要依赖两个由 LLM 驱动的核心角色(Actors):
- 语义初始化器:负责探索和生成多样化的初始候选方案。
- 对比比较器:负责分析好坏样本的差异,通过推理生成改进方案。
2. 具体流程步骤
整个优化过程是一个闭环循环,包含三个主要步骤:
第一步:集合的初始化
角色:语义初始化器
- 任务:生成一组初始的智能体或控制器候选者。
- 输入:
- 上下文信息:现有的 MAS 配置(如当前有哪些智能体)和目标任务描述。
- 功能定义:明确当前优化的维度是什么(例如,是要优化一个“程序员”智能体,还是优化一个“选择参与智能体”的控制器)。
- 单样本示例:提供一个标准示例,引导 LLM 生成符合格式和风格的输出。
- 数量要求:指定需要生成的初始候选数量(例如 3 个)。
- 运作机制:利用 LLM 的知识储备和推理能力,在“语义空间”中进行探索。它不仅生成有效的指令,还会在实现细节和侧重点上引入受控的随机性和多样性。
- 目的:确保初始集合中包含足够多样的候选方案,为后续的对比和优化提供基础。
第二步:评估与采样
- 评估:
- 将生成的每一个候选智能体或控制器集成到当前的 MAS 中。
- 在训练集上执行多步协作过程。
- 计算该配置下 MAS 的整体性能得分(如准确率、Pass@1 等)。
- 采样:
- 根据性能得分,设定两个阈值
h(高,例如前 50%)和l(低,例如后 50%)。 - 正样本:从得分最高的
n*h个候选中随机抽取一个。 - 负样本:从得分最低的
n*l个候选中随机抽取一个。 - 组成一个正负样本对。
- 根据性能得分,设定两个阈值
- 目的:通过阈值内的随机采样,不仅确保了对比的有效性(一个是好样本,一个是差样本),还增加了样本对的多样性,防止模型过拟合于特定的极端案例,从而增强泛化能力。
第三步:对比推理优化
角色:对比比较器
- 任务:分析正负样本对的差异,并生成一个更好的版本。
- 输入:
- 正负样本对(两个智能体/控制器的提示词或示例)。
- 任务上下文和当前优化的维度描述。
- 运作机制:
- 对比分析:要求 LLM 仔细比较这两个样本,推理并找出导致性能差距的关键因素(例如:是否要求了代码注释?逻辑链条是否更清晰?)。
- 生成改进:基于分析出的关键因素,生成一个新的“子代”智能体或控制器。这个新生成的方案旨在保留并强化正样本的优点,同时规避负样本的缺陷。
- 目的:利用 LLM 强大的推理能力,将隐含在性能差距中的“监督信号”显式化,转化为具体的指令改进。
循环迭代
- 将“对比比较器”生成的新方案加入到候选集合中。
- 重新进行评估、采样、对比推理。
- 这个循环会不断重复,直到达到预定的最大迭代次数(例如 3 次)。
3. 演示示例(论文中的图 2)
为了帮助理解,论文给出了一个优化“程序员”智能体的具体例子:
- 初始化:
- 语义初始化器生成了两个提示词。
- 提示词 A:通用的写代码指令。
- 提示词 B:要求代码必须包含注释的指令。
- 评估:
- 将 A 和 B 分别放入系统中运行。
- 结果发现,使用提示词 B 的系统整体得分更高(正样本)。
- 对比推理:
- 将 A(负样本)和 B(正样本)喂给对比比较器。
- 比较器分析后指出:“代码注释”是提升性能的关键因素。
- 优化:
- 比较器生成一个新的提示词 C:不仅要求包含注释,还进一步详细阐述了注释的目的和正确用法(例如解释复杂逻辑)。
- 结果:期望这个优化后的提示词能指导程序员生成更准确、逻辑更严密的代码。
算法通过**“探索(初始化)-> 评估(打分)-> 利用(对比推理)”** 的机制,将 LLM 的生成能力和推理能力结合起来。它不需要梯度下降,而是直接利用自然语言层面的对比分析,在监督信号的引导下,系统地优化多智能体系统中的任一特定维度。
(四)多维度优化Optimization for Multiple Dimensions
- 核心思想 OMAC 提出了一种迭代联合优化的方法,旨在协同优化多个维度。
- 算法流程:迭代式优化 算法不试图同时改变所有维度,而是采用一种循环迭代的方式:
- 步骤一:单维度优化
- 首先,使用 3.2 节介绍的算法,对某一个选定的维度进行优化。
- 在这个过程中,其他维度的配置保持固定不变。
- 优化完成后,保留该维度中表现最好的那个候选(智能体或控制器)。
- 步骤二:切换维度
- 接着,固定刚刚优化好的维度,开始优化另一个维度。
- 例如:先优化 Fun-1(现有智能体),保留最好的智能体;然后基于这个新智能体,去优化 Str-1(候选智能体选择)。
- 步骤三:循环迭代
- 重复上述过程,在选定的多个维度之间来回切换优化。
- 当满足预设的终止条件(例如达到最大迭代次数)时停止。
- 论文特别强调了设计迭代算法的理由:
- 保持对比推理的有效性:3.2 节中的核心是“对比比较器”,它通过对比“好样本”和“坏样本”来找出性能差异的原因。
- 避免变量混淆:如果同时改变多个维度(例如同时修改了智能体提示词和控制器的选择逻辑),当性能发生变化时,对比比较器将很难分辨出究竟是哪个变量的改变起到了关键作用。
(五)推理与计算效率
- 推理过程 在完成训练(即优化过程)之后,系统选择在训练集上性能得分最高的智能体和/或控制器组合部署到 MAS 中,用于在测试集上进行最终的任务求解和评估。
- 计算效率与挑战
挑战:虽然多维度联合优化能带来性能提升,但计算成本会急剧增加。
- 如果优化单个维度需要计算量 ,那么联合优化两个维度(如 A 和 B 迭代进行)可能会导致计算成本呈指数级或倍数增长(例如需要多次在 A 和 B 之间循环评估)。 应对策略:选择性维度优化
- 为了平衡性能提升和计算成本,OMAC 不会对所有 5 个维度都进行联合优化。
- 策略:先分别对每个维度进行单维度优化,评估其效果。
- 筛选:只挑选那些个体提升效果最显著的维度,将它们纳入多维度联合优化的流程中。
- 验证:论文在实验中验证了这种策略是有效的,即只优化“最好”的两个维度组合,就能获得大部分的性能收益,同时控制了计算开销。
三、实验
1. 实验设置
- 任务与数据集:
- 代码生成:使用 HumanEval 基准(指标:Pass@1)。
- 一般推理:使用 MMLU 数据集(指标:准确率)。
- 数学推理:使用 MATH 数据集(指标:准确率)。
- 基线方法:
- 单智能体:CodeT(代码)、Single Execution (SE)(推理)、Self-Consistency(数学)。
- 多智能体(固定结构):AgentVerse(代码)、LLMDebate。
- 多智能体优化方法(SOTA):DyLAN(无监督/LLM判断)、ADAS(提示进化)、AFlow(MCTS监督优化)。
- 默认配置:继承 DyLAN 的默认智能体设计和协作结构(全连接),正负对的阈值l=h=0.5,初始集合大小=3,最大对比推理迭代数量为3,使用 GPT-3.5-turbo 、维度 =0.8作为基础 LLM,代码生成、一般推理任务有7个智能体,数学推理有4个智能体。
2. 主要实验结果
2.1 单维度优化结果
OMAC 分别对 5 个维度(Fun-1, Fun-2, Str-1, Str-2, Str-3)进行了独立优化。
- 结果:在所有三个任务(代码、推理、算术)中,对任何单一维度的优化均带来了显著的性能提升。
- 对比:OMAC 在所有维度上均优于最先进的基线方法(如 DyLAN, ADAS, AFlow),平均每个维度相对提升约 3.6%(代码)、2.8%(推理)和 4.9%(算术)。
- 结论:验证了论文提出的 5 个优化维度的有效性,以及单维度优化算法的优越性。
2.2 多维度联合优化结果
实验进一步测试了联合优化多个维度的效果。
- 结果:联合优化带来的性能提升远大于单维度优化。
- 案例:在算术推理任务中,从单维度优化的 2.9% 提升至联合优化的 9.6%。
- 策略验证:采用“选择性联合优化”(只挑选单维度表现最好的几个维度进行联合)的策略是有效的,能在控制计算成本的同时获得最大收益。
- 迭代 vs. 同时:实验验证了“逐个迭代优化”优于“同时改变多个维度”,因为后者会导致对比推理困难,性能增益较小且方差大。
3. 消融实验
为了验证框架核心组件的作用,作者移除了 Contrastive Comparator(对比比较器),仅保留 SemanticInitializer(语义初始化器),记为 OMAC-C。
- 结果:OMAC-C 的性能显著低于完整的 OMAC 框架。
- 结论:证明了“对比推理”机制的重要性。仅靠探索语义空间生成候选是不够的,必须利用监督信号(正负样本对)进行针对性的对比分析和改进,才能实现最佳优化。
4. 计算效率分析
实验从训练和推理两个阶段分析了计算成本。
- 推理效率,得益于动态智能体选择与通信流优化,OMAC大幅降低了推理阶段的计算开销。
- 训练效率,训练成本较高,因为需要多次在训练集的随机采样子集上评估候选配置。
下一篇计划:ICML 2026 新型推理框架POLAR