用途:在编写任何 LangGraph 代码时调用,帮助构建有状态图与智能体编排流程。
主要能力:StateGraph 是构建有状态图的主类;节点是执行工作并更新状态的函数;边定义执行顺序(静态或条件);START/END 标记入口与出口;带 reducer 的状态控制更新合并方式。图必须先 compile() 才能执行。
状态管理:默认字段直接覆盖;列表追加用 reducer(operator.add / concat);复杂合并用自定义 reducer。Python 用 TypedDict 配合 Annotated,TypeScript 用 StateSchema 配合 ReducedValue。节点应只返回部分更新字典,不要返回完整状态。
边与路由:固定流程用 add_edge();按状态分支用 add_conditional_edges();同时更新状态并路由用 Command;并行分发用 Send。循环通过条件边返回 END 终止。
适用场景:需要对智能体编排做细粒度控制、构建带分支/循环的复杂工作流、需要 human-in-the-loop 与持久化时使用。快速原型可选 LangChain agents,简单无状态流程可选 LangChain 直接调用,开箱即用功能可选 Deep Agents。
限制:无法修改 START/END 行为;不能在节点函数外访问状态;不能直接修改状态,必须返回部分更新字典;START 仅作入口,不能路由回 START;reducer 需类型匹配;Python 中 Command 返回类型需用 Literal 声明路由目标;TypeScript 中 Command 节点需用 { ends } 声明目标;graph.invoke() 返回 Promise,需 await。