用 LangGraph 构建多智能体系统

从单 Agent 到多 Agent 协作,理解 LangGraph 的图式编排思想,构建可控、可观测的智能体系统。

当单个 Agent 难以胜任复杂任务时,多智能体协作成为趋势。LangGraph 用「图」来编排智能体,提供了一种清晰可控的方式。

为什么需要编排

单个 Agent 处理简单任务尚可,但面对「多步骤、多分支、需协作」的任务时,靠「一个超长提示词」会失控。多智能体系统把任务拆解给多个各司其职的 Agent,例如:

  • 规划者(Planner):拆解任务;
  • 执行者(Executor):执行具体步骤;
  • 评审者(Reviewer):检查结果质量。

图式编排:用状态机管理流程

LangGraph 的核心思想是把智能体流程建模为有向图:

  • 节点(Node):一个 Agent 或一个函数,执行特定步骤;
  • 边(Edge):节点间的流转,可带条件分支;
  • 状态(State):在节点间传递的共享上下文。
const graph = new StateGraph(State)
  .addNode('planner', plannerAgent)
  .addNode('executor', executorAgent)
  .addEdge('planner', 'executor')
  .addConditionalEdges('executor', shouldContinue);

这种「图 + 状态机」的方式,让流程可控、可断点、可重放。

多智能体的协作模式

  • 顺序执行:一个 Agent 的输出作为下一个的输入(流水线);
  • 监督者模式:一个主 Agent 分发任务给子 Agent 并汇总;
  • 竞争/评审:多个 Agent 独立作答,再评审择优。

可观测性与调试

图式编排的额外好处是天然可观测:每一步的输入输出都在状态里,方便调试、审计与回放。配合 LangSmith 等工具,能清晰看到决策轨迹。

结语

多智能体不是「堆更多模型」,而是把复杂任务结构化成可控的流程。图式编排的价值,正在于把「黑箱」变成「可理解的系统」。