Function Calling(ファンクションコーリング)とは、生成AIモデルと外部の関数・API・システムをつなぐための仕組みです。
通常の生成AIは文章を生成して回答します。一方、Function Callingでは、モデルが必要な外部機能を判断します。たとえば、天気情報や在庫確認ツールが必要かを見極めます。続いて、外部機能を利用するための情報を生成します。
ただし、Function Callingを使っても、AIが外部システムを自由に操作できるわけではありません。カスタム関数では、モデルから呼び出し内容を受け取ります。アプリケーション側が内容を処理し、その結果を再びモデルへ渡す構成が基本です。
AIスクールガイドでは、生成AIを学べるスクールや講座の情報も紹介しています。
Function Callingとは?
Function Callingは、生成AIが外部のデータや機能を利用するための橋渡しとなる仕組みです。
利用可能な関数やツールは、あらかじめモデルへ知らせます。すると、質問や指示に応じて必要な機能と値を判断できます。OpenAIはFunction Callingをtool callingとも呼びます。これは、外部システムや学習データ外の情報へアクセスする方法です。
簡単にいうと「AIと外部ツールの橋渡し」
たとえば、「今日の東京の天気を教えて」と生成AIへ質問したとします。
モデルの知識だけでは、現在の天気を正確に取得できない場合があります。そこで、現在の天気を取得する関数を用意します。モデルが必要に応じて、この関数を利用できるようにします。
すると、大まかには次のような役割分担ができます。
利用者:「今日の東京の天気を教えて」
生成AI:「天気取得ツールが必要」と判断
外部ツール: 現在の東京の天気を取得
生成AI: 取得結果をもとに自然な文章で回答
このように、生成AIが「言葉を理解する役割」、外部ツールが「実際の情報取得や処理を行う役割」を担当できます。

Function CallingとTool Callingの関係
Function Callingを調べると、「Tool Calling」という言葉もよく登場します。
両者は非常に近い概念です。OpenAIの公式ドキュメントでは、Function Callingをtool callingとも呼びます。また、関数は利用可能な「tool」の一種として整理されています。
一方、サービスによって名称や分類は異なります。Google GeminiではFunction Callingという名称が使われます。Anthropic Claudeでは、主にTool useという名称が使用されています。
初心者は、Function Callingを代表的な呼び方として理解するとよいでしょう。これは、AIから外部ツールを利用する仕組みです。
Function Callingの仕組み
Function Callingでは、モデルと外部プログラムの間で複数回のやり取りが行われます。
OpenAI公式ドキュメントでは、基本的なTool Callingの流れを5段階で説明しています。
- 利用できる関数・ツールをモデルへ知らせる
- ユーザーの質問や指示をモデルへ送る
- モデルが必要な関数と引数を返す
- アプリケーション側で関数を実行する
- 実行結果をモデルへ戻し、最終回答を生成する
たとえば在庫確認なら、モデルへ「商品IDを渡すと在庫数を返す関数」があることを知らせます。
ユーザーが「商品Aはまだ在庫がありますか?」と質問したとします。モデルは商品AのIDを引数にします。そして、在庫確認関数の呼び出しを要求できます。
アプリケーション側は、実際の在庫データベースを確認します。「在庫12個」と返せば、モデルはその結果を利用できます。そして、「商品Aは現在12個在庫があります」のように回答します。

重要なのは、生成AIが知識だけで在庫数を推測するのではなく、必要に応じて外部システムへ処理をつなげられることです。
Function Callingでできること
Function Callingを利用すると、生成AIの役割を拡張できます。文章生成だけでなく、外部データの取得やシステム操作も可能になります。
代表例は次のとおりです。
| 用途 | 具体例 |
|---|---|
| 最新情報の取得 | 天気、交通情報、商品在庫などをAPIから取得する |
| データベースの参照 | 顧客情報、注文状況、社内データを検索する |
| 計算 | 専用の計算処理へ数値を渡して結果を取得する |
| 外部システムの操作 | 予約登録、メール送信、チケット作成などを行う |
| 業務ワークフロー | AIの判断結果を次のシステム処理へ渡す |
Googleも、Function Callingの代表的な用途を挙げています。具体例は、外部システムでの操作、外部情報による知識の補強、計算による能力拡張などです。
そのため、Function CallingはAIエージェントや業務自動化を構築するときにも重要な仕組みになります。
Function Callingの基本的な使い方
Function Callingでは、生成AI APIと外部プログラムを組み合わせます。そのため、通常のチャットとは利用方法が異なります。
まず、利用させたい関数を用意します。
たとえば天気取得なら、関数名をget_weatherとし、「指定された地域の現在の天気を取得する」と説明します。さらに、locationのような必要な引数を定義します。
次に、その関数の情報とユーザーの質問をモデルへ送ります。
モデルが関数を必要だと判断すると、Function Callを返します。ここには、関数名と必要な引数が含まれます。OpenAIでは、関数の入力項目をJSON Schemaで定義できます。
アプリケーションは受け取った引数を確認し、実際の関数を実行します。
最後に実行結果をモデルへ渡すと、モデルがその情報を使ってユーザー向けの回答を生成します。

