ツールユースとは?AIが外部の機能を呼び出す仕組み

AIに「明日の東京の天気は?」と聞くと、最新の予報をもとにした答えが返ってくることがあります。学習した時点の知識しか持たないはずのAIが、なぜいまの情報を答えられるのでしょうか。
その裏で使われているのが、ツールユースという仕組みです。本記事では、AIの開発元3社の公式ドキュメントをもとに、ツールユースの流れを解説します。
ツールユースとは
ツールユースは、LLMが、アプリの用意した外部の機能(ツール)を呼び出せるようにする仕組みです。関数呼び出し(function calling)や、ツール呼び出し(tool calling)とも呼ばれます。
LLMに依頼と一緒にツールの説明書を渡しておくと、ツールが要る場面で、LLMは答えの文章の代わりに「どのツールを、どんな値で使いたいか」を決まった形で返してきます。天気の例なら、「天気を調べるツールを、場所=東京で使いたい」という返事です。
ここで押さえておきたいのは、LLMが自分でツールを実行するわけではない点でしょう。Claude、OpenAI、Geminiのドキュメントはいずれも、実行するのはアプリの側だと明記しています。LLMの役目は、何を使いたいかを伝えるところまでです。
なぜツールが要るのか
LLMは文章を作るのが得意な一方で、それだけではできないことがあります。Claudeのドキュメントは、ツールが向いている場面として、次のようなものを挙げていました。
- メールの送信やファイルの書き込みのように、実際に何かを起こす操作
- 今日の天気や在庫の数のように、新しい情報や外部のデータが要る作業
- 決まった項目を持つデータを、その形のまま受け取りたい場合
- データベースや社内のシステムなど、すでにある仕組みを呼び出す作業
反対に、要約や翻訳のように、学習した知識だけで答えられる作業にツールは要りません。呼び出すたびにやりとりが1往復増えるため、簡単な質問ではかえって遅くなるからです。
ツールの説明書
アプリがLLMに渡す説明書(ツールの定義)は、3社とも、ほぼ同じ3つの項目でできています。
名前はLLMがツールを呼び出すときに使う識別子です。説明の欄には、そのツールが何をするのか、いつ使うのかを書いておきましょう。LLMはこの説明を読んでツールを使うかどうかを決めるため、説明の書き方しだいで呼び出しの正確さが変わります。
受け取る値の形は、JSON Schemaという書式で書くのが一般的です。「場所は文字列で、必ず指定する」のように、値の名前、種類、必須かどうかを、ここで決めておきましょう。
値の形が合わない呼び出しを防ぐため、定義どおりの形だけを返させる設定(strict)を用意している開発元もあります。必要な値が依頼に含まれていないとき、LLMが聞き返さずに、もっともらしい値を推測して埋める場合があると、Claudeのドキュメントは注意を促していました。
呼び出しの流れ
ツールユースでは、アプリとLLMの間を何度か行き来しながら作業が進みます。
最初にアプリが渡すのは、利用者の依頼とツールの説明書です。LLMはツールが要ると判断すると、使うツールと値を返し、アプリがそのツールを実行して結果を受け取ります。アプリはその結果をLLMに渡す、という流れです。
LLMは結果を読んで、別のツールが要ればまた呼び出しを返すため、この往復は何度でも続きます。ツールが要らなくなった時点でLLMが答えを作れば、繰り返しは終わりです。1回の返事で、互いに関係のない複数のツールをまとめて呼び出すこともできます。
この繰り返しを自分で回しながら、目的に向かって作業を進めるAIが、AIエージェントです。
ツールが動く場所
ツールは、どこで実行されるかによって2つに分かれます。
1つ目は、アプリの側で実行するツールです。自分で作ったツールのほか、コマンドの実行、ファイルの編集、画面の操作のように、AIの開発元が説明書の形を決めて配っているツールもここに入ります。開発元が形を決めたツールは、LLMがその形で大量に学習しているため、同じ働きのツールを自作するより確実に呼び出せる、とClaudeのドキュメントは説明していました。画面の操作をツールにしたものは、コンピューターユースと呼ばれます。
もう1つは、AIの開発元のサーバーで実行するツールです。Web検索、Webページの取得、コードの実行などがこれにあたり、アプリは使うと指定するだけで済み、結果をLLMに渡す仕事もサーバーが受け持ちます。冒頭の天気の例のように、チャットのAIが最新の情報を調べて答えられるのは、こうしたツールがあるからです。
安全面の注意
LLMが返すのは「使いたい」という希望で、実行するかどうかを最後に決めるのはアプリの側です。そのため、ツールの作り方と、渡す権限の範囲が安全を左右します。
- 削除、送信、支払いのように取り消せない操作は、実行の前に利用者へ確認を求める
- ツールに渡す権限は、必要な範囲に絞る
- Webページやメールなど、ツールが持ち帰った内容に指示が紛れていても従わない
3つ目は、プロンプトインジェクションと呼ばれる攻撃への備えです。ツールの結果はLLMにそのまま読まれるので、信頼できない内容を取り込むツールほど注意が要ります。
製品での使われ方
ツールユースは、主なAIの開発元のAPIがそろって備えています。名前は少しずつ違い、Claudeは「tool use」、OpenAIとGeminiは「function calling」という呼び名です。
チャットのAIでWeb検索をしたり、AIエージェントがファイルを書き換えたりするときも、裏ではこの仕組みが動いています。どのアプリからでも同じ形でツールをつなげるようにした取り決めはMCP、LLMを呼び出してツールの実行を受け持つ外側の仕組みはハーネスです。