AI・機械学習
上級

LangGraph(ランクグラフ)

LangChainチームが開発したグラフベースのLLMエージェントフレームワーク。状態機械としてエージェントの動作を定義し、複雑な分岐・ループ・マルチエージェント協調を実現する。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
エージェント
グラフ
マルチエージェント
AI開発

LangGraphとは

LangGraphは2024年にLangChainチームがリリースしたエージェント向けフレームワーク。従来のLangChainチェーンが線形・DAG的な処理しかできなかったのに対し、LangGraphはサイクル(ループ)を含むグラフで複雑なエージェント動作を表現できる。

なぜグラフか

LLMエージェントの動作は本質的にループを含む:

  1. ReActループ: 思考 → ツール呼び出し → 観察 → 再思考
  2. フィードバックループ: 生成 → 評価 → 改善
  3. マルチエージェント協調: 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
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/7