関数呼び出し(function calling)とは、大規模言語モデル(LLM)をAPIや関数などの外部ツールに接続してレスポンスを強化する機能です。呼び出す関数とパラメータを構造化データで指定する仕組みや、AIエージェントとの関係、導入のステップ、よくある誤解を解説します。
関数呼び出し(function calling)とは、大規模言語モデル(LLM)をAPIや関数などの外部ツールに接続して、LLMのレスポンスを強化する機能です。本記事では、その仕組み、できること、よくある誤解を解説します。
関数呼び出しを使うと、LLMの回答を、データベース、顧客管理システム、ドキュメントリポジトリなどのリアルタイムの情報やサービスで強化できます。モデル単体が持つ知識だけで答えるのではなく、外部の仕組みを呼び出して情報を取り込める点が特徴です。
これは、AIエージェントのアーキテクチャにおける重要なコンポーネントです。エージェントが外部ツールを使って行動するための土台となります。
関数呼び出しは、おおまかに次の流れで動作します。
| ステップ | 内容 |
|---|---|
| 関数の指定 | モデルに対して、利用可能な関数のセットを指定する |
| プロンプトの分析 | モデルがプロンプトの内容を解釈する |
| 構造化データの生成 | 呼び出す関数とパラメータ値を指定する構造化データを生成する |
| 結果の組み込み | 得られた結果を推論に組み込み、レスポンスを生成する |
ポイントは、モデルが直接外部システムを操作するのではなく、どの関数をどの引数で呼ぶかを構造化データとして出力する点です。
外部情報に基づいて回答を補強する考え方は、グラウンディングとも関連します。
関数呼び出しは、AIエージェントが「調べる→判断する→実行する」という流れを回すための重要な部品です。エージェントは、目的に応じて適切な外部ツールを選び、その結果を踏まえて次の行動を決めます。
このとき、外部操作の権限をどこまで与えるかは慎重に設計する必要があります。必要に応じて人間の承認ステップを組み込むことが望ましいです。
関数呼び出しを導入する際は、まずモデルに何をさせたいかを明確にし、そのために必要な関数を洗い出します。次に、各関数の役割と入出力を整理し、モデルが適切に選べるようにします。
利用が進むにつれて、呼び出しの精度や使い勝手を確認し、必要に応じて見直します。外部システムと連携する以上、セキュリティと権限管理にも十分な配慮が必要です。
実際は:モデルは、呼び出す関数とパラメータ値を構造化データとして指定します。実際の実行は外部の仕組みが担います。
実際は:参照するデータの質や設計に依存します。連携先の情報が不正確であれば、結果も不正確になります。
実際は:プロンプトの分析が処理の出発点です。どの関数を呼ぶかを決めるために、プロンプトの内容が活用されます。
A. あらかじめ決め打ちでAPIを呼ぶのではなく、モデルがプロンプトに応じて呼び出す関数と引数を判断する点が異なります。
A. 最新情報の取得、社内データの参照、計算の実行など、モデル単体では対応しにくい処理を組み合わせたい場面で役立ちます。
A. 呼び出せる関数とその権限を必要最小限に絞り、重要な操作には人間の確認を挟む設計が重要です。
用語の一覧はAI用語辞典トップからたどれます。実際のツール比較はAIツール一覧をご覧ください。
本記事にはアフィリエイトリンクを含む場合があります。経由での申し込み時に当サイトが報酬を受け取ることがありますが、掲載内容・評価は報酬の有無に左右されません。記載情報は公開時点のものであり、最新情報は各公式サイトをご確認ください。
編集部の評価方法論を見る →