用 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 等工具,能清晰看到决策轨迹。
结语
多智能体不是「堆更多模型」,而是把复杂任务结构化成可控的流程。图式编排的价值,正在于把「黑箱」变成「可理解的系统」。