大型语言模型可作为单个智能体的智能核心。将这些智能体组织成一个紧密协作且高效的系统,是一个主要问题。多智能体系统(MAS)的架构决定了智能体如何互动、分享信息并共同完成更大目标。选择合适的架构体系不只是技术决定;它深刻影响系统的可扩展性、韧性、复杂性以及其能有效处理的问题类型。基于LLM的多智能体系统,在受益于LLM先进能力的同时,也面临着管理分布式智能、确保集体行为一致性以及优化资源使用(如API调用和令牌限制)等挑战。我们讨论的这些架构模式为组织这些复杂的交互提供了既定方式。常见架构模式传统MAS研究中已出现多种架构模式,现正应用于基于LLM的系统。理解这些模式将为设计您自己的多智能体应用打下良好根基。集中式与去中心化架构MAS架构最根本的区分在于控制与通信是集中式还是去中心化。协调器(中心辐射式)模式在集中式或协调器架构中,一个特殊智能体或模块(常称作编排器或管理器)承担任务分解、分配、通信路由及结果汇总的主要职责。其他智能体(有时称为工作智能体)向此中心协调器汇报并接收指令。digraph G { rankdir=TB; splines=ortho; node [shape=box, style="filled", fillcolor="#a5d8ff", fontname="Arial"]; edge [fontname="Arial"]; subgraph cluster_0 { label="系统"; bgcolor="#e9ecef"; Coordinator [fillcolor="#74c0fc", label="协调智能体"]; Agent1 [label="工作智能体 A"]; Agent2 [label="工作智能体 B"]; Agent3 [label="工作智能体 C"]; Coordinator -> Agent1 [label="任务 A", color="#1c7ed6"]; Coordinator -> Agent2 [label="任务 B", color="#1c7ed6"]; Agent1 -> Coordinator [label="结果 A", color="#1098ad"]; Agent2 -> Coordinator [label="结果 B", color="#1098ad"]; Coordinator -> Agent3 [label="任务 C", color="#1c7ed6"]; Agent3 -> Coordinator [label="结果 C", color="#1098ad"]; } }协调智能体向工作智能体分配任务并汇总其结果。优点:控制流程简单: 交互通常更容易追踪和管理,因为它们主要通过协调器进行。全局视图: 协调器可以维持系统的全局状态视图,有助于高层决策。(初期)调试更易: 当一个中心实体管理大多数操作时,发现问题可能更直接。缺点:单点故障: 如果协调器失效,整个系统可能无法运行。性能瓶颈: 协调器可能成为瓶颈,尤其当智能体数量或交互强度增加时。智能体自主性有限: 工作智能体自主性可能较低,主要执行协调器分配的任务。这种模式通常是简单MAS的良好起点,或当清晰的自上而下控制结构有益时。对于LLM智能体,协调器可以处理复杂的提示链或管理专业LLM智能体之间的信息流。对等(P2P)模式去中心化或对等架构没有中心权威。智能体直接相互通信,协商任务,分享信息,并自主安排其行动。graph G { rankdir=TB; layout=neato; node [shape=circle, style="filled", fillcolor="#96f2d7", fontname="Arial"]; edge [color="#0ca678", fontname="Arial"]; overlap=false; sep="+10,10"; AgentA [label="智能体 A"]; AgentB [label="智能体 B"]; AgentC [label="智能体 C"]; AgentD [label="智能体 D"]; AgentE [label="智能体 E"]; AgentA -- AgentB; AgentA -- AgentC; AgentB -- AgentC; AgentB -- AgentD; AgentC -- AgentD; AgentC -- AgentE; AgentD -- AgentE; } 对等架构中的智能体直接交互,没有中心中介。优点:鲁棒性增强: 没有单点故障;即使部分智能体失效,系统通常也能继续运行。可扩展性: 系统通常通过添加新智能体来更易扩展,而不会使中心协调器过载。智能体自主性提升: 智能体通常有更多自由做出决策并发起交互。缺点:交互复杂: 管理通信和协调可能变得明显更复杂。实现一致性: 确保智能体在没有明确中心指导的情况下朝着共同目标工作可能具有挑战性。全局状态管理困难: 维持系统一致的全局视图更困难。P2P架构适用于需要高韧性、动态环境或个体智能体自主性重要的场景。对于LLM,这可能涉及专注于不同知识领域的智能体共同构建一份复杂的报告。层次化架构层次化架构将智能体组织成树状结构,具有不同层级的权限与职责。高层级的管理智能体分解复杂任务,并将子任务委派给下属智能体或智能体团队。digraph G { rankdir=TB; node [shape=box, style="filled", fontname="Arial"]; edge [color="#fd7e14", fontname="Arial"]; ManagerAgent [label="管理智能体", fillcolor="#ffd8a8"]; SubManager1 [label="子管理器 1", fillcolor="#ffc078"]; SubManager2 [label="子管理器 2", fillcolor="#ffc078"]; Worker1_1 [label="工作智能体 1.1", fillcolor="#ffe066"]; Worker1_2 [label="工作智能体 1.2", fillcolor="#ffe066"]; Worker2_1 [label="工作智能体 2.1", fillcolor="#ffe066"]; Worker2_2 [label="工作智能体 2.2", fillcolor="#ffe066"]; ManagerAgent -> SubManager1; ManagerAgent -> SubManager2; SubManager1 -> Worker1_1; SubManager1 -> Worker1_2; SubManager2 -> Worker2_1; SubManager2 -> Worker2_2; }一种层次化结构,其中管理智能体监管子管理器或工作智能体。优点:指挥链清晰: 职责与控制界限明确。任务分解高效: 自然支持将大型复杂问题分解为更小、可管理的组成部分。模块化: 层次结构的不同分支可以专门处理问题的不同方面。缺点:可能僵化: 与更灵活的架构相比,对快速变化的环境适应性可能较低。通信开销: 信息可能需要经过多层传递,可能导致延迟或失真。高层瓶颈: 如果管理智能体负责过多下属或复杂协调任务,它们可能成为瓶颈。这种结构常见于LLM智能体团队,例如,“项目经理”LLM智能体可能监管“研究”LLM智能体和“撰写者”LLM智能体,后者又可能咨询其他专业工具使用智能体。黑板系统黑板架构通过共享数据存储库(即黑板)促进智能体间的间接通信和协调。智能体不直接相互通信;相反,它们从黑板读取信息并向其写入信息。专业智能体可以监控黑板,以获取触发其操作的特定类型信息或事件。digraph G { rankdir=TB; node [shape=box, style="filled", fontname="Arial"]; edge [color="#7048e8", fontname="Arial"]; Blackboard [label="黑板\n(共享数据/假设)", shape=cylinder, fillcolor="#ced4da", style="filled,dashed", fontname="Arial"]; AgentX [label="知识源 X\n(例如,LLM分析师)", fillcolor="#d0bfff"]; AgentY [label="知识源 Y\n(例如,数据验证器)", fillcolor="#d0bfff"]; AgentZ [label="解决方案合成器 Z\n(例如,报告生成器)", fillcolor="#d0bfff"]; AgentX -> Blackboard [dir=both, label=" 读/写 问题数据"]; AgentY -> Blackboard [dir=both, label=" 读/写 部分解决方案"]; AgentZ -> Blackboard [dir=both, label=" 读/写 最终解决方案"]; }智能体通过读写中心黑板进行交互,黑板保存共享的问题解决数据。优点:智能体解耦: 智能体独立运行,无需直接了解其他智能体,这促进了模块化。灵活性: 具有新能力的新智能体可通过与黑板交互轻松添加到系统中。机会主义问题解决: 解决方案可以随着黑板状态的演变,由不同智能体根据其专长逐步形成。缺点:黑板成为瓶颈: 如果许多智能体同时尝试访问黑板,黑板本身可能成为性能瓶颈。同步挑战: 确保数据一致性并管理对黑板的并发访问需要细致设计。无直接协商: 在没有直接通信通道的情况下,智能体之间进行复杂协商或澄清更难实现。当问题解决是渐进式的,并涉及多样的知识或专业来源时,黑板系统很有用。对于LLM智能体,黑板可以存储文档的演进草稿、关于问题的假设或对复杂情况的共同理解,不同LLM则贡献改进或新观点。混合架构实际上,许多多智能体LLM系统采用混合架构,结合了多种模式的元素。例如,一个系统可能为整体任务管理采用层次化结构,但在每个子团队内部,智能体可能以对等方式通信或使用本地黑板。这种方法使设计者能够运用不同模式的优点,同时减轻其缺点,从而根据应用的具体需求定制架构。影响架构选择的因素设计基于LLM的MAS时,在选择或构建架构体系时请考虑以下因素:任务性质: 问题是否可分解?它需要紧密协调还是更多自主贡献?智能体的数量和异质性: 一小组同质智能体可能通过简单协调器良好运作,而一大组多样智能体可能需要更去中心化或层次化的方式。通信要求: 智能体间通信的量、频率和复杂性将严重影响架构决策。LLM令牌限制和API延迟是此处的重要考量。可扩展性需求: 系统是否需要在智能体数量或工作负载方面增长?去中心化和层次化系统通常提供更好的可扩展性。韧性要求: 容错能力有多重要?对等和黑板系统对单个智能体故障的韧性通常优于集中式模型。开发与调试复杂度: 协调器模式等较简单的架构通常在初期更易实现和调试,但去中心化系统中的复杂行为可能更难追溯。现有框架与工具: 像LangChain、AutoGen或CrewAI这样的库通常提供高级抽象或预构建组件,这些组件倾向于某些架构风格(例如,顺序智能体执行、层次化团队)。理解其底层假设很重要。框架与库尽管讨论的模式是高层蓝图,但有几个软件框架和库旨在简化多智能体LLM系统的开发。这些工具通常提供智能体通信、状态管理以及有时预定义智能体角色或团队结构的实现。示例包括:LangChain 智能体: 提供用于创建智能体的工具,这些智能体可以使用工具、做出决策并记住过去的交互。它支持各种智能体类型和执行模型,这些模型可以组合成更大的系统。AutoGen (微软): 专注于构建使用多个LLM智能体的应用,这些智能体可以相互对话以解决任务。它侧重于自动化智能体聊天和可定制的智能体角色。CrewAI: 专为编排角色扮演的自主AI智能体而设计。它通过团队内定义的角色、任务和流程来促进合作式智能。这些框架通常隐式或显式地引导开发者采用特定的架构模式。例如,CrewAI自然适用于具有明确角色和流程的协调式或层次化结构。AutoGen的对话智能体可以配置用于各种交互模式,从简单配对到更复杂的群组讨论。理解这些核心架构模式使您在选择框架或从头构建定制系统时能做出明智的决定。它也有助于评估所选框架对您特定问题范围和可扩展性需求的适用性。架构的选择并非一次性决定。随着系统演进和需求变化,您可能需要重构或调整架构。对这些核心模式的扎实理解提供了词汇和分析视角,以设计、评估和改进复杂的多智能体LLM系统。这种架构支撑非常重要,在此之前我们应了解这些系统中单个智能体如何实现自主并展现期望行为的细节。