进阶应用 高级

智能体编排:从单 Agent 到多智能体协作

系统学习智能体编排:Plan-and-Execute、Supervisor、Handoff 等模式,理解多智能体如何分工协作。

为什么需要"编排"

单个 Agent 工具一多就容易"迷路":上下文膨胀、决策质量下降、错误难以定位。编排(Orchestration)把复杂任务拆给多个职责单一的 Agent,由一个"调度者"协调它们的执行顺序与数据流转。

四种经典编排模式

  • Plan-and-Execute(规划-执行):规划 Agent 先拆解任务清单,执行 Agent 逐步完成。适合复杂多步任务,规划一次、执行多次,省 token 且可控;
  • Supervisor(主管模式):主管 Agent 根据当前状态决定"下一步交给谁",各专家 Agent(检索员/写手/审核员)只管自己的事。最常见的多智能体形态;
  • Handoff(交接):Agent 之间直接移交控制权,像客服转接 —— 适合"售前→售后→投诉"这种流程化场景;
  • 流水线(Pipeline):固定顺序的步骤编排,如"改写查询→检索→生成→审核"。最简单也最常用,本站的 AI 助手就是这种模式。

LangGraph 中的实现

from langgraph.graph import StateGraph, START, END

# 多智能体 = 一张图:节点是 Agent,边是调度规则
graph = StateGraph(AgentState)
graph.add_node("supervisor", supervisor_node)   # 决定下一步给谁
graph.add_node("researcher", researcher_node)   # 检索专家
graph.add_node("writer", writer_node)           # 写作专家

graph.add_edge(START, "supervisor")
graph.add_conditional_edges(
    "supervisor",
    lambda s: s["next"],      # 主管输出:交给谁?
    {"researcher": "researcher", "writer": "writer", "FINISH": END},
)
app = graph.compile()

编排的核心原则

  • 单一职责:每个 Agent 的提示词、工具、输出格式只服务一件事;
  • 状态显式化:Agent 之间通过结构化状态传递信息,而非把全部历史塞给每个人;
  • 可观察:每个节点的输入输出、耗时都应可追踪(trace),否则多智能体调试是噩梦;
  • 设置预算:最大迭代轮数、最大 token,防止智能体互相"踢皮球"死循环。
判断标准:先问自己单 Agent + 好提示词能不能解决。能解决就不要上多智能体 —— 编排是复杂度管理手段,不是目的。

📝 课后练习

quiz-1 Supervisor 多智能体模式中,主管(Supervisor)的职责是?