第7章 エージェントが行動できるようにする エージェントが行動できるようにする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
本書でこれまで取り上げてきたパターンは、何らかの形でコンテンツを作成することに関係していた。この章では、基盤モデル上に構築されたアプリケーションが世界とやり取りすることを可能にする3つのパターンについて説明する-多くの場合、これはアプリケーションがエージェント的であると考える境界線である。ツール呼び出し(パターン21)は、モデルが構造化されたインタフェースを介して外部関数を呼び出すことを可能にする。コード実行(パターン22)は、モデルが複雑な問題を解決するためにコードを書いて実行することを可能にする。マルチエージェントコラボレーション(パターン23)は、階層型、ピアツーピア型、またはマーケットベースのアーキテクチャで特殊化されたAIエージェントをオーケストレーションし、分業によって複雑なタスクに取り組む。
パターン21:ツール呼び出し
Tool Callingパターンは、 LLMが、情報を得たり(例えばウェブ検索)、環境に変更を加えたり(例えばファイルを書き出したり)、世界で行動することを可能にする。これは、LLMがある関数を呼び出す必要があると判断したときに、その関数に渡す引数とともに特殊なトークンを出すことで実現する。クライアントサイドのポストプロセッサーは、これらのパラメータを使って関数を呼び出し、その結果をLLMに送り返す。
問題点
マルチモーダルLLMの中核は、 、さまざまな形態(テキスト、画像、音声、動画)のコンテンツを生成することである。これは、研究レポートの作成、言語間の翻訳、コードの生成などの機能を提供するのに十分である。コンテンツ生成が、トレーニング中に基盤モデルが獲得した内部知識によって制限される場合、RAGを使って新しい知識を注入することが可能である(第2章と第3章を参照)。
しかし、ソフトウェアはコンテンツを生成するだけでなく、計算をしたり、航空券を予約したり、払い戻しをしたりと、さまざまなことができる。LLM単体ではこれらのことはできないので、これらのユースケースを扱うことはできない。LLMは、払い戻しが行われたというメールを生成することはできるが、銀行口座にお金を振り込ませることはできない!
より具体的な例を挙げると、LLMは「6月12日モーリシャス発イスタンブール行きTK161便を1席予約」というテキストを生成することができる。しかし、そのテキストを生成するだけでなく、航空会社やブッキング・ドットコムやエクスペディアのような旅行ブローカーからのフライト予約APIを通じて、トルコ航空のフライトを実際に予約するにはどうすればいいのだろうか?LLMがAPIを呼び出して仕事を完了できるように、LLMとAPIの間のギャップを埋めるにはどうすればいいのだろうか?
解決策
ツール呼び出しは多くの場合、 、抽象化された幾つかのレイヤーに包まれており、何が起こっているのかを理解することを難しくしている。まず、この機能によって何ができるのかという概念的な議論から始め、OpenAIのレスポンスAPIにおける非常に機能的な実装について説明した後、LangGraphとモデルコンテクストプロトコル(MCP)によって提供される、より抽象化された実装について説明する。通常はMCPのアプローチしか使わないとしても、より深い内部を知ることで、ツール呼び出しが期待通りに動作しない場合に問題を診断するのに役立つ。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access