関数呼び出し(Function Calling)

Function Calling

関数呼び出し(Function Calling)とは

関数呼び出し(Function Calling)とは、大規模言語モデル(LLM)が外部のAPIや関数を呼び出すための仕組みです。LLMにあらかじめ利用可能な関数の定義(名前、説明、パラメータ)を渡しておくと、ユーザーの入力に応じてモデルが適切な関数を選択し、必要な引数をJSON形式で構造化して出力します。

Function Callingの仕組み

典型的なFunction Callingのフローは次のとおりです。まず、利用可能な関数のスキーマ(関数名、説明文、パラメータの型と説明)をモデルに提供します。ユーザーが「東京の天気を教えて」と入力すると、モデルは「get_weather」関数を選択し{"location": "Tokyo"}という引数を出力します。アプリケーション側がこの関数を実行し、結果をモデルに返すと、モデルがその結果を自然言語で整形して応答します。

Function Callingの応用

Function CallingはLLMをあらゆる外部システムと連携させる鍵となる技術です。データベースの検索・更新、Webサービスの利用、社内システムとの統合、計算処理の実行、ファイル操作など、LLM単体ではできない操作を可能にします。エージェントAI(自律的に複数のツールを使い分けて目標を達成するAI)の実現にも不可欠な技術基盤であり、LangChainやLlamaIndexなどのフレームワークでも中心的な機能として組み込まれています。