はじめに
LangGraphライブラリを使うとワークフロー形式ロジックを組んだLLMエージェントが開発できます。 公式のチュートリアルコードをGoogle colabですぐに実行できるようにまとめたので、ぜひ遊んでみてください。
LangGraphの概要
LangGraphはAIエージェント構築フレームワークです。
- 高い信頼性と制御性:モデレーションと人間による承認により、エージェントの行動を適切に管理し、一貫性を保ちます。
- 低レベルでの拡張性:柔軟な構成要素により、ユースケースに最適化されたカスタムエージェントやマルチエージェントシステムを構築できます。
- 高性能なストリーミング機能:エージェントの推論や行動をリアルタイムで可視化できます。
準備するもの
Tavily API・・・LLMやエージェント向けに最適化されたリアルタイムWeb検索API
API キーの設定方法
初めて実行する前にLLMサービスのAPIキーとTavily APIを準備してください。準備したAPIキーは、Google colab画面左のメニューにある、シークレットキーに追加してください。


チュートリアル(各機能の説明)
5つのチュートリアルが準備されています。
1. 基本的なチャットボットの構築
シンプルなチャットボットを作成します。「ノード」「状態(state)」「遷移(edge)」という基本構造を使って、シンプルな会話ができるエージェントを作成します。
- 目的: LangGraphのワークフロー構造を理解する
- ポイント: 会話の開始、応答、終了を1つのグラフとして定義する
2. ツールの追加
エージェントにツールを追加すると、外部情報を活用した応答ができます。検索APIや計算ツールを組み込むと正確な回答ができるようになります。
- 目的: エージェントに「検索」「計算」などの外部アクションを実行させる
- 例: 「今の天気は?」という質問に対し、天気APIから情報を取得して回答する
3. メモリ機能の追加
エージェントが会話の文脈を理解するには、過去の発言や状態を保持する必要があります。短期記憶(セッション中の状態)と長期記憶(セッションをまたぐ記憶)を使って、文脈を考慮した対話ができます。
- 目的: ユーザーとの会話履歴や変数を保持し、文脈を維持する
- 例: 「昨日の質問の続きを教えて」といった文脈を考慮した応答を可能にする
4. ヒューマンインザループ制御
自動応答だけでは対応が難しい場合に、人間による承認や介入を行う仕組みです。LLMでの処理を一時停止し、ユーザーや管理者の判断を仰ぐことができます。
- 目的: エージェントの判断に対して人間が確認・修正・承認できるようにする
- 例: 「この内容を顧客に送信してよいですか?」など、重要な判断時に人間の確認を得る
Add human-in-the-loop controls
5. ステートのカスタマイズ
ノード間でやり取りされる「状態(state)」を自由にカスタマイズできます。特定のフラグや条件に応じてエージェントの動作を変更するための状態管理機能を提供します。
- 目的: 条件分岐や動的制御のための状態管理を実現する
- 例: 特定のフラグ(例:is_admin)がTrueの場合に追加処理を実行する
6. タイムトラベル(会話の巻き戻しと分岐の探索)
過去の状態を記録しており、任意の時点に「巻き戻して」再実行できます。これにより、異なる会話の展開を試したり、誤った分岐からやり直したりすることができます。
- 目的: 会話履歴を追跡し、過去の時点に戻って再実行や分岐探索を可能にする
- 例: 「あの時、別の選択をしていたらどうなったか」を検証する
おわりに
LangGraphのチュートリアルを試してみました。 シンプルにコードでエージェントが作れます。また、Tavily APIのような検索ツールを組み込む方法も簡単に実行できることが分かりました。 公式のgithub上ではテンプレート集も公開されているので試してみてください。
これ以外にも面白そうなテンプレートを見つけたので、別の記事として公開したいと思います。