はじめに
エージェントをゼロから構築するのは概念を理解するのに最適ですが、運用には フレームワーク が必要です。 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 = エージェント ワークフローのステート マシン
- ノード = 関数、エッジ = 遷移、状態 = 共有データ
- 複雑なデシジョンツリーの条件付きルーティング
- 人間参加型の組み込みサポート
- 長時間実行されるワークフローの永続性
演習
- LangGraphでリサーチエージェントを実装する 2.人間参加型の承認ステップを追加する
- ツールが失敗した場合の再試行ロジックを実装する
- 3 つ以上の条件分岐を持つエージェントを構築する