ツールの使用
ツール使用とは、LLMが検索、計算機、コード実行、APIなどの外部ツールを呼び出し、自身の限界を超えて機能を拡張する能力です。これはAIエージェントの中核となる振る舞いであり、実際には関数呼び出しの仕組みを通じて実装されています。
Tool useとは、LLMが検索、計算機、コード実行、APIなどの外部ツールを活用して能力を拡張するための包括的な概念であり、自律的に動作するAIエージェントの定義的な振る舞いです。
Function callingは、tool useを実際に実装する仕組みです。モデルが関数名と引数を構造化された形式で出力し、アプリケーションがそれを実行します。
Anthropicのドキュメントでは、「tool use」と「function calling」は同義語として扱われており、モデルはツールの説明を読んで、いつどのツールを使うかを自分で判断します。
ReAct論文(2022年)は、推論と行動を交互に行うことでハルシネーションを減らし、外部情報を取り込んで回答精度を向上させることを実証的に示しました。
GEOの観点では、AI検索エンジンは、Web検索やページ取得ツールを使ってリアルタイム情報を収集しながら回答を組み立てるため、それらのツールが到達するコンテンツが引用候補のプールになります。
tool useの意味
tool useとは、大規模言語モデル(LLM)が内部的に学習した知識だけで応答するのではなく、検索などのツールを呼び出して応答することです。検索エンジン、計算機、コード実行環境、外部APIを使って、その機能を拡張します。LLMは単体では、最新情報の取得、正確な算術計算、リアルタイムデータへのアクセスが苦手ですが、ツールを接続することでそうした不足を補い、モデルを世界と「相互作用する」主体へと変えます。このため、ツール利用は、自律的に推論し行動するAIエージェントの中核的な動作原理と見なされています。
ここで重要な区別があります。ツール利用は「ツールを使って能力を拡張する」という上位概念であり、一方でfunction callingはそれを実際に実装する仕組みです。Anthropicの公式ドキュメントでは、「tool use is also known as function calling(tool use は function calling とも呼ばれる)」と明記されており、両者を同義で使っています。つまり、モデルにツールを持たせるという大枠がtool useであり、各ツールを「名前と引数を持つ関数呼び出し」として表現し、実行する配線がfunction callingです。
仕組み
現代のLLMでは、ツール利用は一般的に以下の流れで進みます。Anthropic Claudeのtool use手順を軸にすると、次のようになります。
ツールを定義する: 開発者は各ツールの名前、説明、入力スキーマ(JSON Schema)をモデルに渡します。モデルはこれらの説明を読み、どの場面で各ツールが適切かを判断します。
呼び出しを示すユーザーのリクエストがツールの機能に一致し、かつ回答がすでにコンテキスト内にない場合、モデルはプレーンテキストとして応答を完了しません。その代わりに、ツールを呼び出す意図があることを示すシグナルを出力します(
stop_reason: "tool_use")とともに、呼び出す関数の名前と引数を含む構造化ブロックを出力します。実行: アプリケーションが実際にその関数を実行します(検索の実行、APIの呼び出し、コードの実行など)。
結果を返す: 実行結果(
tool_result)がモデルに返され、モデルはそれを取り込んで最終回答を作成します。
重要な点は、モデルが外部コードを直接実行することは決してないということです。モデルは、どの関数をこれらの引数で呼び出すかという意図を構造化された形式で出力するだけであり、実際の実行と結果の取得はアプリケーション(またはプロバイダーのインフラストラクチャ)が処理します。以下は、モデルが出力する関数呼び出しブロックの例です。
{
"type": "tool_use",
"id": "toolu_01A09q90qw90lq917835lq9",
"name": "get_weather",
"input": { "location": "Seoul, KR", "unit": "celsius" }
}ツールは、どこで実行されるかによって2種類に分かれます。クライアントツールは、開発者自身のアプリケーション内で実行されます(ユーザー定義関数、bash、text_editor など):モデルがtool_useブロックを出力すると、開発者側のコードがそれを実行し、tool_resultを返します。サーバーツールは、提供元のインフラ上で実行されます(たとえばweb_search,code_execution、web_fetch、およびtool_search): 開発者は実行を一切処理せず、結果を受け取るだけです。さらに、デフォルトのtool_choice: autoでは、モデルは各ターンごとにツールを呼び出すか直接回答するかを自ら判断し、anyやtoolなどの設定によってツール呼び出しを強制できます。
Relationship tofunction calling(包括的な概念と実装)
この2つは近い関係にありますが、異なるレベルにあります。混同を避けるため、対応関係を以下に示します。
観点 | ツールの使用 | 関数呼び出し |
|---|---|---|
レベル | 包括的な概念と機能 | 実装メカニズム |
中心となる質問 | 「モデルは外部ツールを使って何ができるのか?」 | そのツールは何と呼ばれ、どのように実行されますか? |
範囲 | 検索、計算、コード実行から API や外部環境とのインタラクションまで、あらゆるもの | 名前と引数を持つ関数呼び出し形式で表現される |
出力 | ツールを使用して拡張された最終回答またはアクション | 構造化された呼び出しブロック(name + arguments JSON) |
関係 | Function calling はツール使用を実現するための標準的な配線であり、Anthropic のドキュメントでは両者は同義語として使われている | |
証拠と事例研究
ReAct(Reasoning + Acting)。Yao らによって提案された(arXiv:2210.03629、2022年10月提出、ICLR 2023)ReAct は、生成するパラダイムである推論の軌跡と行動をインターリーブされた形で行います。モデルに考えさせると同時に、外部ツールを通じて情報を取得させることで、CoT推論だけに見られる幻覚や誤りの連鎖を軽減します。実際、HotpotQAとFeverのタスクでは、幻覚を抑えるためにシンプルな Wikipedia API と連携し、意思決定ベンチマークでは、模倣学習および強化学習のベースラインに対して、ALFWorldで+34ポイント、WebShopで+10ポイントの絶対成功率向上を報告しました。これは、「ツールを呼び出す行為」そのものが単なる補助ではなく、回答精度を高める中核要因であることを示しています。
Toolformer.SchickらによるToolformer(arXiv:2302.04761、Meta AI、2023年2月)は、モデルがどのAPIを、いつ、どの引数で呼び出し、その結果を次のトークン予測にどう組み込むかを自律的に学習できることを示しました。各APIにつきごく少数のデモンストレーションだけを用いて自己教師ありで学習し、電卓、質問応答システム、検索エンジン、翻訳機、カレンダーなどのツールを統合することで、四則演算や事実検索といったタスクで、はるかに大規模なモデルに匹敵する性能を達成しました。この研究は、モデルがツールの使い方そのものを学習できる可能性を切り開きました。
実用上の価値。Anthropicのドキュメントでは、ツールへのアクセスはエージェントに与えられる「最もレバレッジの高いプリミティブ」の1つと説明されています。科学図表の解釈(LAB-Bench FigQA)や実世界のソフトウェアエンジニアリング(SWE-bench)といったベンチマークでは、基本的なツールを単純に接続するだけで能力が大幅に向上し、場合によっては人間の専門家ベースラインを上回ることさえあると説明しています。
GEOとAI検索にとって何を意味するか
生成検索エンジンやAIの回答機能は、多くの場合、内部的にウェブ検索ツールやページ取得ツールを呼び出し、回答を組み立てる前にリアルタイム情報を取り込みます。つまり、「それらのツールが到達するウェブコンテンツ」が、AIの回答における引用候補と根拠の集合になります。そのため、検索ツールと取得ツールが内容を適切に読み取り、明確な出典とともに引用しやすいようにコンテンツを構成することは、AIの回答に含まれることを目指すGEO戦略と直接つながっています。