はじめに

LangGraphライブラリを使うとワークフロー形式ロジックを組んだLLMエージェントが開発できます。 公式のチュートリアルコードをGoogle colabですぐに実行できるようにまとめたので、ぜひ遊んでみてください。

LangGraphの概要

LangGraphはAIエージェント構築フレームワークです。

LangGraph

  • 高い信頼性と制御性:モデレーションと人間による承認により、エージェントの行動を適切に管理し、一貫性を保ちます。
  • 低レベルでの拡張性:柔軟な構成要素により、ユースケースに最適化されたカスタムエージェントやマルチエージェントシステムを構築できます。
  • 高性能なストリーミング機能:エージェントの推論や行動をリアルタイムで可視化できます。

準備するもの

Tavily API・・・LLMやエージェント向けに最適化されたリアルタイムWeb検索API

API キーの設定方法

初めて実行する前にLLMサービスのAPIキーとTavily APIを準備してください。準備したAPIキーは、Google colab画面左のメニューにある、シークレットキーに追加してください。

googlecolab設定方法
googlecolab設定方法_1

チュートリアル(各機能の説明)

5つのチュートリアルが準備されています。

LangGraph

1. 基本的なチャットボットの構築

シンプルなチャットボットを作成します。「ノード」「状態(state)」「遷移(edge)」という基本構造を使って、シンプルな会話ができるエージェントを作成します。

  • 目的: LangGraphのワークフロー構造を理解する
  • ポイント: 会話の開始、応答、終了を1つのグラフとして定義する

Build a basic chatbot

2. ツールの追加

エージェントにツールを追加すると、外部情報を活用した応答ができます。検索APIや計算ツールを組み込むと正確な回答ができるようになります。

  • 目的: エージェントに「検索」「計算」などの外部アクションを実行させる
  • 例: 「今の天気は?」という質問に対し、天気APIから情報を取得して回答する

Add tools

3. メモリ機能の追加

エージェントが会話の文脈を理解するには、過去の発言や状態を保持する必要があります。短期記憶(セッション中の状態)と長期記憶(セッションをまたぐ記憶)を使って、文脈を考慮した対話ができます。

  • 目的: ユーザーとの会話履歴や変数を保持し、文脈を維持する
  • 例: 「昨日の質問の続きを教えて」といった文脈を考慮した応答を可能にする

Add memory

4. ヒューマンインザループ制御

自動応答だけでは対応が難しい場合に、人間による承認や介入を行う仕組みです。LLMでの処理を一時停止し、ユーザーや管理者の判断を仰ぐことができます。

  • 目的: エージェントの判断に対して人間が確認・修正・承認できるようにする
  • 例: 「この内容を顧客に送信してよいですか?」など、重要な判断時に人間の確認を得る

Add human-in-the-loop controls

5. ステートのカスタマイズ

ノード間でやり取りされる「状態(state)」を自由にカスタマイズできます。特定のフラグや条件に応じてエージェントの動作を変更するための状態管理機能を提供します。

  • 目的: 条件分岐や動的制御のための状態管理を実現する
  • 例: 特定のフラグ(例:is_admin)がTrueの場合に追加処理を実行する

Customize state

6. タイムトラベル(会話の巻き戻しと分岐の探索)

過去の状態を記録しており、任意の時点に「巻き戻して」再実行できます。これにより、異なる会話の展開を試したり、誤った分岐からやり直したりすることができます。

  • 目的: 会話履歴を追跡し、過去の時点に戻って再実行や分岐探索を可能にする
  • 例: 「あの時、別の選択をしていたらどうなったか」を検証する

Time travel

おわりに

LangGraphのチュートリアルを試してみました。 シンプルにコードでエージェントが作れます。また、Tavily APIのような検索ツールを組み込む方法も簡単に実行できることが分かりました。 公式のgithub上ではテンプレート集も公開されているので試してみてください。

Community Agents

これ以外にも面白そうなテンプレートを見つけたので、別の記事として公開したいと思います。