AI・機械学習
上級
LangGraph(ランクグラフ)
LangChainチームが開発したグラフベースのLLMエージェントフレームワーク。状態機械としてエージェントの動作を定義し、複雑な分岐・ループ・マルチエージェント協調を実現する。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
エージェント
グラフ
マルチエージェント
AI開発
LangGraphとは
LangGraphは2024年にLangChainチームがリリースしたエージェント向けフレームワーク。従来のLangChainチェーンが線形・DAG的な処理しかできなかったのに対し、LangGraphはサイクル(ループ)を含むグラフで複雑なエージェント動作を表現できる。
なぜグラフか
LLMエージェントの動作は本質的にループを含む:
- ReActループ: 思考 → ツール呼び出し → 観察 → 再思考
- フィードバックループ: 生成 → 評価 → 改善
- マルチエージェント協調: A→B→C→A(コーディネーター⇔ワーカー)
DAGでは表現不可能なこれらのパターンをLangGraphは自然に扱える。
基本概念
State(状態)
グラフ全体で共有されるTypedDictオブジェクト。各ノードは状態を読んで更新する。
from typing import TypedDict, Annotated
from langgraph.graph import StateGraph, END
import operator
class AgentState(TypedDict):
messages: Annotated[list, operator.add] # メッセージ履歴(追記型)
next_step: str
Node(ノード)
状態を受け取って更新された状態を返す関数。LLM呼び出し・ツール実行・条件判定などを担当。
Edge(エッジ)
- 通常エッジ: 常にA→B
- 条件付きエッジ: 状態に基づきA→BまたはA→C
シンプルなエージェント実装
from langgraph.graph import StateGraph
from langgraph.prebuilt import ToolNode
from langchain_openai import ChatOpenAI
# ツール定義
tools = [web_search_tool, calculator_tool]
model = ChatOpenAI(model="gpt-4o").bind_tools(tools)
def call_model(state):
response = model.invoke(state["messages"])
return {"messages": [response]}
def should_continue(state):
last_msg = state["messages"][-1]
return "tools" if last_msg.tool_calls else END
# グラフ構築
graph = StateGraph(AgentState)
graph.add_node("agent", call_model)
graph.add_node("tools", ToolNode(tools))
graph.set_entry_point("agent")
graph.add_conditional_edges("agent", should_continue)
graph.add_edge("tools", "agent") # ループ
app = graph.compile()
Checkpointer(永続化)
SQLiteやPostgreSQLを使ってグラフの実行状態を保存できる。中断・再開・タイムトラベルデバッグが可能。
from langgraph.checkpoint.sqlite import SqliteSaver
memory = SqliteSaver.from_conn_string(":memory:")
app = graph.compile(checkpointer=memory)
Human-in-the-loop
interrupt_beforeやinterrupt_afterでエージェントの実行を一時停止し、人間の承認を挟める。
LangGraph Cloud
2024年にGAとなったマネージドデプロイサービス。REST API・WebSocket・ストリーミングでエージェントを本番公開できる。
LangGraph vs AutoGen vs CrewAI
- LangGraph: 細粒度制御・カスタム複雑フロー向け
- AutoGen: 研究・プロトタイプ向け会話型
- CrewAI: ビジネスワークフロー向け高レベルAPI