草稿

多智能体协同深度指南(LangGraph、AutoGen、CrewAI 等)

多智能体协同通过多个 LLM 驱动的智能体分工协作,实现复杂任务的高效完成。

本文深入探讨角色分工、共识机制、任务合并、跟踪模式与资源控制,结合 LangGraph、AutoGen 和 CrewAI 的实践,帮助开发者构建可扩展的智能体系统。

多智能体系统由多个独立的 LLM 驱动智能体组成,每个智能体拥有自己的角色、提示、模型和工具。框架方面,LangGraph 基于图结构将各 Agent 连接成工作流,AutoGen 提供统一的多 Agent 会话编排框架,而 CrewAI 则强调"角色化 Agent 团队"与灵活的流程控制。以下从角色分工、共识决策、任务合并、跨 Agent 追踪、资源限额等方面深入探讨,并给出一个完整的可运行示例。

多 Agent 角色分工模型

在协作式工作流中,常见的角色包括规划者(Planner)执行者(Worker)、**审阅者(Reviewer)协调者/仲裁者(Orchestrator)**等。每个角色专注不同子任务:例如规划者负责任务分解与策略制定,执行者负责具体执行,审阅者负责检验和改进结果,协调者负责分派任务和最终决策。

在 CrewAI 中,可为每个 Agent 设置rolegoal等属性;在 AutoGen 示例中,也定义了多个角色 Agent 协作。例如下图所示,LangGraph 中的 Supervisor 模式中,一个 Supervisor Agent 负责将用户请求路由给不同子 Agent。CrewAI 文档指出:“每个 agent 都具有特定角色、工具和目标”;AutoGen 旅行规划示例中,planner_agent负责初步规划,language_agent提供语言建议,travel_summary_agent将各视角整合成最终计划。

图 1: LangGraph 示例中的 Supervisor 模式
图 1: LangGraph 示例中的 Supervisor 模式

Role-based Agent 示例:

  • 规划者(Planner):根据用户需求制定任务计划(如旅行示例中的 Planner Agent)。
  • 执行者(Worker):执行具体任务或子目标,可能是特定领域专家 Agent。
  • 审阅者(Reviewer):对执行结果进行验证或补充建议(旅行示例中"语言提示"Agent 充当审阅角色)。
  • 协调者/仲裁者(Orchestrator):分发任务、收集反馈并做最终决策。LangGraph 框架中的 Supervisor 即担此角色。

共识机制与仲裁策略

多 Agent 系统需要机制整合各 Agent 输出,典型策略包括投票、加权评分或信任路由。AutoGen 提供"辩论"模式,让各 Agent 多轮交换、互相修正答案。在这个模式中,Solver Agents 负责提出答案,Aggregator Agent 则收集并最终通过**多数投票(majority voting)**确定答案。例如,AutoGen 文档中 Aggregator Agent 将各 Solver Agent 在最后一轮的输出进行多数票表决得到最终结果。

多模型评分(Multi-Model Scoring)方式下,可让不同 LLM 参与答题,采用置信度加权投票来形成共识。ReConcile 框架即通过多轮讨论和置信度加权投票实现更稳健的共识结果。更进一步,可为每个智能体分配信任值或权重,动态调整其输出的重要性。例如文献中提出的权重机制会基于每个 Agent 的置信度(不确定度的倒数)调整注意力分配,以突出可信度更高的 Agent 信息。

综上可采用的仲裁策略包括:

  • 多 Agent 投票:简单多数投票或排名投票,易于实现,见 AutoGen 多 Agent 辩论示例。
  • 置信度加权:使用多模型多 Agent,通过计算各 Agent 输出的置信度权重汇总答案。
  • 信任值路由:根据历史表现或模型信任度动态调整 Agent 权重,使高信度 Agent 的意见被优先考虑。

任务计划合并与冲突解决

