ざっくり言うと
イメージ
ここで言う道具は、AIが自分で探してくるものではありません。「この天気サービスは使ってよい」「予約はこの形で頼んでよい」と、開発者が先に机へ置いたものだけです。机に置いていない道具は、AIからは見えませんし、使えません。
正確には
OpenAIの公式ドキュメントは、Function callingを、外部のシステムや学習データの外にある情報をモデルが使うための仕組みだと説明しています。使ってよい関数はJSON Schema(項目名と値の形をあらかじめ決めておく書式)で定義し、モデルが返すのは関数の名前と引数を含んだ呼び出しの要求です。
会社によって、呼び方や仕組みが違います
呼び方も、道具を誰が実行するかも、会社によって少しずつ違います。
| 会社 | 呼び方 | 実行の仕組み |
|---|---|---|
| OpenAI | Function 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 — ソフトどうしが決まった形でやりとりするための窓口です
やってみよう