AI Play とは

ツール呼び出し(Function Calling)とは

LLMが外部の関数やAPIを「使いたい」と構造化データで指示する仕組み

ツール呼び出し(Function Calling / Tool Use)は、大規模言語モデル(LLM)が、天気の取得やデータベース検索、メール作成などの外部の機能を使えるようにする仕組みです。モデル自体が直接システムを操作するのではなく、「この関数を、この引数で呼んでほしい」という構造化されたデータを返し、それをアプリケーション側が実行する、という役割分担になっています。AIエージェントの土台となる重要な技術です。

基本の流れ

OpenAI と Anthropic の公式ドキュメントで説明されている流れは、おおむね共通しています。

  1. ツールを定義してリクエスト:アプリは、ユーザーの質問と一緒に「使えるツールの一覧」をモデルに送ります。各ツールには名前、説明、入力の形式(JSON Schema)を書きます。
  2. モデルがツール呼び出しを返す:モデルは必要だと判断すると、ツール名と引数をJSON形式で返します(Anthropic の API では stop_reason が tool_use になり、tool_use ブロックが返されます)。
  3. アプリが実行:アプリ側のコードが実際に関数やAPIを実行します。
  4. 結果を返す:実行結果をモデルに送り返します(Anthropic では tool_result、OpenAI の Responses API では function_call_output)。
  5. 最終回答:モデルは結果を踏まえて回答を作るか、さらに別のツールを呼びます。

ツール定義の例(イメージ)

名前: get_weather
説明: 指定した都市の現在の天気を取得する
入力: { "location": 文字列(例:「東京都渋谷区」)}

ユーザーが「渋谷の天気は?」と聞くと、モデルは get_weather を {"location": "東京都渋谷区"} で呼ぶよう返し、アプリがお天気APIに問い合わせます。

良いツール定義のコツ

クライアントツールとサーバーツール

Anthropic のドキュメントでは、アプリ側で実行する「クライアントツール」と、Web検索やコード実行のように提供元のインフラで実行される「サーバーツール」を区別しています。サーバーツールは実行処理を自分で書く必要がない一方、利用量に応じた追加料金がかかる場合があります。

MCPとの関係

複数のAIアプリで同じツールを使い回したい場合は、ツールの提供方法を標準化した MCP を使う方法があります。ツール呼び出しは「モデルとアプリの間の会話の形式」、MCPは「アプリと外部ツールの接続の共通ルール」と整理できます。

安全に使うための注意点

参考リンク

編集: AI Play 編集部 最終更新: 2026-10-25