多 Agent 协同需管理子任务依赖并合并各自输出。LangGraph 利用图结构显式定义 Agent 调用顺序和状态流转。在图中,每个 Agent 为节点,边代表调用或数据流向。这样可以清晰控制子任务依赖关系,避免并行冲突。CrewAI 的Flows支持定义顺序或并行的工作流,并会自动处理任务依赖。实际应用中,通常按以下步骤处理子计划:

  1. 任务分解:由 Planner Agent 将复杂任务拆解成相互依赖的子任务列表。
  2. 分支执行:将独立子任务分配给不同 Worker Agents 并行执行。
  3. 合并检查:当多个 Agent 输出潜在冲突结果时,由 Orchestrator 或 Reviewer Agent 审阅、合并或修正。
  4. 冲突仲裁:若子计划结果冲突,通过协商、票决或优先级规则解决,生成一致输出。

例如,LangGraph 可将依赖管理纳入图构建,而 CrewAI 允许开发者设置流水线中任务的执行顺序和条件,从而自然避免冲突。实战中可利用共享缓存或数据库作为 Agent 间共享的"资源调用链",并在流程中插入锁、事务或重试逻辑来避免资源访问冲突。

跨 Agent Trace 跟踪模式

为了调试和评估,需要跟踪各 Agent 的状态与调用链。多 Agent 系统通常维护状态机或执行上下文来记录流程进展。在 LangGraph 中,Agent 之间通过图的状态进行通信,Graph 对象持久化全局状态,便于分析各 Agent 决策路径。CrewAI 的 Flows 则引入**执行上下文(States)**概念,用于保存每一步的环境数据和中间结果。这种设计保证了流程在状态转换时具有可追溯性。

监控方面,CrewAI 提供了Tracing & Observability功能,可实时监控 Agent 及工作流的指标和日志;LangGraph 则与 LangSmith 集成,记录运行过程中的状态快照和日志。在实践中,可为每次 Agent 交互生成唯一 Trace ID,将日志和调用上下文关联起来。可视化方面,可使用 Mermaid 流程图或终端输出形式表示 Agent 执行路径。例如,下图为一个简化的多 Agent 协作流程示意:

图 2: 多 Agent 协作流程示意
图 2: 多 Agent 协作流程示意

此外,应在日志中记录关键状态与输入输出。可在 CrewAI 或 AutoGen 代码中使用回调函数,将每个 Agent 决策详情输出到统一日志中,以便后续关联分析。LangSmith 和 CrewAI 的控件下可自动捕获上下文,使得日志与调用上下文一一对应,方便定位问题。

资源限额控制与防滥用

多 Agent 协同易产生超量调用和成本开销,需要对资源做严格限制。常见策略包括:

  • Token/调用次数配额:为每个 Agent 或整个工作流设置 Token 上限、并发调用限制等。CrewAI 的 Agent 配置支持max_rpm来限制 API 调用频率,以及max_execution_timemax_iter等参数控制执行预算。
  • 预算监控:集成监控组件,记录模型调用成本和资源使用情况,超出阈值时终止或降级处理。LangGraph 可借助 LangSmith 监控 Token 使用,CrewAI Enterprise 套餐也提供统一预算和警告策略。
  • 失败重试与熔断:在调用超时或失败时及时停滞重试。CrewAI 允许设置最大重试次数max_retry_limit,避免因 Agent 故障导致无限循环。
  • 恶意输入过滤:对用户输入进行格式和长度校验,使用内容审查或黑白名单拦截滥用。虽在开源框架中需自行实现,Cockpit 级别可在调用链前后插入校验工具。

总之,通过在 Agent 配置中设置max_rpm等限额(如示例中将max_rpm=10限制调用频率),并结合全局监控,可有效控制成本、防止滥用。

实例演示:端到端多 Agent 流水线

