目次
この記事について
このブログシリーズでは、注目すべきオープンソースソフトウェア(OSS)を定期的に紹介していきます。連載第31回となる今回は、前回取り上げた「DeerFlow」で使用されているツール「LangGraph」に焦点を当てます。
ソフトウェア開発の現場では、長時間稼働し状態を維持するエージェントの構築と管理がますます重要視されています。その中で、LangGraphは、高度なワークフロー構築をサポートするための強力なフレームワークです。このツールは、柔軟性と耐障害性を兼ね備えたエージェントを容易にデプロイできることから、開発者にとっての大きな利便性を提供します。
LangGraphは、開発者が人間の監視を取り入れたり、長期的なメモリーを持つエージェントを構築したりする際に、真の状態管理を可能にします。また、最適なデバッグや可視化機能も搭載されているため、複雑なエージェントの挙動を詳細に把握できます。このような特長により、LangGraphは、AIアプリケーションの開発において、プロトタイピングの迅速化や反復的なタスクの自動化など、多くの工程を効率化する可能性を秘めています。
今後の開発における選択肢として、LangGraphがいかに役立つかを探るために、この記事を通してその魅力と機能を深く掘り下げていきます。
リンク:https://github.com/langchain-ai/langgraph

本コンテンツは、弊社AI開発ツール「IXV」を用いたOSSツール紹介です。情報の正確性には努めておりますが、内容に誤りが含まれる可能性がございますのでご了承ください。
1. LangGraphでできること
LangGraphは、長時間実行される状態を持つエージェントを構築、管理、デプロイするための強力なオーケストレーションフレームワークです。以下のような機能を提供しています。
1.1 耐障害性のある実行
LangGraphを使用すると、失敗から復元し、長時間にわたって持続するエージェントを構築できます。このフレームワークは、エージェントが中断された場合でも、正確に前回の状態から再開することを可能にします。
1.2 ヒューマン・イン・ザ・ループ
実行中のエージェントの状態を随時確認・修正することで、人間の監視をシームレスに組み込むことができます。これにより、エージェントの動作を適宜調整可能です。
1.3 包括的なメモリ
LangGraphは短期的な作業メモリと、セッションをまたがる長期的な持続メモリを持つ、本当に状態を持つエージェントを作成できます。
1.4 デバッグ機能
LangSmithを活用することで、複雑なエージェントの動作を可視化し、実行経路の追跡、状態遷移のキャプチャ、詳細なランタイムメトリクスの取得が可能です。
1.5 本番環境へのデプロイ
LangGraphは、状態を持つ長時間実行されるワークフローのユニークな課題に対応するために設計されたスケーラブルなインフラストラクチャを提供し、信頼性の高いエージェントシステムを自信を持ってデプロイできます。
2. セットアップ手順
LangGraphをセットアップする手順は以下の通りです。
2.1 必要なライブラリのインストール
まず、LangGraphをインストールします。次のコマンドを実行してください。
pip install -U langgraph
2.2 エージェントの作成
次に、事前構築されたコンポーネントを使用してエージェントを作成します。以下の例では、天気情報を取得するエージェントを作成します。
from langgraph.prebuilt import create_react_agent
def get_weather(city: str) -> str:
"""指定された都市の天気を取得します。"""
return f"It's always sunny in {city}!"
agent = create_react_agent(
model="anthropic:claude-3-7-sonnet-latest",
tools=[get_weather],
prompt="You are a helpful assistant"
)
2.3 環境要件
LangGraphはPython 3.7以上で動作します。また、Anthropic APIキーが必要ですので、あらかじめ取得しておいてください。
3. 簡単な使い方
LangGraphを使用したエージェントの基本的な使い方を説明します。
3.1 エージェントの実行
エージェントがメッセージを受け取り、応答を生成するには、invoke
メソッドを使用します。以下の例において、ユーザーのメッセージをエージェントに渡し、応答を受け取ります。
agent.invoke(
{"messages": [{"role": "user", "content": "what is the weather in sf"}]}
)
3.2 状態管理
LangGraphの強力な機能の一つは、状態管理です。エージェントの状態を保持するために、StateGraph
を使用して状態を定義し、ノードを追加してエージェントの動作を指定します。ノードは通常、Python関数として定義され、現在の状態を入力として受け取り、更新された状態を出力します。
3.3 メモリの追加
エージェントが会話を通じてメモリを維持するためには、checkpointer
を使用して状態を保存します。これにより、エージェントは過去の会話の履歴を参照しながら、より文脈を理解した応答を生成できます。
4. 結論
LangGraphは、状態を持つエージェントを構築するための強力で柔軟なフレームワークです。耐障害性のある実行、ヒューマン・イン・ザ・ループのサポート、包括的なメモリ機能を提供し、開発者が複雑なAIアプリケーションを効率的に構築できるようになります。エージェントの作成も簡単で、迅速に実装を始めることができます。LangGraphを使用することで、未来志向のソリューションを提供するための基盤を手に入れましょう。