OpenAIで新しくAPI連携を開発する場合、Responses APIが推奨されています。これは2026年8月18日時点の新規プロジェクト向け方針です。Function CallingもResponses APIで利用できます。
なお、APIやSDKの具体的な書き方は変更されることがあります。実装時には利用するサービスの最新公式ドキュメントを確認しましょう。
Function Callingと似た仕組みの違い
Function Callingを理解するときは、構造化出力やRAGなどと混同しないことが重要です。
| 用語 | 主な役割 | 簡単な違い |
|---|---|---|
| Function Calling | AIと外部機能をつなぐ | 必要な関数・ツールを選び、引数を渡す |
| 構造化出力 | AIの回答形式をそろえる | JSONなど決められた構造で回答を受け取る |
| RAG | 外部情報を検索して回答へ使う | 文書やデータを検索し、回答の根拠として利用する |
| API | システム同士を接続する仕組み | Function Callingから利用する外部機能の入口にもなる |
構造化出力との違い
構造化出力は、生成AIの回答を決められたデータ形式で受け取る仕組みです。
一方、Function Callingの主な目的は、AIと外部の関数やツールを接続することです。
Function Callingでも引数を構造化して扱うため関連はありますが、目的は同じではありません。
RAGとの違い
RAGは、質問に関連する文書やデータを検索し、その情報を生成AIの回答へ利用する考え方です。
Function Callingは、情報検索だけに限定されません。メール送信や予約登録、計算処理などにも利用できます。つまり、外部の「動作」を呼び出すことも可能です。
また、RAGの検索処理をツールとして用意する設計も可能です。そのツールをFunction Callingから利用できます。
つまり、両者は競合する技術というより、組み合わせて利用できる仕組みです。
Function Callingのメリット
Function Callingの大きなメリットは、生成AIの役割を拡張できることです。知識を文章で回答するだけでなく、必要な外部機能も利用できます。
特に、リアルタイム情報や社内データなど、モデル内部だけでは取得できない情報を扱いやすくなります。
さらに、自然言語によるユーザーの依頼を、システムが扱いやすい関数名や引数へ変換できます。
たとえば利用者が「来週の火曜日、15時から会議を入れて」と入力したとします。モデルは、予定登録に必要な日時や処理内容を整理します。その情報をカレンダーシステムとの連携へ渡せます。
その結果、チャット形式のUIと既存業務システムを組み合わせたサービスを設計しやすくなります。
Function Callingを使うときの注意点
便利な仕組みですが、「モデルが呼び出した関数はすべてそのまま実行してよい」と考えるべきではありません。
特に、外部へ影響する処理には注意が必要です。データの削除、送金、メール送信、予約確定などが該当します。これらには、権限管理や実行前確認を設計しましょう。
また、モデルが生成した引数についても検証が重要です。
商品IDを要求する関数に、想定外の文字列が渡されることもあります。そのまま後続処理へ送ってはいけません。アプリケーション側で値や形式を確認します。
OpenAIでは、Function Callingの引数を定義するスキーマに対してstrictモードを利用できます。公式ドキュメントでも、対応する構成ではスキーマへの準拠を安定させる方法として推奨されています。
ただし、形式が正しいことと、処理内容そのものが適切であることは別問題です。
権限、対象データ、実行条件、エラー発生時の処理などは、Function Callingとは別にシステム側で設計しましょう。
Function Callingについてよくある質問
Function CallingはAIが自分で関数を実行する機能ですか?
必ずしもそうではありません。
カスタム関数では、モデルが呼び出し情報を返します。情報には、利用する関数と引数が含まれます。実際の処理は、アプリケーション側が行う構成が基本です。
一方、AIサービス側で実行される組み込みツールもあります。そのため、誰が実行するかはツールやサービスによって異なります。
Function CallingとTool Callingは同じですか?
文脈によってはほぼ同じ意味で使われます。
OpenAIはFunction Callingをtool callingとも説明しています。ただし、より広い「tool」の中にfunctionが含まれる形で整理される場合もあります。
Function Callingを使うにはプログラミングが必要ですか?
一般的なカスタムFunction Callingを自分で実装する場合は、APIやプログラミングの基礎知識が必要です。
ただし、Function Callingを内部で利用しているAIサービスを使うだけなら、利用者自身がコードを書く必要がない場合もあります。
Function Callingと構造化出力は同じですか?
同じではありません。
構造化出力はAIの回答形式をそろえることが主な目的です。Function Callingは外部の関数やツールを利用することが主な目的です。
両者はJSON Schemaなどを使う点で関連がありますが、役割を分けて理解しましょう。
Function Callingは何に使われていますか?
チャットボット、AIエージェント、社内AI、予約システム、カスタマーサポート、データ検索、業務自動化などで利用できます。
「AIの回答だけでは完結せず、別のシステムから情報を取得したり処理を実行したりする必要がある場面」と相性のよい仕組みです。
まとめ|Function Callingは生成AIと外部機能をつなぐ仕組み
Function Callingとは、生成AIモデルから外部の関数・API・システムを利用するための仕組みです。
モデルへ利用可能なツールを知らせておくことで、ユーザーの依頼に応じて必要な関数や引数を判断できます。
さらに、外部ツールから取得した結果をモデルへ戻せば、その情報を使った回答も生成できます。
そのため、Function Callingは最新情報の取得だけでなく、データベース検索、計算、予約、メール送信、業務システムとの連携など幅広い用途に活用できます。
一方、AIが外部処理を利用できるようになるほど、権限管理や引数の検証、重要操作の確認も必要になります。
初心者はまず、**「Function Calling=生成AIと外部ツールをつなぐ橋渡し」**と覚えておくと、AIエージェントや業務自動化の仕組みも理解しやすくなるでしょう。
出典・参考情報
参考:OpenAI Help Center「OpenAI API における Function Calling」
OpenAI「Migrate to the Responses API」
Google AI for Developers「Function calling with the Gemini API」
Anthropic「Tool use with Claude」