下面给出一个基于 AutoGen/CrewAI 的示例流程:用户提出任务,由Planner Agent生成任务分解方案,随后多个Worker Agents执行子任务,一位Reviewer Agent检查合并结果,最终由Orchestrator Agent做出决策治理。假设使用 AutoGen 实现,可采用 RoundRobin 对话或 CrewAI 的 Crews+Flows 模式。总体流程如下:

  1. 任务规划:Planner Agent 接收用户需求,调用大模型生成子任务列表。
  2. 并行执行:将子任务分发给不同 Worker Agents,各自调用模型或工具并返回答案。
  3. 审阅整合:Reviewer Agent 收集并评估 Workers 输出,对不一致部分修正或补充信息。
  4. 决策治理:Orchestrator Agent 基于 Reviewer 结果判断最终输出,如触发额外步骤或结束任务。

该示例可本地部署,使用开源模型(如 Qwen、DeepSeek 等,通过 Ollama、vLLM 等运行)。组件可可视化:采用 Mermaid 画出流程图(如上所示)、或在控制台输出每个 Agent 调用细节。日志方面,为每一轮对话或 Agent 执行记录输入输出、执行时间等,并通过上下文 ID 关联。LangGraph 案例可利用 LangSmith 记录并回放 Agent 交互;CrewAI 可启用 Tracing 模块输出时间线。最终,通过上述设计,即可实现一个可运行的多智能体协同系统,从规划→执行→审稿→决策治理全流程皆可监控与管控。

多智能体系统中的智能体协调框架

在构建复杂的多智能体系统时,智能体(Agent)之间的协调是系统成功的关键。当单个强大的模型难以可靠地处理复杂、相互关联的任务时,多智能体系统将工作分配给专业化的智能体来解决问题。然而,这种协作带来了核心挑战:如何高效地协调这些智能体,并在不产生过多开销的情况下传递关键的上下文信息。

智能体协调框架的出现正是为了解决这些机制问题,从而避免大量的自定义开发工作。然而,框架的选择本质上是一种架构决策。接下来我们将介绍和对比主要智能体协调框架,并分析它们在不同多智能体架构(如集中式、分层式和混合式)下的适用性。

协调框架的核心挑战

尽管市面上存在多种协调框架,但它们都没有解决智能体之间高效上下文传递的根本问题。目前的方法要么是共享所有信息(成本高、速度慢),要么是共享摘要(丢失关键细节)。因此,在选择框架时,团队必须清醒地认识到,框架本身并未解决跨智能体的选择性、语义性上下文传输挑战,而这却是决定系统经济性(协调开销)的关键。

主要智能体协调框架介绍与对比

以下介绍的六个主要协调框架,以及它们的特点和适用场景:

LangGraph

LangGraph 将多智能体工作流建模为有向图(Directed Graphs)。在这种模型中,智能体充当节点(Nodes),通信充当边缘(Edges),状态流经整个图表。

  • 核心优势: 提供了完整的状态管理和跨多轮交互的持久内存。它擅长处理复杂的条件流程,并将智能体交互建模为状态机
  • 架构匹配: 非常适合分层式(Hierarchical)和混合式(Hybrid)架构模式,因为它可以在同一系统中表示报告关系和对等连接。
  • 最佳用途: 具有状态管理的复杂工作流,例如需要跟踪整个流程状态的客户入职系统。
  • 局限性: 灵活性带来的高复杂性开销

CrewAI

CrewAI 侧重于基于角色的智能体协作,拥有预定义的智能体角色和职责。

  • 核心优势: 集中式编排(Centralized Orchestration);所需配置最少;提供一致的角色行为(Persona)。
  • 架构匹配: 倾向于集中式架构。
  • 最佳用途: 基于角色的协作和快速原型设计,例如用于市场营销团队的内容自动化,其中研究员智能体、撰稿人智能体和编辑智能体各司其职。
  • 局限性: 上下文控制有限。

Agno

Agno 强调高性能和高效率。

  • 核心优势: 智能体创建时间极快(声称 2μs/智能体);每个智能体的内存占用低(约 3.75 KiB);支持多模态。
  • 架构匹配: 适用于所有架构模式,但在毫秒级至关重要的高性能场景中进行了优化。
  • 最佳用途: 高性能、高容量操作,例如需要同时分析数百只股票的实时交易系统。

