LangGraph(ラングラフ)
LangGraphはLangChainが開発したグラフベースのエージェントワークフローフレームワークで、ノードとエッジで構成される有向グラフとして複雑なLLMアプリケーションの制御フローと状態管理を実現する。
LangGraphは、LLMエージェントの制御フローを有向グラフとして定義するPythonフレームワークである。LangChain社が2024年に公開し、2026年時点でバージョン0.2系に到達。GitHub Starは38,000超で、マルチエージェントワークフローの構築基盤として広く採用されている。
概要
従来のLangChainはチェーン(直列処理)とエージェント(ReAct)が主なパターンだったが、条件分岐・ループ・並列実行・人間の承認待ちといった複雑なフロー制御には不向きだった。LangGraphはこの課題を、有向グラフ(DAG + サイクル許容)のノード=処理ステップ、エッジ=遷移条件として表現することで解決した。
2026年のLangGraph 0.2では、StateGraph(状態付きグラフ)・MessageGraph(チャット履歴ベース)の2種類が提供されている。StateGraphが最も汎用的で、TypedDictまたはPydanticモデルで状態スキーマを定義し、各ノードが状態を読み書きしながら処理を進める。LangGraph Cloudは商用SaaSとして、永続化・リプレイ・ヒューマンインザループ・モニタリングを提供している。
主な特徴・仕組み
- グラフベース制御: ノード(関数/LLM呼び出し)とエッジ(遷移条件)で任意のフローを表現。サイクル(ループ)も可能で、自己修正パターンを自然に実装できる
- ファーストクラスの状態管理: TypedDict/Pydanticで型安全な状態を定義。Annotated型でリデューサー(状態マージ戦略)を指定可能
- チェックポイント: SQLite/PostgreSQL/Redisバックエンドに各ステップの状態を自動保存。障害時のリプレイや「タイムトラベル」デバッグが可能
- ヒューマンインザループ:
interrupt_before/interrupt_afterでノード実行前後に人間の承認を挟める。LangGraph Studioで視覚的に操作可能 - ストリーミング: ノード実行中のトークンストリーミング、ノード完了通知、状態変更イベントの3レベルのストリーミングを提供
- サブグラフ: グラフ内にグラフを埋め込み、モジュール化と再利用を実現。親グラフの状態と子グラフの状態はマッピングで接続
- 条件付きエッジ: Python関数で遷移先を動的に決定。LLMの出力に応じて分岐パターンを実装
- 並列実行: 同一ノードから複数エッジを引くことで、並列ファンアウト→ファンイン処理を実現
StateGraph構築の基本フロー
1. 状態スキーマ定義(TypedDict)
2. StateGraph(schema) インスタンス作成
3. add_node() でノード追加
4. add_edge() / add_conditional_edges() で遷移定義
5. set_entry_point() で開始ノード指定
6. set_finish_point() で終了ノード指定
7. compile() でRunnableに変換
8. invoke() / stream() で実行
代替フレームワークとの比較
| 項目 | LangGraph | AutoGen | CrewAI | Prefect/Airflow |
|---|---|---|---|---|
| 制御モデル | グラフ(ノード+エッジ) | 会話(メッセージパッシング) | 役割+プロセス | DAGタスク |
| 状態管理 | TypedDict/Pydantic | ConversableAgent内部 | Task結果チェーン | XCom/変数 |
| サイクル | 可能 | 可能 | 不可(sequential/hierarchical) | 不可(DAG制約) |
| ヒューマンインザループ | ネイティブサポート | UserProxyAgent | 手動介入ポイント | 手動承認タスク |
| ストリーミング | 3レベル対応 | 基本対応 | 基本対応 | 非対応 |
| 学習曲線 | 高い | 中程度 | 低い | 中程度 |
| 商用サポート | LangGraph Cloud | なし | CrewAI Enterprise | Prefect Cloud |
よくある質問(FAQ)
Q1: LangGraphとLangChainの関係は? A: LangGraphはLangChain社が開発した別パッケージ。LangChainのLLM抽象化・ツール定義・プロンプトテンプレートを利用しつつ、制御フローをグラフとして表現する上位レイヤー。LangChainなしでも動作するが、実用上はセットで使うケースが大半。
Q2: LangGraph StudioとCloudの違いは? A: Studioはローカルで動作するビジュアルデバッガ(Mac/Web)。グラフ構造の可視化・ステップ実行・状態インスペクションが可能。Cloudは本番環境向けSaaSで、永続化・スケーリング・モニタリング・APIエンドポイント自動生成を提供。
Q3: LangGraphの本番運用でよくあるハマりポイントは? A: 状態スキーマ変更時の後方互換性(チェックポイントが読めなくなる)、ノード内例外のハンドリング(デフォルトではグラフ全体が停止)、条件付きエッジの戻り値typo(存在しないノード名を返すとランタイムエラー)の3点が頻出。
まとめ
- LangGraphはLLMエージェントのワークフローをグラフとして定義・実行するフレームワーク
- StateGraphで型安全な状態管理、チェックポイントで障害回復、ヒューマンインザループで人間承認を実現
- サイクル(ループ)対応により自己修正パターンを自然に実装可能
- 学習コストは高いが、複雑なマルチエージェント制御では最も柔軟な選択肢