Function Callingとは何か――AIが外部の「道具」を使う仕組みをやさしく理解する
前回は、「エージェントAIとは何か」について説明しました。
エージェントAIとは、人間から与えられた目的に向かって、必要な作業を考え、外部のツールを使いながら行動するAIです。たとえば、旅行の予定を作るために天気を調べたり、カレンダーを確認したり、目的地までの移動時間を調べたりします。
ここで疑問が出てきます。
AIは、どうやって天気サービスやカレンダー、データベースなどを使うのでしょうか。
大規模言語モデルは、本来は文章を入力して文章を出力する仕組みです。そのままでは、勝手に会社のデータベースを検索したり、外部サービスにアクセスしたりすることはできません。そこで重要になるのが、Function Callingです。
一言でいうと、Function Callingとは、AIが「この機能を使う必要がある」と判断し、外部のプログラムやツールを呼び出すための仕組みです。

- 1 Function Callingとは何か
- 2 AI自身が天気を調べているわけではない
- 3 Function Callingは「電話をかける係」に似ている
- 4 Function Callingの基本的な流れ
- 5 Function Callingで使える機能
- 6 Function CallingとAPIの関係
- 7 Function CallingではAIが直接プログラムを実行するのか
- 8 なぜ決められた形式で情報を渡すのか
- 9 Function Callingがあると計算にも強くなる
- 10 Function CallingとRAGの違い
- 11 Function CallingとエージェントAIの関係
- 12 Function CallingでAIは何でもできるのか
- 13 読み取りと書き込みでは危険度が違う
- 14 「メールを送って」と「メールを書いて」は違う
- 15 AIが間違った機能を選ぶ可能性もある
- 16 Function Callingで仕事はどう変わるのか
- 17 Function Callingを理解するとエージェントAIが見えてくる
- 18 まとめ
Function Callingとは何か
Function Callingは、日本語にすると「関数呼び出し」という意味です。プログラミングでは、特定の仕事をまとめた処理を「関数」と呼びます。たとえば、次のような機能を一つの関数として用意できます。
- 天気を取得する
- 商品の在庫を調べる
- 料金を計算する
- 顧客情報を検索する
- 予定表を確認する
- メールを作成する
AIが質問を読んで、「これは天気情報が必要だ」と判断したら、天気を取得するための機能を呼び出します。そして、その機能から返ってきた情報を使って、最終的な回答を作ります。これがFunction Callingの基本的な考え方です。
AI自身が天気を調べているわけではない
たとえば、ユーザーがAIに次のように質問したとします。
「明日の東京は傘が必要ですか?」
AIが学習済みの知識だけで答えてしまえば、明日の天気を正確に知ることはできません。明日の天気は、その時点の最新の気象情報を確認する必要があるからです。そこで、Function Callingを使えるシステムでは、次のような流れになります。
- ユーザーが「明日の東京は傘が必要ですか?」と質問する
- AIが「最新の天気予報が必要」と判断する
- 天気情報を取得する機能を選ぶ
- 「東京」「明日」といった必要な情報を機能に渡す
- 天気サービスから予報が返ってくる
- AIがその結果を読んで回答する
つまり、AI自身が空を見たり、気象データを観測したりしているわけではありません。AIは、必要な外部サービスを選び、その結果を受け取って文章として説明しています。
Function Callingは「電話をかける係」に似ている
Function Callingは、会社で仕事をするときの「担当部署への問い合わせ」にたとえるとわかりやすいです。
たとえば、お客様から次の質問を受けたとします。
「この商品の在庫はありますか?」
受付担当者が在庫数をすべて覚えている必要はありません。在庫管理システムに問い合わせればよいからです。受付担当者は、商品番号を確認し、在庫担当のシステムへ問い合わせます。そして、「在庫は3点あります」という結果を受け取り、お客様に伝えます。
AIの場合も同じです。大規模言語モデルがすべての情報を持っている必要はありません。必要なときに、必要な機能を呼び出せばよいのです。
Function Callingの基本的な流れ
Function Callingの流れを簡単に整理すると、次のようになります。
| 段階 | 何をするか |
|---|---|
| 1. 質問を受け取る | ユーザーの依頼内容をAIが読む |
| 2. 必要な機能を判断する | 外部ツールを使う必要があるか考える |
| 3. 機能を選ぶ | 利用できる機能の中から適切なものを選択する |
| 4. 必要な情報を渡す | 検索語、日付、商品番号などを渡す |
| 5. 結果を受け取る | 外部システムから結果を取得する |
| 6. 回答を作る | 取得した結果をもとにAIが自然な文章で答える |
この仕組みによって、AIは自分の学習済み知識だけではできない仕事を行えるようになります。
Function Callingで使える機能
Function Callingで利用できる機能は、システムを作る側が用意します。
たとえば、次のような機能が考えられます。
- Web検索
- 天気予報の取得
- 電卓による計算
- 商品データベースの検索
- 在庫確認
- 顧客データの検索
- カレンダーの確認
- メールの作成
- ファイルの検索
- 社内システムへのデータ登録
つまり、AIにどんな道具を渡すかによって、できることが変わります。どれほど高性能なAIでも、在庫管理システムにつながっていなければ、現在の在庫数を正確に確認することはできません。逆に、適切な機能と接続すれば、AIは実際の業務データを使った作業ができるようになります。
Function CallingとAPIの関係
Function Callingについて調べると、APIという言葉もよく出てきます。APIとは、あるシステムから別のシステムの機能やデータを利用するための仕組みです。
たとえば、天気情報を提供する会社がAPIを用意していれば、自分のWebサイトやアプリからその会社の天気データを取得できます。Function Callingでは、このようなAPIを呼び出すプログラムをAIのツールとして用意することがあります。ただし、Function CallingとAPIは同じものではありません。
| 用語 | 役割 | たとえ |
|---|---|---|
| API | 外部サービスの機能や情報を利用するための窓口 | 会社の問い合わせ窓口 |
| Function Calling | AIがどの機能を、どの情報を使って呼び出すか決める仕組み | どの窓口へ何を問い合わせるか判断する担当者 |
APIは、AIがなくても使えます。普通のプログラムからAPIを呼び出すこともできます。Function Callingの特徴は、自然な言葉で与えられた依頼から、AIが「どの機能が必要か」を判断できるところです。
Function CallingではAIが直接プログラムを実行するのか
ここは誤解しやすい部分です。
Function Callingでは、AIが好き勝手にコンピューターのプログラムを実行しているとは限りません。一般的には、システム側が「利用してよい機能」をあらかじめAIに伝えます。たとえば、AIに次のような機能があることを教えます。
- get_weather:天気を調べる
- search_products:商品を検索する
- check_stock:在庫を確認する
- calculate_price:料金を計算する
AIはユーザーの依頼を読み、「check_stockを使うべきだ」のように判断します。そして、商品番号など必要な情報を指定します。実際にその機能を実行するのは、AIの周囲にあるプログラムです。つまり、AIは「この道具を、この条件で使いたい」と指示を出し、システム側が安全に実行する構成が一般的です。
なぜ決められた形式で情報を渡すのか
Function Callingでは、AIが外部機能へ渡す情報を、決められた形式に整えることが重要です。
たとえば、ホテルを検索する機能があるとします。この機能には、次のような情報が必要かもしれません。
- 場所
- チェックイン日
- チェックアウト日
- 宿泊人数
ユーザーは自然な日本語で、次のように言います。
「来月10日から2泊、大阪で2人で泊まれるホテルを探して。」
AIはこの文章から必要な情報を読み取ります。そして、ホテル検索機能が理解できる形に整理します。
| 項目 | 取り出す情報 |
|---|---|
| 場所 | 大阪 |
| チェックイン | 来月10日 |
| チェックアウト | 2泊後 |
| 人数 | 2人 |
つまりFunction Callingには、人間の自然な言葉を、コンピューターが実行できる決まった形へ変換するという重要な役割があります。
Function Callingがあると計算にも強くなる
大規模言語モデルは文章を作ることが得意ですが、必ずしも複雑な計算を正確に行うために作られているわけではありません。そこで、計算が必要な場合には、電卓や計算プログラムをツールとして使うことができます。たとえば、AIに次のように聞きます。
「1個2,480円の商品を17個買って、消費税10%を加えると合計はいくら?」
AI自身が計算するのではなく、計算機能を呼び出します。そして、計算結果をもとに自然な文章で答えます。つまり、AIはすべての仕事を自分で行う必要はありません。得意な道具に仕事を任せ、その結果をまとめることができます。
Function CallingとRAGの違い
ここまで説明してきたRAGとも比較してみましょう。RAGは、必要な資料を検索してAIに渡す仕組みです。Function Callingは、AIが外部の機能を呼び出す仕組みです。<似ていますが、役割は少し違います。
| 技術 | 主な目的 | 例 |
|---|---|---|
| RAG | 必要な知識や資料を取り出す | 社内マニュアルを検索して回答する |
| Function Calling | 外部の機能を利用する | 在庫確認、天気取得、計算、予定登録 |
ただし、この2つを組み合わせることもできます。たとえば、エージェントAIがFunction Callingを使って社内検索システムを呼び出し、その検索システムの中でRAGを使う、といった構成も考えられます。
Function CallingとエージェントAIの関係
Function Callingは、エージェントAIを実現するための重要な技術の一つです。前回説明したように、エージェントAIは目的に向かって必要な作業を考えます。しかし、考えるだけでは実際の仕事は進みません。そこでFunction Callingを使って、外部ツールを利用します。
たとえば、旅行計画を作るエージェントAIなら、次のようなツールを順番に呼び出すかもしれません。
- 天気予報を取得する
- ホテルを検索する
- 移動時間を調べる
- 営業時間を確認する
- カレンダーを確認する
推論モデルが「何をするべきか」を考え、Function Callingが「実際に道具を使う」橋渡しをするイメージです。
Function CallingでAIは何でもできるのか
Function Callingを使えばAIの能力は大きく広がります。しかし、何でも自由にできるわけではありません。AIが利用できるのは、基本的にシステム側が用意した機能だけです。天気検索しか用意されていなければ、AIはその機能を使えますが、勝手に銀行口座へアクセスすることはできません。これは安全性の面でも重要です。AIに必要な機能だけを与えることで、できることの範囲を制限できます。
読み取りと書き込みでは危険度が違う
Function Callingでは、機能の種類によって危険度が大きく違います。たとえば、天気情報を読むだけなら、間違っても大きな被害にはなりにくいでしょう。しかし、メールを送信したり、ファイルを削除したり、商品の注文を確定したりする機能は違います。
| 操作 | 例 | 注意 |
|---|---|---|
| 読み取り | 天気を見る、在庫を見る、予定を確認する | 比較的リスクが低い |
| 変更・書き込み | 予定を登録する、データを変更する | 間違った変更に注意 |
| 外部への実行 | メール送信、購入、削除、申込み | 人間の確認が特に重要 |
そのため、重要な操作では、AIがFunction Callingを選んでも、そのまま実行せず、人間へ確認を求める仕組みが重要です。
「メールを送って」と「メールを書いて」は違う
Function Callingの安全性を考えるうえで、とてもわかりやすい例があります。「取引先へのメールを書いてください」と頼む場合、AIは文章を作るだけです。人間が内容を確認してから送信できます。
一方、「取引先にこのメールを送ってください」と頼む場合、AIがメール送信機能を使えば、現実世界で実際の操作が行われます。この2つは似ていますが、意味は大きく違います。文章生成の間違いなら、人間が修正できます。かし、誤った相手にメールを送れば、あとから取り消せないことがあります。
Function Callingでは、この「現実世界への影響」を考えることが非常に重要です。
AIが間違った機能を選ぶ可能性もある
Function Callingを使っているからといって、AIが必ず正しい機能を選ぶとは限りません。ユーザーの指示を誤解することがあります。必要な情報を間違えて読み取ることもあります。たとえば、日付を間違えたり、似た商品番号を取り違えたりする可能性があります。そのため、システム側でも安全対策が必要です。
- 入力された値が正しい形式か確認する
- 存在しない商品番号を拒否する
- 操作できる範囲を制限する
- 重要な操作では確認を求める
- 実行履歴を記録する
AIの判断だけにすべてを任せるのではなく、通常のプログラム側でもチェックすることが大切です。
Function Callingで仕事はどう変わるのか
Function Callingによって、生成AIは単なる「文章を作る道具」から、業務システムの操作窓口になり得ます。たとえば、これまでなら在庫を調べるために管理画面を開き、商品番号を入力し、検索ボタンを押す必要がありました。Function Callingを使えば、自然な言葉で次のように聞くことができます。
「商品ABCの在庫を確認してください。」
AIが商品番号を判断し、在庫検索機能を呼び出し、結果をわかりやすく返します。つまり、人間がシステムの操作方法を覚える代わりに、AIへ自然な言葉で依頼できるようになる可能性があります。これは、AIが仕事に入り込んでいくうえで非常に重要な変化です。
Function Callingを理解するとエージェントAIが見えてくる
エージェントAIが「行動するAI」と言われても、Function Callingを知らないと少し不思議に感じます。>AIが本当にパソコンを人間のように操作しているように見えるからです。しかし実際には、外部に用意された機能を選び、決められた情報を渡し、その結果を受け取るという仕組みが重要な役割を果たしています。つまり、エージェントAIの「手や足」の一つがFunction Callingです。
AIは言葉を理解し、何をするべきか考えます。Function Callingは、その判断を現実のシステム操作につなげます。
まとめ
Function Callingとは、AIが外部のプログラムやツールを呼び出すための仕組みです。大規模言語モデルは文章を作るのが得意ですが、それだけでは最新の天気を取得したり、現在の在庫を確認したり、予定を登録したりすることはできません。Function Callingを使うと、AIはユーザーの自然な言葉から必要な機能を判断し、必要な情報を決められた形式に整理して、その機能を利用できます。天気検索、電卓、データベース、カレンダー、メール、社内システムなど、さまざまな機能と組み合わせることができます。
Function CallingはAPIそのものではありません。APIなどの外部機能を、AIが適切に選んで利用するための橋渡しです。また、Function CallingはエージェントAIを実現する重要な技術の一つです。
AIが目的に向かって仕事を進めるには、考えるだけでなく、外部の道具を使う必要があるからです。一方で、AIが現実のシステムを操作できるようになるほど、安全性も重要になります。メール送信、削除、購入、データ変更など、影響の大きな操作では、人間による確認や権限制御が必要です。
Function Callingは、AIを「答えを作る道具」から「実際のシステムとつながって仕事をする道具」へと広げる技術です。
次回は、「AIベンチマークとは何か」について説明します。
AIベンチマークとは、AIの性能を測るためのテストのようなものです。「このAIは数学で90%」「このモデルはプログラミング性能が高い」といった数字はどのように出されているのか、そしてその数字をどこまで信用してよいのかを、やさしく整理していきます。