词汇表与资料
源码版本1.2.9
核心术语
| 术语 | 英文 | 说明 |
|---|---|---|
| 状态图 | StateGraph | 用户构建入口,add_node / add_edge / add_conditional_edges / compile。libs/langgraph/langgraph/graph/state.py |
| 编译图 | CompiledGraph / Pregel | StateGraph.compile() 的产物,实现 PregelProtocol,承载 stream / invoke / astream 入口。libs/langgraph/langgraph/pregel/main.py |
| Pregel 执行体 | Pregel | 编译后的可执行图,继承 PregelProtocol,持有 nodes / channels / checkpointer。libs/langgraph/langgraph/pregel/main.py |
| 超步 | superstep | Pregel 模型的执行单位,一个超步内并发执行被触发的所有节点,步边界同步通道更新;借鉴自 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_node | StateGraph.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 / MemorySaver | BaseCheckpointSaver 的内存实现,仅用于调试;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 |
| 命令 | Command | resume / goto / update 三合一原语,既可作节点返回值也可作 invoke 输入。libs/langgraph/langgraph/types.py |
| 投递 | Send | PUSH 任务原语,向指定节点投递带特定 arg 的任务,实现 map-reduce 扇出。libs/langgraph/langgraph/types.py |
| 功能 API | @entrypoint / @task | 函数式 API,@entrypoint 把函数包成 Pregel,@task 包成可调度的子任务。libs/langgraph/langgraph/func/__init__.py |
| 流模式 | stream_mode | Pregel.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。
官方资料
- LangGraph 官方文档
- LangGraph 教程
- LangGraph 流式指南
- LangGraph 人在环指南
- GitHub 仓库 langchain-ai/langgraph(本站源码钉定 tag
1.2.9)
源码版本
本站源码版本钉定 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。