AIの基礎
ツール呼び出しとは?AIモデルが判断を行動に変える仕組み
ツール呼び出しとは、AIモデルが構造化された引数を使って、関数、API、検索、または操作を要求する仕組みです。このガイドでは、ツール利用の一連の流れをたどり、スキーマ、検証、権限、よくある失敗について解説します。

ツール呼び出しとは、AIモデルが構造化された引数を使って、特定の関数や外部機能の実行を要求できる仕組みです。モデルの判断を機械が読み取れるアクションに変換することで、モデルに文章で操作をまねさせることなく、ソフトウェアが検索、計算、記録の取得、コードの実行、別のシステムの更新を行えるようにします。
ツール呼び出しは、現代のAIエージェントを支える基盤です。モデルは何をすべきかを推論できますが、要求されたアクションが有効か、認可されているか、実行されるか、そして次の判断に向けて結果がモデルに返されるかは、周辺のアプリケーションが制御します。
モデルにツールが必要な理由
言語モデルには重要な限界があります。学習した知識には学習の cutoff があり、あらゆる計算を確実に実行できるわけではありません。また、非公開データやリアルタイムのデータを自動的に把握しているわけではなく、テキストを生成するだけでソフトウェアシステムに影響を与えることもできません。
ツールを使うと、モデルに次のような機能を追加できます。
- 最新情報を検索する。
- データベースやナレッジベースに問い合わせる。
- コードを実行したり、正確な計算を行ったりする。
- ファイルを読み書きする。
- チケット、イベント、メッセージ、取引を作成する。
- ブラウザーやその他のユーザーインターフェースを操作する。
ツールを使っても、モデル自体の知識が増えるわけではありません。アプリケーションが、根拠となる情報を取得したり、操作を実行したりするための、制御された手段を得るのです。
ツール定義の構成要素
ツールの説明では、ツールを選ぶ際の肯定的な条件と否定的な条件の両方を示す必要があります。「記録を検索する」だけでは、顧客、文書、公開ウェブのどれを検索するのかモデルには判断できず、不十分です。「会社名またはアカウントIDで承認済みの顧客アカウントを検索する。一般的なウェブ調査には使用しない」と記せば、モデルが判断に使える明確な境界が示されます。
アプリケーションは、利用可能な各ツールを構造化された形式で記述します。通常、定義には次の項目が含まれます。
- 名前:次のような一貫した識別子
get_weatherまたはcreate_support_ticket. - 説明:ツールの機能と、使用すべき状況を正確に説明したもの。
- 入力スキーマ:必須および任意の引数、そのデータ型、指定可能な値。
- 出力仕様:アプリケーションが返す結果やエラー状態についての説明。
多くのツールインターフェースでは、JSONスキーマや、それに類する型付きの表現が使われています。範囲を絞り、曖昧さをなくしたスキーマを用いると、モデルが存在しないパラメーターを作り出したり、両立しない選択肢を組み合わせたりする可能性を減らせます。
ツール呼び出しのループの仕組み
| 名前 | モデルが要求できる操作を示す、一貫した識別子。 |
|---|---|
| 入力スキーマ | 許可される引数、型、必須項目、指定可能な値。 |
| 認可 | ソフトウェアが実行前に、本人確認、ポリシー、対象範囲、承認を確認する。 |
| 出力仕様 | モデルと監査記録に返される結果、または明示的なエラー。 |
「来週の火曜日、マンチェスターで会議の予定はありますか?雨は降りますか?」とユーザーが尋ねた場合を考えてみましょう。
- アプリケーションがコンテキストを提供します。ユーザーのリクエスト、システム指示、選択されたツールの定義をモデルに送ります。
- モデルがツールを選択します。日付の範囲と場所のフィルターを指定して、カレンダーを検索するようリクエストする場合があります。
- アプリケーションがリクエストを検証します。ツール名、必須の引数、権限の範囲、ビジネスルールを確認します。
- 実行環境がツールを実行します。カレンダーシステムを呼び出し、該当する予定、または明示的なエラーを返します。
- モデルが結果を確認します。マンチェスターでの会議があることを把握し、その都市と日付を指定して天気ツールをリクエストします。
- アプリケーションが検証と実行を繰り返します。
- モデルが最終回答を生成します。検証済みの出力を組み合わせ、関連する詳細を示します。
モデルが呼び出しを提案し、アプリケーションが実行します。この境界は、ツールの利用に関する最も重要な事実の一つです。安全な実行環境は、モデルの出力を自動的に許可されたコードとして扱うことはありません。
ツールの選択は自動にも制限付きにもできる
アプリケーションは、ツールが必要かどうかをモデルに判断させることも、特定のツールを必須にすることも、選択肢を一部に絞ることも、回答にツールを使わないよう禁止することもできます。これらの選択肢は、ワークフローに応じて使い分けられます。
自動選択は、柔軟なアシスタントを実現します。特定の関数をすべてのリクエストで必ず使うべき構造化データ抽出などのタスクでは、ツールの指定が役立ちます。利用可能なツールを絞ると、混乱や情報への不要なアクセスを減らせます。請求書を読み取る手順に、メール送信ツールへのアクセスは必要ありません。
ツール呼び出しと構造化出力の違い
どちらの機能も、モデルにスキーマに沿ったデータの生成を求めますが、その目的は異なります。
構造化出力は、アプリケーションで使うためにモデルの回答を整形します。たとえば、製品名、数量、リスク分類を抽出します。ツール呼び出しは、アプリケーションに処理の実行と、その結果の返却を求めます。
構造化された結果が返されると、やり取りが終了する場合があります。一方、ツール呼び出しでは通常、リクエスト、実行、結果の確認、再判断という流れが続きます。
ツール呼び出しとAPIの違い
APIは、ソフトウェアが別のシステムと通信するためのインターフェースです。ツール呼び出しは、モデルに向けた判断レイヤーであり、操作を選択して引数を渡します。ツールの実装はAPIをラップすることが多いものの、データベースクエリ、ローカル関数、コマンドラインプログラム、ユーザーインターフェース上の操作をラップすることもあります。
優れたツールが、複雑なAPI全体をそのまま公開することはほとんどありません。タスクに即した操作を、明確な意味と限定された範囲で提供し、モデルが解釈できる結果を返します。ポリシーに基づいて入力を検証する「注文を返金する」ツールのほうが、あらゆるエンドポイントを呼び出せる汎用リクエストツールよりも安全で使いやすいものです。
優れたAIツールとは
目的が明確であること。名前と説明で、類似した機能を持つ他のツールと区別できるようにします。機能が重複するツールがあると、選択に一貫性がなくなります。
入力が少なく、型が明確であること。必須フィールドを明示し、値を制限する必要がある場合は、可能な限り列挙型を使います。モデルに大きくて壊れやすいペイロードを組み立てさせないようにします。
有用な出力を返すこと。次の判断に役立つだけの情報を返します。安定した識別子と、成功または失敗の明示的な状態も含めます。一部の処理が失敗したことを、親しみやすいメッセージの中に隠してはいけません。
可能な限り冪等性を確保すること。読み取り操作の再試行は通常安全ですが、決済やメッセージ送信を再試行すると、操作が重複する可能性があります。影響の大きいツールには、冪等性キーなどの安全策を設ける必要があります。
権限を必要最小限にすること。読み取り専用の検索ツールに、書き込み権限を引き継がせてはいけません。認証情報と認可の管理は、プロンプトではなく実行環境で行います。
ツール呼び出しでよくある失敗
再試行には、個別のポリシーが必要です。読み取り専用の検索を再試行しても問題ない場合がありますが、決済ツールやメッセージ送信ツールを再試行すると、取り消せない操作が重複するおそれがあります。冪等性キー、トランザクション識別子、明示的な確認状態があれば、実行環境は、最初の試行が失敗したのか、それとも応答が返らなかっただけなのかを判別できます。
- 誤ったツール:モデルが、説明の似た別の機能を選択する。
- 無効な引数:必須フィールドが欠けている、形式が正しくない、または意味的に実行不可能である。
- 結果の捏造:モデルがツールの結果を待たずに、成功したかのように回答する。
- 曖昧なエラー:ツールが空の出力を返し、モデルがそれを「該当する記録は見つからなかった」と解釈する。
- 危険な連鎖呼び出し:あるツールから得た信頼できないコンテンツにモデルが誘導され、不適切に別のツールを呼び出す。
- 副作用の重複:最初の操作がすでに成功した後に、タイムアウトによって再試行が行われる。
- ツールの過剰な登録:無関係な定義が多すぎると、選択精度が下がり、コンテキストも消費される。
権限と人による承認
ツールはリスクに応じて分類できます。読み取り専用の情報取得であれば、データ範囲を限定したうえで自動実行できる場合があります。取り消し可能な下書きの作成や変更案の提示は、ログを記録しながら実行できます。外部への操作、金銭に関わる操作、破壊的な操作、または法的な意味を持つ操作には、原則として承認手順を設けるべきです。
承認は、十分な情報に基づいて行えるものでなければなりません。確認画面には、実行する操作、対象、重要なパラメーター、想定される結果を正確に表示する必要があります。メールを5,000人の宛先に送信したり、本番環境のリソースを削除したりするツールでは、「ツールを許可しますか?」という確認だけでは不十分です。
OpenAIによるエージェント構築用ツールの概要では、ツールの利用は、トレーシングと可観測性を備えたエージェントプラットフォームに組み込むべきだと強調されています。周辺の制御機能は、あれば便利な追加要素ではありません。モデルが選んだ操作を実行可能にするために不可欠なものです。
ツール利用の評価方法
ツールの選択、引数、実行、結果の解釈、最終的なタスクの成功を、それぞれ分けて評価します。モデルは適切なツールを選んでも誤ったフィールドに値を入力することがあります。また、正しい結果を受け取っても、誤った結論を導くことがあります。処理の全記録をログに残せば、こうした失敗の種類が明らかになり、最終回答の出来がよいことで危険または無駄な挙動が覆い隠されるのを防げます。
エージェントが非効率または危険な手順を選んでいても、最終回答は正しく見えることがあります。そのため、評価では結果と処理の過程の両方を測定する必要があります。
有用な指標には、ツール選択の精度、引数の妥当性、タスクの完了状況、呼び出し回数、遅延、コスト、エラーからの復旧、不必要な機微データへのアクセス、副作用の重複、承認ルールの遵守などがあります。モデルの挙動にはばらつきがあるため、試行を繰り返して評価してください。
ツール呼び出しの図の読み方
ツール呼び出しの図は、番号付きの入力から、観測可能な結果に向かって読みます。比較図では、ツール呼び出しと最も近い簡易的な代替手段を区別する境界を明確にしています。一方、制御の経路は、現実世界に影響が及ぶ前に、権限や不確実性を確認すべき箇所を示しています。ラベルは通常のレスポンシブなページテキストとして扱われるため、スマートフォンでも翻訳でき、折り返しや再配置が可能です。
「ツール呼び出しとは何か?AIモデルが判断を行動に変える仕組み」の図は、保証ではなく、全体像を示す地図です。実際の実装では、複数の段階をまとめたり、手順を繰り返したり、人による承認の境界を設けたりすることがあります。重要なのは、チームが導入済みのシステム内で同じ機能を特定し、各境界の担当者を割り当て、その間の遷移をテストできるかどうかです。段階を観測または測定できなければ、その箇所での障害の診断は困難になります。
「ツール呼び出しとは何か」について覚えておきたいこと
ツール呼び出しは、モデルの判断とソフトウェアの操作をつなぐ橋渡しです。モデルが機能を特定して構造化された入力を提示し、アプリケーションがそれを検証、承認、実行したうえで、得られた結果を返します。
適切に設計されたツールは、AIシステムをより新しい情報に対応させ、能力を高め、実用性を向上させます。設計の不十分なツールは、モデルのありふれた誤りを外部への影響に変えてしまいます。重要なエンジニアリング作業は、スキーマ、権限、エラー処理、可観測性、そして実行を取り巻く境界にあります。












