LangGraphでは、AIエージェントの処理を状態、ノード、遷移として表し、次に何を実行するかを条件で制御します。 向いているのは、長い処理の途中保存、人の承認、障害後の再開、複数経路の可視化が必要な場面です。単純な一回応答ではなく、どの状態からどこへ進めるかを明示したいときに使います。
AIエージェント開発を体系的に学びたい方は、AIエージェントが学べるおすすめスクールで、AI活用、Python実装、マンツーマン支援の違いを比較できます。
| 構成要素 | 役割 | 申請処理の例 |
|---|---|---|
| State | 処理中の共有データ | 申請内容、判定、承認結果 |
| Node | 状態を読み書きする処理 | 入力検証、審査、通知 |
| Edge | 次のノードへの接続 | 検証後に審査へ進む |
| Conditional edge | 条件による分岐 | 金額により承認へ回す |
| Checkpoint | 状態の保存点 | 承認待ちで停止する |
状態を先に決めてからノードへ分ける
LangGraphの公式概要は、長時間動く状態保持型エージェント向けの低水準オーケストレーション基盤として、永続実行、ストリーミング、人の介在などを挙げています。
先に「各処理が何を受け取り、何を追加するか」をStateへ定義します。ノードごとに別形式のデータを無秩序に返すと、分岐条件と再開地点を追えません。
申請処理なら次の順です。
requestへ申請内容を入れる- 検証ノードが
validation_errorsを更新する - 判定ノードが
risk_levelを追加する - 条件分岐が自動処理または承認待ちを選ぶ
- 完了ノードが
resultと終了理由を記録する
状態には業務上必要な値だけを置き、APIキーなどの秘密情報は実行環境から渡します。
条件分岐ではモデルの判断と業務規則を分ける
すべての分岐をモデルに決めさせると、同じ入力でも経路が変わる可能性があります。金額、権限、必須項目の有無のように明確な規則はコードで判定し、文章の分類など曖昧さを含む部分だけをモデルへ任せます。
| 分岐 | 決める主体 | 理由 |
|---|---|---|
| 必須項目が欠けている | コード | 判定条件が明確 |
| 文章が苦情に当たる | モデルと検証 | 言語的な判断が必要 |
| 一定金額を超える | コード | 規程を厳密に適用 |
| 例外的な申請を許可する | 人 | 責任ある判断が必要 |
LangGraphのGraph API資料では、StateGraph、ノード、エッジ、条件分岐を使って処理を構築します。図が複雑になった場合は、業務規則とモデル判断を同じノードへ詰め込んでいないか見直します。
チェックポイントで停止と再開を成立させる
LangGraphの永続化資料では、各ステップの状態をチェックポイントとして保存し、スレッド単位で参照する仕組みが説明されています。これにより、人の確認を待つ処理や障害後の再開を設計できます。
保存すべき情報は、業務データだけではありません。
- 実行IDと利用者ID
- 現在のノードと直前の結果
- 承認待ちの理由
- すでに実行した外部操作
- 再開可能か、最初からやり直すか
外部送信の直後に障害が起きると、再開時に同じ通知を送る恐れがあります。操作に一意なキーを付ける、実行済みを照合するなど、重複しても結果が壊れない作りが必要です。
interruptの前後では副作用を慎重に扱う
LangGraphのinterrupt資料では、実行を一時停止し、状態を保存して、入力を受けて再開する方法が示されています。再開時には該当ノードの先頭から動くため、interruptより前の副作用は再実行され得ます。
承認ノードは、次のように責任を分けます。
- 変更予定の内容を組み立てる
- interruptで人へ提示する
- 承認結果を受け取る
- 承認済みの場合だけ更新する
- 更新IDと結果を保存する
Anthropicのエージェント設計ガイドが示すように、複雑さは必要な場合に追加します。最初から多数のノードを作らず、一つの承認分岐で保存、停止、再開、拒否を確かめます。
AIエージェントのワークフロー設計も参照すると、決められた経路とモデルが選ぶ経路の使い分けを整理できます。
LangGraphの状態管理でよくある質問
LangChainだけでは状態を保存できませんか?
LangChainのエージェントはLangGraph基盤で動き、一般的な処理を高水準APIで扱えます。独自の状態項目、複雑な条件分岐、承認待ち、再開位置まで制御したい場合にLangGraphを直接使う意味が大きくなります。
Stateへ会話履歴をすべて保存すべきですか?
必要な履歴と業務状態を分けて考えます。長い会話を無条件に残すとコストと情報管理の負担が増えるため、現在の処理に必要な要約、確定値、参照IDを中心に設計してください。
人の承認を入れれば誤操作を防げますか?
承認は有効ですが、提示内容が曖昧なら判断できません。対象、変更前後、影響範囲、取り消し可否を表示し、承認後も権限検証と重複防止を行う必要があります。
状態遷移は停止と再開から逆算する
LangGraphの価値は処理を図にすることだけでなく、途中状態を根拠付きで残し、安全に再開できる点にあります。業務規則とモデル判断を分け、外部操作の前後を明確にします。
- Stateはノード間で共有する業務データの定義
- 明確な規則はコード、曖昧な分類はモデルという分担
- チェックポイントには現在地と実行済み操作を保存
- interrupt後の再実行を前提にした副作用の配置
役割の異なる複数エージェントへ処理を分けたい方は、CrewAIとAutoGenの比較で開発思想と制御方法の違いを確認できます。




