ツールコーリングとは:AIエージェントが外部ツールを呼び出す仕組み
ツールコーリングとは、AIモデルがテキストだけで応答する代わりに、明確な引数を添えて特定の関数の実行を要求できる能力を指します。
簡単な定義
ツールコーリング(ファンクションコーリングとも呼ばれる)とは、言語モデルが、あるリクエストに外部での行動が必要だと判断し、データベースの読み取りやメッセージの送信といった行動について、引数付きの構造化された呼び出しリクエストを生成する能力です。実際の呼び出しはアプリケーション側で実行され、結果がモデルに返されます。
ツールコーリングがなければ、言語モデルにできることはひとつしかありません。テキストからテキストを生成することです。最新のデータベースを参照することも、メッセージを送ることも、外部のソフトウェアで何かを実行することもできません。ツールコーリングは、モデルを外部システムにつなぐ橋渡しです。これによって、会話するだけのモデルが、実際に行動できるAIエージェントへと変わります。あらゆる自律型エージェントの根底にある基本的な仕組みです。
詳しい定義
ツールコーリング(ファンクションコーリングとも呼ばれます)とは、言語モデルがリクエストに対して、テキストだけで答えるのではなく、あらかじめ定義されたスキーマに沿って引数を埋めた、特定の関数の実行を要求する構造化されたリクエストで応答する能力を指します。Anthropicのドキュメントは、この原則をこう説明しています。モデルはリクエストとツールの説明に基づいてツールを呼び出すべきかどうかを判断し、その後、構造化された呼び出しを返す。これをアプリケーション側(クライアント側)が実行するか、一部の組み込みツールについては提供元側(サーバー側)が実行する、というものです。2023年にファンクションコーリングという言葉を広めたOpenAIのドキュメントも、同じ仕組みを説明しています。モデルは自由なテキストではなく、機械が読み取れるファンクションコールで応答し、それをアプリケーションが実行する責任を負う、というものです。
両方の主要な提供元は、この基本定義において一致しています。関数は、名前、自然言語による説明、そして期待されるパラメータを列挙するJSONスキーマによって記述されます。モデルは、ツールを呼び出すべきかどうか、そしてその引数をどう埋めるかを判断するために、この3つの要素だけに頼ります。この基本原則について両者の間に大きな相違はなく、違いは実装の細部(並列呼び出しの形式、提供元がネイティブに提供する組み込みツール、エラー処理)にあります。
ツールコーリングは、単純なチャットボットと、実世界に対して行動できるシステムとを分けるものです。データベースを参照する、Webを検索する、ファイルに書き込む、メッセージを送る、決済を起動する、といった行動です。また、モデルに公開されるツールの記述方法と提供方法を標準化することを目的としたMCPプロトコルを可能にする基盤でもあります。
仕組み
ツール呼び出しの流れは、常に同じ複数ステップの手順に従います。まずアプリケーションが、モデルに利用可能なツールの一覧を定義します。それぞれに名前、説明、引数のスキーマが付きます。次に、モデルはユーザーのリクエストをこのツール一覧とともに受け取り、文脈に応じて、テキストで直接答えるべきか、ツールの実行を要求すべきかを判断します。
ツールを呼び出すことを選んだ場合、モデルは何も自ら実行することなく、ツール名と引数の値を含む構造化されたレスポンスを返します。このリクエストを受け取るのはアプリケーション側で、実際の行動(APIの呼び出し、データベースの読み取り、ファイルへの書き込み)を実行し、その結果をモデルが読み取れる形式で返します。モデルはその結果をもとに応答を続け、タスクが必要とすれば複数のツール呼び出しを連続で実行することもできます。
この分離はセキュリティ上重要です。モデル自身がコードを実行することは決してなく、呼び出しを提案するだけです。実際に何が実行されるかを最終的に管理するのはアプリケーション側であり、条件が満たされない場合は呼び出しを拒否できます。
Atakoでの具体例
Atakoでは、ツールコーリングはエージェントの動作の中核にあります。接続された各インテグレーション(Slack、Notion、GitHub、HubSpotなど約40種類)は、Slackのpost_messageやGitHubのcreate_issueといった、明確に定義されたアクション群を公開しており、エージェントはタスク上必要だと判断すればこれらを呼び出せます。
ただしAtakoでは、ツール呼び出しが直接実行されることは決してありません。まず権限チェックを経ます。プラットフォームは、そのエージェントとその接続に対して「グラント」が存在するか、要求されたアクションがそのグラントの許可アクション一覧に含まれているか、付与されたスコープ(読み取り専用か、読み書き)が該当アクションをカバーしているかを確認します。これらの条件のいずれかが満たされない場合、呼び出しは拒否され、その失敗は記録されます。この、エージェントが呼び出しを提案し、プラットフォームが実行前に検証するという判断経路こそが、ツールコーリングが実現するセキュリティの論理そのものです。モデルは提案し、インフラが決定します。
よくある誤解
よくある誤りは、モデル自身が呼び出したツールを実行していると思い込むことです。これは決してありません。モデルは構造化されたリクエストを生成するだけで、実際に行動を実行し、いつでもそれを拒否できるのは常にアプリケーションやプラットフォームです。
第二の誤りは、モデルにツールへのアクセスを与えることが、そのサービスへの全面的で無制限なアクセスを与えることだと考えることです。よく設計されたツールコーリングの仕組みは、アクションごと、スコープごとの権限によって、利用可能なアクションを厳密に制限します。汎用的な「全か無か」のアクセスではありません。
第三の誤りは、ツールの説明の重要性を過小評価することです。モデルは、いつ、どのようにツールを呼び出すかを判断するために、名前、説明、引数スキーマにしか頼れません。曖昧で不明瞭な説明は、性能の高いモデルであっても、選択を誤った呼び出しや不正確な引数を生みます。
最後に、ツールコーリングとMCPを混同する人もいます。ツールコーリングは基盤となる仕組みであり、主要なモデル提供元の間では2023年から存在しています。MCPはより新しいプロトコルで、ツールごと提供元ごとに異なるインテグレーションを再開発せずに済むよう、ツールの記述方法とモデルへの接続方法を標準化するものです。
関連用語
MCP(Model Context Protocol)とは:定義・仕組み・具体例
MCP(Model Context Protocol)は、Anthropicが2024年末に策定したオープンプロトコルで、モデルやAIエージェントが外部のデータソースやツールに接続する方法を標準化します。ツールごとに専用の連携を作る代わりに、AIアプリケーションとサードパーティ製システムの間で共通の言語を提供します。
RAG(Retrieval-Augmented Generation)とは:定義と仕組み
RAG(Retrieval-Augmented Generation)とは、ドキュメント検索エンジンと言語モデルを組み合わせた手法です。応答を生成する前に、モデルは外部のデータベースから関連する箇所を検索し、その内容をもとに応答を生成します。これにより、事実に基づかない生成を抑え、最新の情報や企業内部の情報を活用できます。
エージェンティックAIとは:定義・仕組み・具体例
エージェンティックAIとは、周囲の状況を認識し、一連の行動を計画し、ツールを使ってそれを実行するAIシステムのパラダイムです。単発のリクエストに一度だけ応答するのではなく、複数のステップにわたって目標を追求し、限定的ではあるが調整可能な人間の監督のもとで機能します。
よくある質問
人工知能におけるツールコーリングとは何ですか。
ツールコーリングとは、言語モデルがテキストではなく、定義された引数を伴う特定の関数の実行を要求する、構造化されたリクエストで応答する能力です。外部アプリケーションがこの関数を実際に実行し、その結果をモデルに返すことで、モデルはその結果を踏まえて応答を続けます。
ツールコーリングとファンクションコーリングの違いは何ですか。
同じ仕組みを指す2つの呼び方です。OpenAIが2023年にファンクションコーリングという言葉を広め、Anthropicなど他の提供元はツールユースやツールコーリングという言葉を使う傾向があります。原則は同じで、モデルがツールを選び、その引数を埋め、アプリケーションが実際の呼び出しを実行します。
AIエージェントは制御なしに何のツールでも呼び出せるのですか。
いいえ、信頼できるプラットフォームでは、ツールの呼び出しはすべて、そのエージェントがどの範囲でそのツールを使う権限を持つかを確認する権限レイヤーを経由します。モデルは呼び出しを提案するだけで、実際に実行するか拒否するかを決めるのはアプリケーション側です。
ツールコーリングはどの言語モデルでも動作しますか。
いいえ、この構造化された出力形式を生成できるよう特別に学習されたモデルが必要です。主要な提供元(OpenAI、Anthropicなど)の最近のモデルの多くはネイティブに対応していますが、古いモデルや小規模なモデルは信頼できるツール呼び出しを生成できない場合があります。
次に読む
出典
- Tool use with Claude · 閲覧日 2026年9月4日
- Function calling | OpenAI API · 閲覧日 2026年9月4日