Mastra

Mastra 为 Web 开发人员提供了一个 TypeScript 优先的多智能体系统设计。

  • 核心优势: 原生 TypeScript 集成;可与现有 REST API 配合工作;基于图的工作流;无需单独的 AI 基础设施
  • 最佳用途: Web 应用程序和 TypeScript 项目。

Google ADK (Agent Development Kit)

Google ADK 提供了灵活的编排模式,并与 Google Cloud 生态系统深度集成。

  • 核心优势: 灵活的编排;支持分层智能体组合内置评估框架;原生 Vertex AI 集成。
  • 架构匹配: 特别适合分层式架构,通过组合专业化智能体构建模块化和可扩展的应用。
  • 最佳用途: 在 Google Cloud Platform (GCP) 上构建多智能体系统。

AWS Strands

AWS Strands 采用模型驱动的方法,侧重于与 AWS 服务集成。

  • 核心优势: 模型驱动方法(模型管理规划和执行);所需代码最少;原生 MCP 支持;通过 A2A 协议实现多智能体协作。
  • 最佳用途: AWS 上的生产就绪型智能体。

框架与架构模式的匹配

选择协调框架必须与所需的架构模式保持一致。不同的框架设计倾向于支持特定的架构:

架构模式描述框架的适配性
集中式 (Centralized)单个强大的智能体作为中央协调器,负责任务分配、监控和结果合成。确保一致性,但存在单点故障风险。CrewAI (以角色为中心,擅长集中编排);LangGraph (可用于 Map-Reduce 模式下的集中式控制)。
分层式 (Hierarchical)多层监督结构,上级抽象复杂性,下级执行细节。适用于自然分解为子问题的复杂领域。LangGraph (图结构天然支持分层关系);Google ADK (专为分层智能体组合设计)。
混合式 (Hybrid)结合了集中式控制(用于全局决策,如支付)和分散式执行(用于本地优化,如路由)。LangGraph (能够灵活表示复杂流程);Mastra (将业务逻辑与协调流程结合)。
分散式 (Decentralized)智能体之间直接通信,做出本地决策,没有中央协调器。提供弹性,但难以实现全局一致性。Agno (高弹性、高性能场景)。

总结与架构选择的考量

选择协调框架,就意味着选择了系统处理信息流、故障容忍度和扩展模式的方式。

  1. 基于需求选择框架: 框架的选择应基于实际需求,而不是功能列表。例如,如果首要目标是降低延迟和提高吞吐量,Agno 或 LangGraph 的并行能力可能更合适;如果目标是快速建立具有明确职责的团队,CrewAI 则提供了最快的路径。
  2. 避免过度工程: 框架虽然提供了机制,但必须警惕协调开销可能会抵消专业化带来的收益。如果任务是顺序的、具有紧密依赖性,或者可以用一个设计良好的智能体和更好的提示工程来解决,那么复杂的框架只会成为不必要的开销。
  3. 规划可移除性: 随着模型迅速改进,为克服当前模型限制而添加的复杂结构(如多步骤推理链)可能会在下一代模型出现时变得多余。因此,应规划结构,以便在更好的模型出现时,协调层能够被轻松移除或合并。

最终,协调框架就像是多智能体团队的“交通管制系统”:LangGraph 提供了灵活的“高速公路立交桥”来处理复杂的条件转向和状态持久化;CrewAI 则像一个提供清晰“岗位职责”和“团队领导”的简单组织结构。只有当这些工具与团队(架构)的工作模式完美契合时,系统才能高效运行。

总结

多智能体协同通过角色分工、共识机制、任务合并、跟踪模式和资源控制等技术,实现复杂任务的高效完成。LangGraph、AutoGen 和 CrewAI 等框架提供了强大的工具支持,帮助开发者构建可扩展的智能体系统。合理应用这些技术,可以显著提升 AI 应用的效率和可靠性。