関数呼び出し(Function Calling)とは
関数呼び出し(Function Calling)とは、大規模言語モデル(LLM)が外部のAPIや関数を呼び出すための仕組みです。LLMにあらかじめ利用可能な関数の定義(名前、説明、パラメータ)を渡しておくと、ユーザーの入力に応じてモデルが適切な関数を選択し、必要な引数をJSON形式で構造化して出力します。
| ひとことで言うと | AIが自分で外部の機能(在庫照会・計算など)を呼び出して使う仕組み。 |
|---|---|
| どこで使う | 社内システムとの連携、最新データの取得、AIエージェントの構築。 |
| 注意点 | 呼び出せる機能の権限設計が必須。誤った引数を渡すこともあるので検証を入れる。 |
Function Callingの仕組み
典型的なFunction Callingのフローは次のとおりです。まず、利用可能な関数のスキーマ(関数名、説明文、パラメータの型と説明)をモデルに提供します。ユーザーが「東京の天気を教えて」と入力すると、モデルは「get_weather」関数を選択し{"location": "Tokyo"}という引数を出力します。アプリケーション側がこの関数を実行し、結果をモデルに返すと、モデルがその結果を自然言語で整形して応答します。
1関数を定義使える機能をAIに教える
▶
2依頼が届く「在庫を調べて」
▶
3呼ぶ関数を決定名前と引数をAIが出力
▶
4アプリが実行実際のシステムを叩く
▶
5結果から回答取得データを文章化
※ 実行するのはAIではなくアプリ側です。権限はアプリ側で必ず絞ります。
Function Callingの応用
Function CallingはLLMをあらゆる外部システムと連携させる鍵となる技術です。データベースの検索・更新、Webサービスの利用、社内システムとの統合、計算処理の実行、ファイル操作など、LLM単体ではできない操作を可能にします。エージェントAI(自律的に複数のツールを使い分けて目標を達成するAI)の実現にも不可欠な技術基盤であり、LangChainやLlamaIndexなどのフレームワークでも中心的な機能として組み込まれています。