Appearance
多智能体概览
前置阅读:智能体 Agent · LangGraph 概览
本节解决什么问题
单个 Agent 已经很强——它能理解意图、选择工具、执行任务。但当任务规模和复杂度上升时,一个 Agent 独揽一切会遇到瓶颈:
| 挑战 | 表现 | 多智能体方案 |
|---|---|---|
| 工具爆炸 | 单 Agent 挂载 30+ 工具,LLM 选择准确率下降 | 按职能拆分,每个 Agent 只负责 5-8 个工具 |
| 上下文膨胀 | 长对话 + 多工具结果导致 Token 超限 | 子任务独立处理,父 Agent 只汇总结果 |
| 专业化不足 | 通用 prompt 难以覆盖所有领域 | 每个 Agent 有独立的 system prompt 和领域知识 |
| 可维护性差 | 单体 Agent 修改牵一发动全身 | 模块化拆分,独立测试和迭代 |
多智能体系统(Multi-Agent System) 的核心思路:将复杂任务拆分给多个专职 Agent,它们各司其职、协同完成目标。
三层架构边界(必读)
必须深刻理解,不能跳过:worker 与编排的分离是 LangChain 多智能体体系的地基。
- LangChain
create_agent= 轻量 Agent Harness(worker):负责单个 Agent 的 model + tools + system_prompt + middleware 循环,本身基于 LangGraph 运行时,但不暴露图拓扑。多智能体中的每个"专家"都是用create_agent构建的 worker。- LangGraph = 编排层(supervisor / swarm / 自定义 Graph):负责 worker 之间的控制权转移、状态共享、条件分支、并行、HITL。通过
langgraph-supervisor、langgraph-swarm或原生StateGraph实现。- Deep Agents = 高层 Harness:在 LangGraph/LangChain Agent 之上提供规划、文件系统、上下文管理、Subagent、Skills、Memory、HITL 的约定式默认能力。本教程只做交叉引用,不混为 LangChain 内置能力。
LangGraph = 底层状态化运行时与工作流编排
LangChain create_agent = 基于 LangGraph 的轻量 Agent Harness(worker)
Deep Agents = 在 LangGraph/LangChain Agent 之上的高层 Harness(规划、文件系统、Subagent、Skills、Memory、HITL 默认能力)选型铁律:
- 固定/强约束/可审计流程 → 显式 LangGraph
StateGraph - 普通工具 Agent →
create_agent - 需要多 worker 协作 →
langgraph-supervisor(层级)或langgraph-swarm(平级 handoff) - 长周期研究/复杂规划/多文件多 Subagent → Deep Agents
什么是多智能体系统
python
import os
from langchain.agents import create_agent
from langchain.chat_models import init_chat_model
# 模型配置来自环境变量,避免把具体版本写死到教程
model = init_chat_model(os.environ["LLM_MODEL"])
# 单 Agent 模式 - 什么都做,容易出错
single_agent = create_agent(
model,
tools=[search, analyze, write_sql, send_email, translate], # 工具太多
system_prompt="你是万能助手", # 角色太泛
)
# 多智能体模式 - 各司其职(worker 用 create_agent,编排交给上层)
research_agent = create_agent(
model, tools=[search, summarize], system_prompt="你是研究员"
)
data_agent = create_agent(
model, tools=[write_sql, analyze], system_prompt="你是数据分析师"
)
comm_agent = create_agent(
model, tools=[send_email, translate], system_prompt="你是沟通专员"
)
# 上面只是三个独立的 worker;要让它们协作,需要编排层
# (langgraph-supervisor / langgraph-swarm / 自定义 StateGraph),见后续章节原生语义:
create_agent返回的是CompiledStateGraph(一个 LangGraph 图),所以每个 worker 本身就是一个完整的 Agent Loop。多智能体系统的本质是把多个 worker 图组合成一个更大的编排图——这正是langgraph-supervisor和langgraph-swarm做的事。
何时使用多智能体
并非所有场景都需要多智能体。以下是判断标准:
适合单 Agent
- 工具数量 < 10 个
- 任务流程线性、不涉及多领域
- 对话轮次较少,上下文可控
- 快速原型开发阶段
适合多 Agent
- 工具数量 > 10 个,且可按领域分组
- 任务需要多步骤、多领域协作
- 需要不同 Agent 使用不同模型(如推理用 Claude,代码用 GPT-4o)
- 团队需要独立维护各自的 Agent 模块
- 需要对子任务做精细权限控制
决策流程
五大多智能体模式与对应包
LangChain 生态中,多智能体模式由不同的包落地。模式名称是概念分类,实现落到真实包:
| 模式 | 概念 | 落地包 | 核心 API |
|---|---|---|---|
| Subagents | 父 Agent 管理子 Agent | langgraph-supervisor | create_supervisor + create_handoff_tool |
| Handoffs | Agent 间直接传递控制权 | langgraph-supervisor / langgraph-swarm | create_handoff_tool + Command(goto=, update=) |
| Router | 中央路由器单跳分发 | langgraph-swarm | create_swarm + create_handoff_tool |
| Skills | 能力封装为可复用技能单元 | Deep Agents(交叉引用) | 见 Deep Agents Skills |
| Custom Workflow | 完全自定义编排 | LangGraph StateGraph | StateGraph + add_node + add_conditional_edges |
1. Subagents 子代理(Supervisor)
核心思想:父 Agent(Supervisor)负责理解用户意图、拆解任务,然后将子任务委派给专职的子 Agent 执行。子 Agent 完成后将结果返回给父 Agent,由父 Agent 汇总输出最终答案。
Supervisor(管理者)
├── 子 Agent A(研究)
├── 子 Agent B(分析)
└── 子 Agent C(撰写)落地包:pip install langgraph-supervisor,使用 create_supervisor(agents, model=, prompt=)。每个子 Agent 用 create_agent 构建。
适用场景:复杂任务的分而治之,如研究报告生成、多步骤数据处理。
如果你需要长周期研究、多文件多 Subagent、上下文隔离等约定式能力,应直接使用 Deep Agents Subagents,它在 LangGraph 之上提供了更完整的 Harness。
2. Handoffs 任务交接
核心思想:Agent 之间直接传递控制权,当前 Agent 判断自己无法处理时,将任务连同上下文交接给更合适的 Agent。
用户 -> 分诊 Agent -> 账单 Agent
-> 技术 Agent
-> 通用 Agent必须深刻理解,不能跳过:handoff = 控制权转移 + 状态更新。
Handoff 不是简单的函数调用,而是通过
Command(goto="agent_name", update={...})同时完成两件事:
- 控制权转移:
goto指定下一个激活的 Agent- 状态更新:
update把当前对话历史、上下文等写入共享 state这就是为什么
create_handoff_tool来自 LangGraph 生态——它本质是 LangGraph 的图跳转语义,不是 LangChain 的工具语义。
落地包:langgraph-supervisor 的 create_handoff_tool(层级 handoff)或 langgraph-swarm 的 create_handoff_tool(平级 handoff)。
适用场景:客服系统、多级审批、问题分类后路由到专家。
3. Router 路由分发(Swarm)
核心思想:中央路由器接收所有请求,根据分类规则将请求分发给对应的专家 Agent。路由器本身不处理业务逻辑,只负责"分类"和"转发"。
所有请求 -> 路由器 -> 数学专家
-> 科学专家
-> 历史专家落地包:pip install langgraph-swarm,使用 create_swarm(agents, default_active_agent=)。Router 是 Swarm 的单跳特例——default_active_agent 充当入口路由器,通过 create_handoff_tool 分发到专家。
适用场景:知识问答系统、多领域客服、统一入口的服务台。
4. Skills 技能模式(Deep Agents)
核心思想:将 Agent 能力封装为可复用的"技能"单元,Agent 按需加载和组合技能。
Agent + [SQL 技能, 搜索技能, 代码生成技能]落地方式:Skills 是 Deep Agents 的约定式能力,不在 LangChain create_agent 中内置。详见 Deep Agents Skills。
适用场景:能力复用、插件化架构、渐进式增强 Agent 能力。
5. Custom Workflow 自定义工作流(LangGraph)
核心思想:使用 LangGraph StateGraph 构建完全自定义的多 Agent 编排流程,支持条件分支、并行执行、循环和人工干预。
LangGraph StateGraph -> 条件路由 -> 并行节点 -> 汇聚 -> 输出落地包:LangGraph 原生 from langgraph.graph import StateGraph, START, END。
适用场景:复杂业务流程、需要精细控制的场景、生产级多 Agent 系统。
模式对比速查
| 模式 | 复杂度 | 灵活性 | 典型场景 | 落地包 | 推荐度 |
|---|---|---|---|---|---|
| Subagents | 中 | 高 | 研究报告、项目管理 | langgraph-supervisor | 通用首选 |
| Handoffs | 低 | 中 | 客服路由、多级审批 | supervisor / swarm | 流程明确时 |
| Router | 低 | 低 | 知识问答、分类分发 | langgraph-swarm | 最简多Agent |
| Skills | 中 | 高 | 能力复用、插件化 | Deep Agents | 工具密集型 |
| Custom Workflow | 高 | 最高 | 生产级编排、复杂流程 | LangGraph StateGraph | 高级场景 |
架构全景
下图展示五种模式在系统中的位置和关系:
模式递进关系:
- Router / Handoffs - 入门级多智能体,适合流程明确、分支固定的场景(
langgraph-swarm) - Subagents - 中级模式,支持动态委派(
langgraph-supervisor) - Skills - 能力复用模式(Deep Agents)
- Custom Workflow - 高级模式,LangGraph 提供完全的流程控制能力
前端类比
多智能体系统 ≈ 微前端架构(Micro Frontends):
- 独立团队:每个 Agent 就像一个独立的微前端应用,有自己的技术栈(模型 + 工具 + system_prompt)
- 统一入口:Router 模式类似 Module Federation 的路由分发
- 组合渲染:Subagents 模式类似容器应用组合多个子应用的输出
- 共享状态:Agent 间的消息传递类似微前端间通过 CustomEvent 或共享 Store 通信
原生语义:多智能体系统的"组合"发生在推理层面(语义理解 + 任务规划),而微前端的组合发生在 UI 层面。Agent 之间的通信是基于自然语言消息 + LangGraph 状态图跳转,比 API 调用更灵活,但也更不确定。handoff 本质是 Command(goto=, update=) 的图跳转,不是 HTTP 调用。
EnviroNexus 场景映射
EnviroNexus 环保知识库的多智能体协作场景:
用户咨询("某行业的 VOCs 排放标准限值")
-> 分诊 worker:判断是「标准查询」还是「因子计算」还是「法规解读」
-> handoff 到对应专家 worker:
- 标准 worker:检索标准号 + MethodCard
- 因子 worker:factor_alias 匹配 + 排放因子计算
- 法规 worker:法规正文检索 + 条款解读
-> 汇总 worker:交叉校验 evidence_refs,组装结构化候选答案
-> interrupt 人工审核 -> 发布或驳回这里分诊 + 专家 + 汇总是典型的 Supervisor/Handoff 模式(langgraph-supervisor),而人工审核环节需要 LangGraph 的 interrupt + Command(resume=)——这正是 Custom Workflow 的能力。强约束流程用显式 LangGraph,开放长任务才用 Deep Agents。
快速上手建议
- 从单 Agent 开始 - 先用
create_agent验证核心功能 - 识别拆分点 - 当工具超过 10 个或 system_prompt 变得臃肿时考虑拆分
- 选最简模式 - Swarm(Router)能解决的就不用 Supervisor
- 渐进升级 - 从
langgraph-supervisor/langgraph-swarm开始,需要更强控制时迁移到 LangGraphStateGraph - 长任务上 Deep Agents - 涉及多文件、多 Subagent、长周期研究时,直接用 Deep Agents
旧版(仅用于读旧项目)
LangChain 1.0 之前,多智能体教程常用 from langgraph.prebuilt import create_react_agent 构建 worker。该 API 在 1.0 已弃用、2.0 移除。新项目必须用 from langchain.agents import create_agent,参数用 system_prompt= 而非 prompt=。旧项目迁移见 Legacy 迁移指南。
下一步
- 多智能体模式 - 深入学习 Subagents / Handoffs / Router 三大核心模式的
langgraph-supervisor/langgraph-swarm实现 - 高级多智能体 - Skills 技能模式(Deep Agents)、LangGraph 自定义工作流、内存共享和错误处理
- Agents - 单 Agent 基础,多智能体的构建基石
- LangGraph 概览 - 需要更强编排能力时的升级方案
- Deep Agents 概览 - 长周期研究、多 Subagent、Skills 的高层 Harness