中級注目
LangGraphのマスター
LangChainの最新オーケストレーションエンジンを使用して、本番環境向けのステートフルなマルチエージェントグラフを構築する方法を学びます。
45分
LangGraphGPT-4
LangGraphのマスター#
LangGraphは、LLMを使用したステートフルなマルチアクターアプリケーションを構築するための強力なライブラリです。このチュートリアルでは、基礎から高度な本番パターンまでを解説します。
前提条件#
開始する前に、以下を確認してください:
- Python 3.9以上がインストールされていること
- LangChainの基本的な理解
- OpenAI APIキー
環境のセットアップ#
pip install langgraph langchain openaiコアコンセプト#
グラフ構造の理解#
LangGraphは有向グラフを使用します:
- ノード:個々の計算ステップまたはエージェントのアクションを表します
- エッジ:条件付きまたは無条件の遷移を定義します
- ステート:ノード間で受け渡される型付き辞書です
最初のグラフを作成する#
from typing import TypedDict, List
from langgraph.graph import StateGraph, END
class AgentState(TypedDict):
messages: List[str]
current_step: str
completed: bool
# グラフを初期化
workflow = StateGraph(AgentState)
# ノードを定義
def research_node(state: AgentState) -> AgentState:
# 調査を実行
state["messages"].append("Research completed")
return state
def analysis_node(state: AgentState) -> AgentState:
# 調査結果を分析
state["messages"].append("Analysis completed")
return state
# グラフにノードを追加
workflow.add_node("research", research_node)
workflow.add_node("analysis", analysis_node)
# エッジを定義
workflow.add_edge("research", "analysis")
workflow.add_edge("analysis", END)
# エントリーポイントを設定
workflow.set_entry_point("research")
# グラフをコンパイル
app = workflow.compile()高度なパターン#
条件付きルーティング#
def should_continue(state: AgentState) -> str:
if state["completed"]:
return "end"
return "continue"
workflow.add_conditional_edges(
"analysis",
should_continue,
{"continue": "research", "end": END}
)人間介入(Human-in-the-Loop)#
LangGraphは人間介入のためのブレークポイントをサポートします:
app = workflow.compile(
checkpointer=memory,
interrupt_before=["analysis"]
)本番環境のベストプラクティス#
- ステート永続化:チェックポイントにはRedisまたはPostgreSQLを使用します
- エラーハンドリング:指数バックオフ付きのリトライロジックを実装します
- 可観測性:トレーシングのためにLangSmithと統合します
- テスト:個々のノードに対して単体テストを記述します
次のステップ#
- マルチエージェント協調パターンを探求する
- ストリーミングレスポンスについて学ぶ
- グラフ内でのツール呼び出しを実装する