大型语言模型(LLMs)和多代理系统的最新进展在复杂问题解决任务中展现了显著能力,如深度研究、编程和数学推理。然而,大多数现有多代理系统建立在复杂代理框架的手动提示/工作流工程基础上,导致计算效率低下、能力有限,且无法从以数据为中心的学习中受益。
本研究介绍了Chain-of-Agents (CoA),一种新颖的LLM推理范式,能够在单个模型中以与多代理系统相同的方式(即使用多个工具和多个代理进行多轮问题解决)实现原生端到端复杂问题解决。在Chain-of-Agents问题解决中,模型动态激活不同的工具代理和角色扮演代理,以端到端方式模拟多代理协作。
为了在LLMs中激发端到端Chain-of-Agents问题解决能力,我们引入了多代理蒸馏框架,将最先进的多代理系统蒸馏成Chain-of-Agents轨迹,用于代理监督微调。然后,我们在可验证的代理任务上使用代理强化学习,进一步提高模型在Chain-of-Agents问题解决上的能力。我们称由此产生的模型为代理基础模型(AFMs)。
我们的实证研究表明,AFM在网络代理和代码代理设置的各种基准测试中都建立了新的最先进性能。我们完全开源了整个研究,包括模型权重、训练和评估代码以及训练数据,为未来代理模型和代理强化学习研究提供了坚实的起点。
Chain-of-Agents是一种创新的LLM推理范式,它将多代理系统的协作能力整合到单个模型中,实现了端到端的复杂问题解决。其核心原理包括:
Chain-of-Agents的架构设计遵循以下原则:
class ChainOfAgents: def __init__(self, base_model, tool_agents, role_agents): self.base_model = base_model self.tool_agents = tool_agents # 工具代理集合 self.role_agents = role_agents # 角色代理集合 def solve(self, problem): # 初始化问题解决上下文 context = ProblemContext(problem) # 动态激活代理序列 while not context.is_solved(): # 基于当前上下文选择下一个代理 next_agent = self.select_next_agent(context) # 执行代理操作并更新上下文 context = next_agent.execute(context) return context.solution
多代理蒸馏框架是Chain-of-Agents训练的核心组件,它将复杂的多代理系统知识蒸馏到单个模型中。该框架包括以下关键步骤:
使用现有的多代理系统解决复杂问题,记录完整的交互轨迹,包括代理选择、工具使用和决策过程。
对生成的轨迹进行优化,去除冗余信息,保留关键决策点和工具使用模式,形成高效的Chain-of-Agents轨迹。
使用优化后的轨迹对基础LLM进行监督微调,使模型学习如何在单个模型内部模拟多代理协作。
将不同多代理系统的知识整合到单个模型中,形成统一的Chain-of-Agents问题解决能力。
在多代理蒸馏的基础上,我们进一步使用代理强化学习来提升模型在Chain-of-Agents问题解决上的能力。这种方法特别适用于可验证的代理任务,如代码生成、数学推理等。
代理强化学习的关键组件包括:
class AgenticRL: def __init__(self, model, reward_function): self.model = model self.reward_function = reward_function def train(self, tasks, iterations): for iteration in range(iterations): for task in tasks: # 模型解决问题 solution = self.model.solve(task) # 计算奖励 reward = self.reward_function(task, solution) # 更新模型参数 self.model.update(reward) # 记录训练指标 self.log_metrics(iteration, task, reward)
我们在多个基准测试上评估了Chain-of-Agents方法的性能,包括网络代理和代码代理设置。实验结果表明,我们的代理基础模型(AFM)在各项指标上都取得了最先进的性能。
主要实验发现:
Chain-of-Agents的设计思想源于对多代理系统协作本质的深入理解,以及对LLMs内在潜力的挖掘。我们相信,未来的AI系统将更加注重:
将复杂的多代理协作能力整合到单个模型中,减少系统复杂度和通信开销。
从数据中学习代理协作模式,而非依赖手动设计的工作流和提示工程。
模型能够根据任务需求动态调整代理激活策略和工具使用方式。
强调在可验证任务上的性能提升,确保模型输出的可靠性和准确性。
未来,我们将继续探索Chain-of-Agents在更多领域的应用,并进一步优化多代理蒸馏和代理强化学习方法,推动代理基础模型的发展。