Function callingとは?意味・仕組みと対応の年表(2026年11月時点)
Function calling
関数呼び出し / ツール呼び出し / Tool calling / Tool use
Function calling(関数呼び出し)とは、AIのモデルが外のシステムの関数を使うべきときに名前と引数を返し、アプリが実行した結果をもとに答える仕組みのこと。
要するに
- モデルは関数の名前と引数を返すだけで、実行するのはアプリの側だ
- 関数の定義は入力のトークンに数えられ、料金とコンテキストを使う
- 2025年11月以降、モデルの発表でツール呼び出しの性能が示されている
最終確認

関数呼び出しとツール呼び出しに触れた出来事
原論文と関連研究
目次8
ひとことで言うと
Function calling(関数呼び出し、ツール呼び出し)は、AI のモデルに外のシステムの機能を使わせる仕組みだ。開発者が「どんな関数があり、何を渡せば動くか」を伝えておくと、モデルは必要なときに呼びたい関数の名前と引数(関数に渡す値)を返す。関数を実際に動かすのはアプリの側で、その結果を受け取ったモデルが答えをつくる。
たとえば「明日の東京の天気は」と聞かれた AI は、学習したデータだけでは答えられない。天気を調べる関数を用意しておけば、モデルは「場所は東京」という引数でその関数を呼ぶよう求め、アプリが天気の API から取った結果をもとに答える。
仕組み
OpenAI の Function calling のガイドは、流れを5つの段階で説明している。
- 使える関数を伝える:関数の名前、何に使うかの説明、受け取る引数の形を JSON スキーマ(データの形を決める書式)で書き、質問と一緒にモデルに送る。
- モデルが呼び出しを返す:モデルは関数を使うべきだと判断すると、関数の名前と引数を返す。
- アプリが関数を動かす:アプリのコードが受け取った引数で関数を実行する。
- 結果を返す:関数の結果を、もう一度モデルに送る。
- モデルが答える:モデルは結果をもとに最終的な答えを書く。続けて別の関数を呼ぶこともある。
Google の Gemini API の関数呼び出しのページは、モデルは関数自体を実行しないと明記している。名前と引数を取り出して実行するのは、利用者の責任だという。
Anthropic はツール使用のページで、これを tool use と呼び、function calling とも呼ばれると書いている。Claude は利用者の依頼とツールの説明をもとに、いつツールを呼ぶかを決める。開発者が定義したツールはアプリの側で動き、ウェブ検索やコードの実行のようなサーバー側のツールは Anthropic の基盤で動く。
呼び方を決める設定もある。OpenAI の tool_choice では、呼ぶかどうかをモデルに任せる auto(初期設定)、必ず1つ以上呼ばせる required、特定の関数を呼ばせる指定、呼べる関数を一部に絞る allowed_tools、呼ばせない none を選べる。Google にも、auto、any、none などのモードがある。1回に複数の関数を並べて呼ぶこともでき、Google も並列の呼び出しに対応すると書いている。OpenAI では parallel_tool_calls を false にすると、呼ぶ関数は0個か1個になる。
この考え方は研究でも試されてきた。2023年2月9日の Toolformer の論文(TRAIL の解説)は、どの API をいつ、どんな引数で呼び、結果をどう使うかをモデル自身に学ばせた。電卓、質問応答、2つの検索エンジン、翻訳、カレンダーを使えるようにしたという。
表で見る最新の状況
上の年表は TRAIL の DB から、関数呼び出しやツール呼び出しに触れた出来事10件を古い順に並べたものだ。確認日は2026年10月10日から10月20日。
年表でいちばん古いのは、DeepSeek が2024年7月25日に「API に JSON 出力と関数呼び出しを追加」したことだ。2025年5月28日の「DeepSeek-R1-0528 に更新」では、推論のモデルも JSON 出力と関数呼び出しに対応した。
2025年11月からは、新しいモデルの発表でツール呼び出しの性能が並ぶ。SpaceXAI(旧 xAI)は2025年11月19日に「Grok 4.1 Fast を公開」し、ツール呼び出しに強いモデルと、X のデータ、ウェブ検索、コード実行を呼べる Agent Tools API を出した。OpenAI は2025年12月11日に「GPT-5.2 を公開」し、強化した点の1つにツール呼び出しを挙げた。
2026年には呼び出しの少なさや誤りの少なさも示されるようになった。Notion は2026年4月16日に Claude Opus 4.7 を加えたとき、ツール呼び出しの誤りが3分の1になったと説明した。Meta は2026年9月2日の「Muse Spark 1.3 を公開」で、Meta の技術者による比較では、ツール呼び出しが約20%少なかったとしている。
使う側のツールでも、対応が条件になっている。2026年10月7日に GitHub Copilot の CLI は手元のローカルモデルを使えるようになったが、対象はツール呼び出しとストリーミングに対応したモデルだ。
TRAIL の年表では、10件のうち7件が2025年11月以降の出来事だ。モデルの発表で、ツールを正しく、少ない回数で呼べることが性能の1つとして示されている。
Function calling とサーバー側のツール、MCP の違い
| Function calling(自分で定義するツール) | サーバー側のツール | MCP | |
|---|---|---|---|
| ツールを用意する側 | 開発者が名前、説明、引数の形を書く | 提供元(Anthropic なら web_search など) | 接続する MCP サーバーの側 |
| 実行する場所 | 開発者のアプリ | 提供元の基盤 | 接続した MCP サーバー |
| 開発者がすること | 呼び出しを受けて実行し、結果を返す | 結果を受け取るだけ | 接続先のサーバーを指定する |
| 料金(Anthropic の場合) | ふつうの入力と出力のトークン | トークンに加え、使った分の料金がかかることがある | (出典に記載なし) |
MCP(Model Context Protocol)は、外部のツールやサービスを AI のモデルにつなぐ仕組みだ。Google の Gemini API の Interactions API は、ツールの設定にリモートの MCP サーバーの名前と URL を書くと、そのサーバーのツールをモデルが使えるようにする。Anthropic も Messages API から MCP サーバーにつなぐ MCP コネクターを用意している。
仕事でどう関係するか
社内のシステムと AI をつなぎたいとき
在庫の確認や予定の登録を AI に頼めるようにするなら、Function calling が基本の仕組みになる。Google は使い道として、予定の登録やメールの送信のような操作、データベースからの情報の取り出し、電卓のような計算の3つを挙げている。モデルは呼び出しを返すだけなので、社内のシステムへのログインや権限の管理はアプリの側で行う。
AI に操作を任せるとき
関数がメールの送信や支払いのような操作をするなら、実行の前に確かめる段階が要る。Google は実行の前に関数の呼び出しを検証することと、外部の API に適切な認証を使うことをベストプラクティスに挙げている。OpenAI は、すでに分かっている値をモデルに埋めさせないよう勧める。たとえば注文番号が分かっているなら、引数にせずコードの側で渡す。
関数をいつ使うかはシステムプロンプトで伝えられる。OpenAI は、それぞれの関数をいつ使い、いつ使わないかをシステムプロンプトに書くよう勧めている。
あなたは社内の備品の問い合わせに答えるアシスタントです。
在庫の数を聞かれたときは、必ず check_stock を呼んでから答えてください。
発注は自分で行わず、発注の依頼を受けたら担当部署への連絡方法を案内してください。費用を見積もるとき
関数の定義は毎回の入力に含まれる。OpenAI によると、関数の定義はシステムメッセージに入れられ、コンテキストの上限に数えられ、入力のトークンとして料金がかかる。Anthropic も、tools の項目の名前、説明、スキーマと、呼び出しと結果のやり取りがトークンとして数えられると書く。AI の API の費用は、関数の数と説明の長さでも変わる。
注意点と限界
モデルが返す呼び出しは、いつも正しいとは限らない。OpenAI は、strict を true にすると呼び出しが関数のスキーマに確実に沿うと説明し、常に有効にするよう勧めている。Google も、モデルがスキーマに沿うことを保証する validated のモードを用意している。Anthropic も、自分で定義するツールに strict: true を付けると、呼び出しがスキーマにいつも一致するとしている。
関数を増やしすぎると精度が落ちることがある。OpenAI は、最初に使えるようにする関数の数を少なく保つと精度が上がるとし、数を変えて試すよう勧めている。めったに使わない関数を必要になったときに読み込む tool search という方法もある。
1回の答えに、呼び出しが0個のことも、複数のこともある。OpenAI は、複数あると考えて処理を書くのが良いとしている。
よくある質問
Function calling とツール呼び出しは違うものか
同じものを指す。OpenAI は Function calling を tool calling とも呼び、Anthropic は tool use を function calling とも呼ぶと書いている。Google の日本語のページは関数呼び出しと書いている。
AI が自分で関数を実行するのか
実行しない。モデルが返すのは、呼びたい関数の名前と引数だ。Google は、関数を実行するのは利用者の責任だと書いている。ただし Anthropic のウェブ検索のようなサーバー側のツールは、提供元が実行する。
MCP と Function calling の違いは何か
Function calling は、モデルが関数の呼び出しを返す仕組みそのものだ。MCP は外部のツールやサービスを AI のモデルにつなぐ仕組みで、接続した MCP サーバーのツールをモデルに使わせられる。Google と Anthropic の API は、どちらも MCP サーバーへの接続に対応している。
どのモデルが Function calling に対応しているか
OpenAI、Anthropic、Google の API は、どれも Function calling の仕組みを持つ。TRAIL の年表では、DeepSeek が2024年7月25日に API に関数呼び出しを加え、2025年5月28日に推論のモデルの R1-0528 も対応した。
関数の説明はどう書けばよいか
何をする関数か、引数は何をどんな形で渡すのか、何が返るのかを具体的に書く。OpenAI は、人が説明だけを見て正しく使えるかを確かめるよう勧めている。Google も関数と引数の説明を明確かつ具体的に書くことと、整数や列挙型のような特定の型を使うことを挙げている。
関連する用語
- MCP:外部のツールやサービスを AI のモデルにつなぐ仕組み
- AIエージェント:ツールを使いながら作業を進める AI
- AI の API:Function calling を使うときに呼ぶ、AI のモデルの窓口
- プロンプトインジェクション:外の文章で AI に意図しない指示を与える攻撃
- コンピューターユース:AI が画面を見てマウスとキーボードを操作する機能
- システムプロンプト:関数をいつ使うかを伝える指示
- ツール:ChatGPT、Claude、Google AI Studio、DeepSeek、Grok
出典
- 公開
- 執筆
- TRAIL編集部(編集方針)
