Skip to content

词汇表与资料 ​

源码版本1.2.9

核心术语 ​

术语英文说明
状态图StateGraph用户构建入口,add_node / add_edge / add_conditional_edges / compile。libs/langgraph/langgraph/graph/state.py
编译图CompiledGraph / PregelStateGraph.compile() 的产物,实现 PregelProtocol,承载 stream / invoke / astream 入口。libs/langgraph/langgraph/pregel/main.py
Pregel 执行体Pregel编译后的可执行图,继承 PregelProtocol,持有 nodes / channels / checkpointer。libs/langgraph/langgraph/pregel/main.py
超步superstepPregel 模型的执行单位,一个超步内并发执行被触发的所有节点,步边界同步通道更新;借鉴自 Google Pregel 论文的 BSP 模型。
通道channel状态更新原语,每个通道有版本号,reducer 决定如何合并写入。libs/langgraph/langgraph/channels/
通道基类BaseChannel所有通道的抽象基类,定义 update / get / checkpoint 等接口。libs/langgraph/langgraph/channels/base.py
LastValue 通道LastValue只保留最新值的通道,常用于状态字段;LastValueAfterFinish 延迟到步结束才更新。libs/langgraph/langgraph/channels/last_value.py
归约器reducer通道合并写入的函数,如 operator.add 用于列表追加;通过 Annotated[T, reducer] 在 state schema 里声明。
节点node / PregelNode图的执行单元,持 bound / triggers / writers / subgraphs。libs/langgraph/langgraph/pregel/_read.py
加节点add_nodeStateGraph.add_node(name, action) 注册节点函数或 Runnable,内部走 coerce_to_runnable。libs/langgraph/langgraph/graph/state.py
条件边add_conditional_edges按条件函数返回值路由到下一节点,返回 Send 列表实现扇出。libs/langgraph/langgraph/graph/state.py
检查点checkpoint线程级持久化快照,记录通道版本、pending writes、metadata,支持断点续跑。libs/langgraph/langgraph/pregel/_checkpoint.py
检查点保存器BaseCheckpointSaver检查点持久化接口,put / get_tuple / list。libs/checkpoint/langgraph/checkpoint/base/__init__.py
内存保存器InMemorySaver / MemorySaverBaseCheckpointSaver 的内存实现,仅用于调试;MemorySaver 是 InMemorySaver 的旧别名。libs/checkpoint/langgraph/checkpoint/memory/__init__.py
状态快照StateSnapshot步开始时的状态视图,含 values / next / tasks / interrupts。libs/langgraph/langgraph/types.py
中断interrupt / Interrupt节点内 interrupt(value) 抛 GraphInterrupt 暂停图执行,客户端用 Command(resume=...) 恢复。libs/langgraph/langgraph/types.py
命令Commandresume / goto / update 三合一原语,既可作节点返回值也可作 invoke 输入。libs/langgraph/langgraph/types.py
投递SendPUSH 任务原语,向指定节点投递带特定 arg 的任务,实现 map-reduce 扇出。libs/langgraph/langgraph/types.py
功能 API@entrypoint / @task函数式 API,@entrypoint 把函数包成 Pregel,@task 包成可调度的子任务。libs/langgraph/langgraph/func/__init__.py
流模式stream_modePregel.stream / astream 的输出投影选项:values / updates / messages / custom / checkpoints / tasks / debug。libs/langgraph/langgraph/pregel/main.py

目录约定 ​

  • 主源码在 libs/langgraph/langgraph/,按职责分目录:
    • pregel/ — 执行引擎内核。main.py 是 Pregel 类入口,__init__.py 导出公共接口,_loop.py 是 PregelLoop 状态机,_runner.py 是 PregelRunner 并发执行器,_algo.py 是 apply_writes / prepare_next_tasks / should_interrupt 等算法函数,_io.py 是 map_command / map_input / map_output_*,_call.py 是 SyncAsyncFuture 和 task 的 Runnable 包装,_read.py 是 PregelNode,_executor.py 是 BackgroundExecutor / AsyncBackgroundExecutor,remote.py 是 RemoteGraph。
    • graph/ — StateGraph / CompiledStateGraph 用户接口,state.py 是核心,_node.py / _branch.py 是辅助。
    • channels/ — BaseChannel / LastValue / Topic / Binop 等通道实现。
    • func/ — @entrypoint / @task 函数式 API(实际全部在 func/__init__.py 一个文件)。
    • types.py — Command / Send / Interrupt / StateSnapshot / PregelExecutableTask 等公共数据类型。
    • stream/ — GraphRunStream / StreamMux 等流式 mux 实现。
    • managed/ — IsLastStep 等运行时注入值。
  • 检查点实现拆成独立包:libs/checkpoint/(base + memory)、libs/checkpoint-sqlite/、libs/checkpoint-postgres/。
  • Pregel 引擎入口在 libs/langgraph/langgraph/pregel/__init__.py,主类 Pregel 在 pregel/main.py。

官方资料 ​

源码版本 ​

本站源码版本钉定 1.2.9,行号以该 tag 为准。所有 <SrcLink> 指向 github.com/langchain-ai/langgraph/blob/1.2.9/<path>#Lxx-Lyy。升版本改 docs/.vitepress/site.ts 的 LANGGRAPH_TAG 再跑 npm run check:refs。