近年来,随着大型语言模型(LLM)的迅猛发展,多智能体系统(Multi-Agent Systems, MAS)的能力得到了显著提升。这些系统不仅能够自动化执行任务,还展现出接近人类的推理能力。然而,传统的 MAS 架构往往伴随着复杂的代码实现,这大大限制了其可重用性。为了解决这一难题,Nexus 应运而生。Nexus 是一个轻量级的 Python 框架,专为构建基于 LLM 的可扩展、可重用的 MAS 而设计。它支持分层架构、受监督的工作流设计,并且易于使用,即使没有深厚的技术背景,也能轻松上手。
多智能体系统(MAS)概述
多智能体系统(MAS)是分布式人工智能(AI)的基础系统。它们能够将复杂的任务分解为更易于管理的组件,然后由自主智能体(Agent)来执行。这些智能体利用历史知识、与其他智能体的交互以及环境信息来做出决策,无需人工干预。这种自主性使得 MAS 有别于传统的分布式问题解决系统,增强了它们在动态和不确定环境中有效运行的能力。
在 MAS 中,智能体具有一定程度的自主性,并且相互协作,形成一个统一的整体来解决问题。MAS 架构的关键组成部分包括智能体、环境和交互。智能体是核心行动者,拥有角色、能力和知识模型。环境是智能体所处的外部世界,它们感知并作用于环境中的信息。智能体之间的通信被称为交互,可以是协调、协商,或者基于系统需求的任何形式。
MAS 架构可以有多种形式,包括传统型、ReAct 型和基于 LLM 型。传统 MAS 架构由智能体组成,这些智能体通过观察和行动与环境交互。ReAct(Reasoning and Acting)型智能体架构则引入了先进的推理能力。而基于 LLM 的架构则利用 LLM 作为智能体进行推理和决策。
MAS 架构
MAS 架构面临的主要挑战包括多智能体之间的协调、任务分配以及大型系统的可扩展性。为了应对这些挑战,研究人员已经提出了多种方法,例如领导者-跟随者(Leader-Follower)层级结构,其中领导者智能体定义全局目标并委派任务,而中间层智能体框架则简化了智能体之间的服务发现和协调。
大型语言模型(LLM)领域的最新进展正在改进 MAS 架构及其应用能力,例如接近人类的推理能力。当集成到 MAS 架构中时,LLM 可以充当中央推理智能体,增强在动态环境中的适应性、协作和决策能力。这些进步也推动了 MAS 在多模态推理、复杂数学问题解决和自主导航等领域的应用,而这些领域曾经是 MAS 方法无法企及的。
基于 LLM 的 MAS 依赖于两个重要原则:一是针对特定任务的架构,以最大化 LLM 的效率;二是实现领域特定知识及其在智能体中应用的方法。然而,集成基于 LLM 的 MAS 的外部知识可能会增加整体复杂性,并导致可扩展性问题,这是由于知识约束和对不同领域适应性有限所致。此外,从头开发和部署基于 LLM 的 MAS 非常困难,特别是对于非技术人员而言。
Nexus 作为一个新颖的开源 Python 框架,允许用户使用低代码设计标准轻松设计 MAS 架构。Nexus 轻量级、可扩展,并且与 LLM 和应用领域无关,从而可以在不同的任务和问题上实现智能自动化。
深入理解 Nexus 框架
Nexus 框架基于模块化设计,集成了一个单一的根主管智能体(Root Supervisor Agent)以及多个任务主管(Task Supervisor)和工作智能体(Worker Agent)。这些组件按照分层执行图进行设计,以实现高效的任务委派、可扩展性和灵活性。根主管负责协调用户和智能体之间的通信,主要职责包括任务分解、智能体选择和结果聚合。
任务分解涉及将高层提示分解为可操作的子任务。智能体选择是指根据智能体的专业化程度将任务委派给最合适的工作智能体。另一方面,结果聚合是指收集来自委派子任务的输出,并将它们组合成最终响应。工作智能体是专门的问题解决者,主管会向它们分配任务。每个工作智能体都在一个隔离的环境中运行,该环境包括由其系统消息、相关工具和函数以及环境数据定义的独特专业化。工作智能体的能力包括:使用专用工具(例如,网络搜索)或知识库来执行特定领域的任务,通过与工具或知识库的交互迭代地改进过渡结果,并在完成指定任务后将输出返回给主管。
Nexus 包含一个全局内存和一组外部工具。内存存储带有指令的部分结果,确保所有智能体都了解任务进度。Nexus 中的内存是一个共享存储库,主管具有全局访问权限,工作智能体仅限于其事件历史记录,任务主管可以访问与其分配的智能体相关的所有内存位置。另一方面,外部工具允许智能体以专门的方式执行特定任务,例如网络搜索或访问外部资源(云存储桶等)。
Nexus 架构
Nexus 引入了一个迭代过程,用于任务分解和执行,分为三个主要的交互循环:
- 用户-主管交互:在这个循环中,用户向主管提供一个高层提示。主管解释并概述任务执行计划,并继续使计划与用户目标保持一致。这种交换是迭代的,并持续到主管准备好将子任务委派给其他智能体或最终确定解决方案。
- 主管-智能体协调:在这个循环中,主管根据工作智能体的专业化程度将子任务分配给它们。然后,工作智能体使用可用工具并生成中间结果。
- 智能体内部操作:最后一个循环在每个工作智能体的内部环境中工作。工作智能体根据外部工具和资源的迭代使用来改进中间结果。一旦获得解决方案,就会将其转发回主管进行最终综合。
这些循环使 Nexus 能够支持智能体及其操作环境之间的各种交互模式。它具有可扩展性、模块化和鲁棒性,其中框架可以根据任务复杂性的增加而纳入新的智能体,工作智能体可以独立运行,并且具有迭代反馈循环的分层委派可以降低智能体故障的影响,因为任务可以轻松地重新分配或改进。
Nexus 性能评估与分析
Nexus 的性能评估基于通过率,即通过所有检查的样本数与基准测试中样本总数之比。在编码任务中,Nexus 框架的有效性是根据其解决编程相关任务的效率来评估的。评估使用了 HumanEval 和 VerilogEval-Human 基准。
HumanEval 基准测试基于 164 个专注于 Python 代码生成的问题集合,而 VerilogEval-Human 包含 156 个涉及 Verilog 代码生成和验证的挑战。下图展示了用于解决代码相关任务的 Nexus-based MAS 架构。
用于代码相关任务的 Nexus-based MAS 架构
下表显示了基于消融研究的通过率所提出的工作流程的有效性。
结果 – 1
下表比较了基于 Nexus 的拟议工作流程与相关现有解决方案的性能。
结果 – 2
Nexus 在解决数学问题方面的有效性通过 MATH 数据集得到证明。使用了以下工作流程,其中使用了主管、数学家智能体和审阅者智能体。它们都由 Claude 3.5v2 LLM 提供支持。
用于数学问题的 Nexus-based MAS 架构
MATH 数据集的消融研究结果
Nexus 实战:代码审查与重构
接下来,我们通过一个实战案例,演示如何利用 Nexus 构建 MAS 架构,实现代码审查和重构。
Step 1:安装必要的库
!git clone https://github.com/PrimisAI/nexus.git
%cd nexus
!pip install -e .
Step 2:导入库并设置 LLM 配置
from primisai.nexus.core import Agent, Supervisor
from google.colab import userdata
import os
os.environ["OPENAI_API_KEY"] = userdata.get("OPENAI_API_KEY")
llm_config = {
"api_key": os.getenv("OPENAI_API_KEY"),
"model": "gpt-4o",
"base_url": "https://api.openai.com/v1"
}
Step 3:创建三个智能体:主管(Supervisor)、代码审查员(CodeReviewer)和代码重构员(CodeRefactor)
# 创建主管智能体
coordinator = Supervisor("ProgrammingCoordinator", llm_config)
# 创建代码审查智能体,并设置其系统消息
code_reviewer = Agent(
"CodeReviewer",
llm_config,
system_message="你是一位专注于代码分析的编码专家。你的任务是审查代码,识别错误并提出改进建议。"
)
# 创建代码重构智能体,并设置其系统消息
code_refactor = Agent(
"CodeRefactor",
llm_config,
system_message="你是一位专注于代码重构的编码专家。你的目标是提高代码的可读性和效率。"
)
Step 4:向主管(coordinator)注册智能体
coordinator.register_agent(code_reviewer)
coordinator.register_agent(code_refactor)
Step 5:显示智能体层级结构
coordinator.display_agent_graph()
Step 6:启动交互式会话,并提供示例 Python 代码以供审查和重构
coordinator.start_interactive_session()
输出
从输出结果可以看到,Nexus 能够基于 MAS 架构审查和重构我们提供的 Python 代码,并提出了一个更健壮、更高效、更易于使用的版本,其中还包含了适当的文档。
总结与展望
Nexus 作为一个轻量级的 Python 框架,极大地简化了基于 LLM 的多智能体系统的开发和管理。它通过分层方法以及基于 YAML 的架构和工作流定义,实现了无缝集成、可扩展性和模块化设计带来的灵活性。Nexus 代表了 MAS 开发的重大进步,有望进一步提升基于 LLM 的问题解决能力。
未来,随着 LLM 技术的不断发展,Nexus 有望在以下几个方面发挥更大的作用:
- 更复杂的任务处理:随着 LLM 推理能力的增强,Nexus 可以处理更复杂、更具挑战性的任务,例如跨领域知识整合、长期规划等。
- 更广泛的应用场景:Nexus 的灵活性和可扩展性使其能够应用于更广泛的领域,例如智能制造、智慧城市、金融科技等。
- 更强大的社区支持:随着 Nexus 的开源和推广,更多开发者将参与到 Nexus 的开发和完善中,共同推动 MAS 技术的发展。
总而言之,Nexus 为构建和管理多智能体系统提供了一个强大而灵活的平台,它的出现将加速人工智能领域的发展,并为解决现实世界中的复杂问题提供新的思路和方法。
参考:https://arxiv.org/pdf/2502.19091