Chuyển đến nội dung chính

レッスン 9: LangChain と LangGraph — ステートフル エージェント ワークフロー

LangChain チェーンから LangGraph グラフまで: ノード、エッジ、条件付きルーティング、状態管理。人間参加型の承認フローを備えた調査エージェントを構築します。

🧠 AI と ML — レッスン 8 レッスン 9: LangChain と LangGraph — ステートフル エージェントのワークフロー

AI エージェントの構築: ゼロから本番環境まで

パート 4: エージェント フレームワーク

xdev.asia

はじめに

エージェントをゼロから構築するのは概念を理解するのに最適ですが、運用には フレームワーク が必要です。 LangGraph (LangChain チームによる) は、ステートフルなグラフベースのエージェント ワークフローに現在利用できる最も強力なフレームワークです。


1. LangChain と LangGraph の比較

ラングチェーンランググラフ
パラダイムチェーン (リニア)グラフ (循環)
状態無国籍ステートフル
こんな方に最適シンプルなパイプライン、RAG複雑なエージェント、マルチステップ
制御フローシーケンシャル条件付きルーティング

2. LangGraph の基礎

from langgraph.graph import StateGraph, MessagesState, START, END

def call_llm(state: MessagesState):
    response = model.invoke(state["messages"])
    return {"messages": [response]}

def use_tools(state: MessagesState):
    # Execute tool calls
    ...

# Build graph
graph = StateGraph(MessagesState)
graph.add_node("llm", call_llm)
graph.add_node("tools", use_tools)
graph.add_edge(START, "llm")
graph.add_conditional_edges("llm", should_use_tools, {"yes": "tools", "no": END})
graph.add_edge("tools", "llm")

agent = graph.compile()

概要

  • LangGraph = エージェント ワークフローのステート マシン
  • ノード = 関数、エッジ = 遷移、状態 = 共有データ
  • 複雑なデシジョンツリーの条件付きルーティング
  • 人間参加型の組み込みサポート
  • 長時間実行されるワークフローの永続性

演習

  1. LangGraphでリサーチエージェントを実装する 2.人間参加型の承認ステップを追加する
  2. ツールが失敗した場合の再試行ロジックを実装する
  3. 3 つ以上の条件分岐を持つエージェントを構築する