用語集と資料
源码版本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 リストを返して fan-out も可能。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 fan-out を実現。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 を実行してください。