ざっくり言うと

Function Calling(関数呼び出し) / Tool Use(ツール利用)とは、AIに使ってよい道具を先に教えておく仕組みです。LLMは「どの道具を、どんな引数(渡す値)で使いたいか」を、決まった形で返します。

道具を実際に動かすのは、AIではありません。アプリ側か、サービスの提供元です。

呼び名は会社によって少し違います(OpenAIとGoogleはFunction calling、AnthropicはTool use)。やっていることはほぼ同じで、自分で判断して動くAIエージェントの、基礎になる技術でもあります。

イメージ

ここで言う道具は、AIが自分で探してくるものではありません。「この天気サービスは使ってよい」「予約はこの形で頼んでよい」と、開発者が先に机へ置いたものだけです。机に置いていない道具は、AIからは見えませんし、使えません。

正確には

OpenAIの公式ドキュメントは、Function callingを、外部のシステムや学習データの外にある情報をモデルが使うための仕組みだと説明しています。使ってよい関数はJSON Schema(項目名と値の形をあらかじめ決めておく書式)で定義し、モデルが返すのは関数の名前と引数を含んだ呼び出しの要求です。

会社によって、呼び方や仕組みが違います

呼び方も、道具を誰が実行するかも、会社によって少しずつ違います。

会社呼び方実行の仕組み
OpenAIFunction calling自分で用意したカスタム関数はアプリ側が実行し、Web検索やコード実行のような組み込みツールはOpenAI側が実行する
Anthropic(Claude)Tool useクライアントツールは利用者が、サーバーツールはAnthropicが実行する
Google(Gemini API)Function callingモデルの能力を外部のツールやAPIとつなぐ仕組みを提供する

実行するかどうかを決めるのは、どの会社でもAIの外側です。

3社に共通する流れ

やりとりは、大きく次の4ステップで進みます。

ステップ誰がやる内容
1. ツール定義開発者使ってよい関数の一覧をモデルへ渡す(名前・説明・引数の書式)
2. 判断LLM質問を見て、どの関数をどんな引数で呼ぶかを決める
3. 検証・実行アプリまたは提供元権限と引数を確かめて、関数や組み込みツールを動かす
4. 回答LLM実行結果を受け取り、人が読める言葉にまとめる

なぜ道具が要るのか

道具を渡すのは、AIひとりでは手が届かない仕事があるからです。苦手なことは、次の4つあります。

  • 今の情報
    学んだ知識だけでは、いま現在のニュース・在庫・株価までは分かりません
  • 正確な計算
    けた数の多い計算や、込み入った数式はまちがえることがあります
  • 外のシステムを動かすこと
    メール送信、カレンダー登録、データベースの検索は、ひとりではできません
  • 手元のデータ
    社内のデータベースや個人のファイルは、学習していないので知りません

この4つを外の関数やAPIとして用意し、AIから呼べるようにしたのがFunction Callingです。

AIエージェントとの関係

最近よく聞くAIエージェントは、自分で段取りを考えて動くAIのことです。道具の呼び出しを何度も繰り返しながら、仕事を前へ進めていきます。

たとえば「来週の出張の候補を調べて」と頼まれたとします。カレンダーを確認して、航空券を探し、ホテルを探す、というように呼び出しをつなげられます。

予約の確定やメール送信のような書き込み作業は別です。実行の前に内容を見せて、人の承認を取る作りにします。Function Callingは、その一回一回の動作にあたります。

関連用語

  • MCP(Model Context Protocol) — 道具のつなぎ方をそろえて、いろいろな道具を共通の作法で使えるようにする決まりです
  • AIエージェント — 道具の呼び出しを繰り返しながら、目標へ向かって自分で進めるAIです
  • LLM(大規模言語モデル) — 大量の文章から言葉のつながりを学んだ、AIの土台にあたる部分です
  • API — ソフトどうしが決まった形でやりとりするための窓口です

やってみよう