複数ツールを用いたエージェントの構築(例:電卓、ウェブ検索)

LangChainの「応用事例と実践」の中でも、「複数ツールを用いたエージェントの構築」は非常に重要な活用方法の一つです。これは、LLM単体の能力に加えて、外部ツール(電卓・ウェブ検索・データベースなど)を統合し、タスクに応じて柔軟に選択・活用するエージェントを構築するアプローチです。


概要:LangChainエージェントとツール連携

LangChainのエージェントは、「ツールの使用を学習済みのLLMが判断し、必要に応じて呼び出す」設計になっています。
この際、以下の3要素が連携して機能します:

  1. LLM(大規模言語モデル)

  2. Tool(関数や外部APIなどのツール定義)

  3. Agent(LLMとツールの接続ロジック)


実用例:電卓とウェブ検索を用いたマルチツールエージェント

利用ツールの構成

  1. 電卓(Calculator Tool)
    LangChainが提供するCalculatorは、文字列として与えられた数式を安全に評価するツールです(evalベースではなく安全な数式解析ライブラリを使用)。

  2. ウェブ検索(SerpAPIやBing Search APIなど)
    クエリに基づき外部検索エンジンからリアルタイムな情報を取得します。LangChainでは、SerpAPIWrapperなどのラッパーで簡単に統合可能です。


動作の流れ(エージェントによる選択と実行)

例えば、ユーザーが以下のように入力したとします:

「GoogleのCEOは誰?その年齢を3で割ったら?」

このタスクに対し、LangChainエージェントは次のように動作します:

  1. 質問の解析
    LLMが「CEOの名前を検索で調べる必要がある」と判断。

  2. ツール呼び出し1:ウェブ検索
    SerpAPIを使って「Google CEO」を検索 → 結果:「Sundar Pichai」

  3. 追加情報検索
    次に「Sundar Pichaiの年齢」で再度検索 → 結果:「51歳」

  4. ツール呼び出し2:電卓
    電卓ツールで 51 ÷ 3 を計算 → 結果:「17」

  5. 統合応答の生成
    LLMが一連のツール出力を統合し、自然な文章で以下のように回答:

    GoogleのCEOはSundar Pichaiで、現在の年齢は51歳です。その年齢を3で割ると17になります。

実装上のポイント

  • ツールの定義はLangChainのToolクラスで行います。Python関数をラップして定義できます。

  • エージェントの種類ZeroShotAgentReActAgent などがあり、ツールの使い方をLLMが推論しながら判断します。

  • AgentExecutor を通じて、ツールとエージェントの統合実行が可能です。


応用可能な分野

  • 情報収集+分析(例:価格比較、ニュース要約)

  • ドキュメント+計算の統合処理(例:契約書内の金額の合計)

  • RAG(検索拡張生成)とツールの併用(例:FAQの自動回答)


まとめ

LangChainによる「複数ツールを用いたエージェント構築」は、単純なLLM応答を超えて動的で複合的なタスク処理が可能なアプリケーションを実現します。これにより、LLMが自律的にツールを選択し、複雑な情報処理やリアルタイム情報の活用が可能になります。LangChainはこのような統合をシンプルなAPI設計で支援しており、応用範囲も非常に広いです。

ChatGPT4o 生成日:2025/06/12