Skip to content
目录

Graph 层详解

开发者主要接触 StateGraph:声明 State schema、addNodeaddEdge / addConditionalEdgescompile 得到可调用的 CompiledGraph(Pregel 实例)。


1. 为何需要 Graph 层

直接配 PregelStateGraph
底层、冗长声明式构图
易错内置校验、START/END

2. 核心类型

API作用
Annotation / StateSchema字段类型 + reducer + default
StateGraph有状态图
addNode(name, fn)注册节点
addEdge固定后继
addConditionalEdges路由函数选分支
compile({ checkpointer })生成可执行图

3. Annotation 与 reducer

每个 state 键可指定:

  • 默认值
  • reducer:两值合并(如 (a,b)=>[...a,...b]
  • 对应到底层 channel 类型

列表字段几乎总要自定义 reducer,否则后写覆盖先写。


4. compile 做了什么

  1. 校验图连通性、节点名、边引用。
  2. 把 State 映射为 channel 集合。
  3. 生成 Pregel 的 nodes、channels、checkpointer 绑定。
  4. 暴露 invoke / stream / getState / updateState 等。

5. Command 与动态边

Command 可在运行时指定 goto 下一节点或更新 state,用于工具返回、人机确认后跳转。
Send 用于 map 扇出到多实例子节点。


6. 子图

节点可嵌套 子图(另一 CompiledGraph),state 可映射父子 channel。用于多 Agent 分层。


7. 总结

Graph 层 = DSL + 编译器;排错时 graph.getGraph().drawMermaid() 等可视化边与节点(依版本 API)。

MIT License.