LangGraphとは
状態遷移をグラフとして定義し、複雑なマルチエージェントアプリケーションを構築するフレームワーク
ひとことで言うと
AIエージェントの複雑な動きを、図(グラフ)のように設計できるフレームワーク。
概要
LangGraphとは、LangChainのチームが開発した、LLMアプリケーションの処理フローをグラフ(ノードとエッジ)として定義できるフレームワーク。 処理を直線的に連結するLangChainのチェーンと異なり、条件分岐・ループ・複数エージェント間の状態共有といった、より複雑な制御フローを明示的に表現できる点が特徴で、マルチエージェントシステムや長時間状態を保持するエージェントの構築に用いられる。 各ノードの状態を永続化する仕組みも備えており、処理の途中経過を保存して後から再開したり、人間の承認を挟んでから次のステップへ進める人間参加型のフローも構築しやすい。 エージェントの挙動が複雑化しループや条件分岐が増えるほど、LangChainのチェーンだけでは表現しづらくなるため、LangGraphはより本格的なエージェントシステムを構築する際の選択肢として使われる。
背景
自律的なエージェントの処理フローは、単純な直線的な処理の連結だけでは表現しきれない、条件分岐やループ、複数の主体間でのやり取りを伴うことが多い。 LangGraphは、こうした複雑な制御フローをグラフ構造として明示的に定義・管理できるよう開発された。
歴史
2024年: LangChainのチームがLangGraphを公開し、状態を持つ複雑なエージェントアプリケーション構築向けのフレームワークとして展開している。
アーキテクチャ
アプリケーションの各処理ステップをノードとして定義し、ノード間の遷移条件をエッジとして表現するグラフ構造でアプリケーション全体を構築する。 グラフ全体で共有される状態(State)をノード間で読み書きしながら処理を進める。
コード例
StateGraphによる最小構成(概念例)
from typing import TypedDict
from langgraph.graph import StateGraph, END
class State(TypedDict):
count: int
def increment(state: State) -> State:
return {"count": state["count"] + 1}
graph = StateGraph(State)
graph.add_node("increment", increment)
graph.set_entry_point("increment")
graph.add_edge("increment", END)
app = graph.compile()
print(app.invoke({"count": 0}))利点
欠点
- 単純なタスクに対しては、グラフ構造を定義する分オーバーヘッドが大きく感じられやすい
- LangChainのエコシステムに関する前提知識を要する場合がある
- グラフが複雑になるほど、状態遷移の全体像を把握するための設計・可視化の工夫が必要になる
比較
- LangChain — LangGraphは、LangChainのチームが開発した、より複雑な状態管理を伴うエージェント構築向けの派生フレームワーク
- マルチエージェント — LangGraphは、マルチエージェント構成を実装するための代表的なフレームワークの1つ
- CrewAI — LangGraphとCrewAIは、いずれもマルチエージェントアプリケーションを構築するためのフレームワーク
- Semantic Kernel — LangGraphがグラフ構造による明示的な状態遷移の制御を軸にするのに対し、Semantic KernelはLLM統合SDKの一部としてマルチエージェント機能を提供する
関連用語
よくある質問
LangGraphはLangChainがなくても使える?
LangChainのコンポーネントと組み合わせて使うことが多いが、LangGraph単体でもグラフベースのアプリケーションを構築できる。
LangGraphで人間の承認を挟めるか?
処理を任意のノードで一時停止し、人間の確認・承認を経てから次のステップへ進める人間参加型(Human-in-the-loop)のフローを組み込める。
参考文献
- Official WebsiteLangGraph
- GitHublangchain-ai/langgraph
関連する比較
LangChain vs LangGraph
LangChainはLLMアプリケーションの部品を組み合わせて直線的な処理(チェーン)を構築するフレームワーク、LangGraphは同じチームが開発した、状態遷移をグラフとして表現し条件分岐・ループ・マルチエージェントに対応するフレームワーク。
CrewAI vs LangGraph
CrewAIは役割を与えた複数のAIエージェントに協調してタスクを遂行させるPythonのマルチエージェントフレームワーク。LangGraphは状態遷移をグラフとして定義し、複雑なマルチエージェントアプリケーションを構築するLangChainエコシステムのフレームワーク。
LangGraph vs Semantic Kernel
LangGraphはLangChainのチームが開発する、状態遷移をグラフとして定義するマルチエージェントフレームワーク。Semantic Kernelは、Microsoftが提供するLLM統合SDKで、マルチエージェントのオーケストレーション機能も備える。