LangGraph 实现多 Agent 开发主要有 5 种主流模式,每种模式对应不同的协作拓扑和适用场景。


Supervisor 模式(主管模式)—— 最常用

一个"主管"Agent 负责决策调度,多个"专家"Agent 各司其职,所有通信都经过主管。

        Supervisor(主管)
       ↙    ↓    ↘
  Agent A  Agent B  Agent C
       ↖    ↑    ↙
        结果回传主管

核心机制:Supervisor 是一个 LLM 调用,通过 llm.bind_tools 输出结构化的路由决策,决定下一步调用哪个 Agent;子 Agent 完成后 Command(goto="supervisor") 回到主管,主管再决定是继续分发还是输出最终结果。

适用场景:客服系统、研究助手、内容生成管道等需要集中调度的场景。

优缺点:控制逻辑集中、易于理解和维护;但 Supervisor 是单点瓶颈,决策质量依赖 Prompt 质量,可能产生路由幻觉。


Swarm 模式(群组/移交模式)

没有中央管理者,Agent 之间平等,通过 Handoff(移交) 传递控制权。类似客服转接——“这个问题我处理不了,转给技术部门”。

Agent A ──handoff──▶ Agent B ──handoff──▶ Agent C
  ▲                                           │
  └──────────── handoff ──────────────────────┘

核心机制:每个 Agent 自己决定是否需要 handoff 以及交给谁,底层通过 Command(goto="target_agent", graph=Command.PARENT) 实现转移,对话历史随 handoff 传递,接手的 Agent 能看到完整上下文。

适用场景:流程灵活、Agent 之间需要动态协作的场景,如多步骤工作流(规划 → 预订 → 确认 → 客服)。

优缺点:去中心化、可扩展性强,Agent 可热插拔;但协调复杂,缺乏收敛机制时可能产生消息风暴或无限循环。


Handoffs 模式(接力模式)

多个 Agent 按顺序依次处理同一个任务,每个 Agent 完成自己的步骤后显式"交接"给下一个 Agent。

搜索Agent → 抽取Agent → 综合Agent → 生成Agent

核心机制:通过 interrupt 节点与 Command(resume=...) 机制实现,每个 Agent 更新状态中的 next_agent 字段,通过条件边进入下一个节点。

适用场景:多跳问答(搜索 → 抽取 → 综合 → 生成)、渐进式内容审核(初审 → 复审 → 终审)、带人工介入的自动化流程。


Hierarchical 模式(层级嵌套模式)

多层 Supervisor 嵌套,形成类似企业组织架构的层级结构。每一层只关心自己的下属,不需要了解全局。

          总监 Agent
        ↙          ↘
   研究主管        执行主管
   ↙  ↓  ↘        ↙  ↓  ↘
 搜索  分析  编码  测试  部署  监控

核心机制:用 LangGraph 的 Subgraph(子图) 实现——每个"主管+下属"是一个独立的子图,父图只看到子图的输入/输出接口,内部实现对父图透明。

适用场景:大规模 Agent 系统(10+ 个 Agent)、企业级多部门协作、需要权限隔离的场景。


Map-Reduce 模式(并行分发模式)

将一个大任务拆分为多个独立子任务,并行执行后汇总结果。这正是你之前问的并发执行最典型的应用。

     分发器(Map)
   ↙    ↓    ↘
 子任务  子任务  子任务  ← 并行执行
   ↖    ↑    ↙
     汇总器(Reduce)

核心机制:通过 Send() API 实现动态并行——运行时决定生成多少个并行分支,汇总器等待所有分支完成后才执行,每个分支独立 checkpoint,单个失败不影响其他分支。

适用场景:批量文档处理、多源信息采集、并行研究多个子主题。


模式选择决策指南

维度SupervisorSwarmHandoffsHierarchicalMap-Reduce
控制方式中央集中分布式顺序接力多层嵌套并行分发
适用规模5-10 个 Agent3-5 个 Agent流程明确的串行10+ 个 Agent动态数量
灵活性
可维护性

快速决策

你的任务需要多个 Agent 吗?
├── 否 → 单 Agent + 多工具就够了
└── 是 → Agent 之间有层级关系吗?
    ├── 有明确的"老板" → Supervisor 模式
    │   └── 需要多层管理? → Hierarchical 模式
    ├── 平等协作,按专长转接 → Swarm 模式
    ├── 流程有明确阶段顺序 → Handoffs 模式
    └── 同一任务可拆分为独立子任务 → Map-Reduce 模式

实际项目中,这些模式往往混合使用——比如外层用 Supervisor 做全局调度,内部某个分支用 Map-Reduce 做并行处理,再用 Subgraph 封装成子图嵌入主图。理解每种模式的特点后,就可以像搭积木一样灵活组合。


需要我针对其中某种模式写一个完整的代码示例吗?

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