Function Calling
ふぁんくしょんこーりんぐ ・ 別表記: 関数呼び出し / ファンクションコーリング
Function Callingとは、使える関数(機能)をAIに教えておき、AIが必要な関数名と入力を構造化して返す仕組みです。ツール連携の土台になります。意味・特徴を解説します。
Function Callingとは
Function Calling(関数呼び出し)とは、アプリ側で使える関数(機能)をAIにあらかじめ教えておき、AIが必要な関数名とその入力を、決まった形式で返してくれる仕組みのことです。
簡単に言うと、AIに「呼べる機能のメニュー」を渡しておく仕組みです。AIは状況に応じて、「この機能を、この値で呼びたい」という指示を、プログラムが扱いやすい形(多くは JSON)で返します。実際の実行はアプリ側が行います。
Function Callingは何のためのものか
AIの回答が自由な文章だけだと、その内容を使って自動で別の処理を動かすのは難しくなります。どの機能をどう呼べばよいかを、文章から読み取る手間がかかります。
Function Calling は、AIの判断を「実際の処理につなげやすい形」で受け取るために使われます。呼ぶべき機能と入力を構造化して返させることで、AIとアプリの機能を確実に連携させる点に意味があります。
Function Callingの主な特徴
使える関数を定義して渡す
関数の名前・役割・必要な入力(引数)を定義し、AIに渡します。AIはその定義を見て、どれを使うか判断します。
関数名と入力を構造化して返す
AIは、呼びたい関数の名前と、渡す入力を、決まった形式(多くは JSON)で返します。プログラムがそのまま処理できる形です。
実行はアプリ側が行う
AIは「呼びたい内容」を返すだけで、実際の実行はアプリ側が担います。結果をAIに戻して、続きの回答につなげます。
どのような場面で使われるのか
- AIの判断をもとに、別の処理を自動で動かしたいとき
- 検索・計算・データ取得などの機能をAIに使わせたいとき
- AIの出力をシステムと確実に連携させたいとき
- AIエージェントの行動を実装したいとき
これらの場面では、Function Calling がAIとプログラムの橋渡しを担います。
具体的な例
天気を調べる機能
「天気を取得する関数」を定義しておくと、AIが「東京・明日」という入力でその関数を呼ぶよう返します。アプリが実行し、結果をAIに戻します。
予定を登録する機能
「予定を登録する関数」を渡しておけば、AIが日時や件名を構造化して返し、アプリがその値で登録処理を実行できます。
関連する用語
ツール呼び出し(Tool Calling)
AIが外部のツールを呼び出して使う考え方です。Function Calling は、それを関数の形で実現する仕組みです。
構造化出力
AIの回答を決まった形式で出させる仕組みです。Function Calling の入力も構造化された形で返されます。
AIエージェント
目標達成のために自律的に動くAIです。Function Calling は、その行動の実装に使われます。
大規模言語モデル(LLM)
大量の文章で学習したモデルです。Function Calling で、判断を実際の処理につなげられます。
似た用語との違い
「ツール呼び出し(Tool Calling)」は、AIが外部の道具を使うという考え方・働き全般を指します。これに対して「Function Calling」は、それを関数の形で定義して実現する具体的な仕組みの呼び名です。ほぼ同じ意味で使われますが、広い概念がツール呼び出し、具体的な実装が Function Calling、と考えると整理しやすくなります。
利点と注意点
利点
- AIの判断を、プログラムで扱いやすい形で確実に受け取れる
- 検索・計算・外部操作などの機能とAIを連携させられる
注意点
- 返された関数や入力が常に適切とは限らず、実行前の確認が望ましい
- 外部を操作する機能では、権限の制限など安全への配慮が必要
まとめ
Function Calling とは、使える関数をAIに教えておき、AIが必要な関数名と入力を構造化して返す仕組みです。
主に、AIの判断を実際の処理につなげ、AIとアプリの機能を確実に連携させるために使われます。
初心者のうちは、「Function Calling はAIに呼べる機能のメニューを渡し、呼びたい機能と入力を決まった形で返させる仕組み。ツール呼び出しの代表的な実現方法」と理解しておけば十分です。