関数呼び出し(Function Calling)によって、LLM はツールを選び、アプリが実行する構造化された引数を返せます。その仕組みと、AI エージェントを支える理由を学びましょう。

要約
関数呼び出しは、外部ツールが必要なときを言語モデルが判断し、関数名とその引数を示す構造化された JSON オブジェクトを返す機能で、その実行は周囲のアプリケーションが担います。
さらに詳しく知るには、こちらに質問
関数呼び出し(ツール呼び出しとも呼ばれます)は、どの関数をどの引数で実行すべきかを、構造化された機械可読の形式で返すことで、大規模言語モデルが外部システムと連携できるようにする機能です。モデルはテキストを生成するだけでなく、どのような操作が必要かを推論し、アプリケーションが実行できる JSON オブジェクトを出力します。これにより、テキスト生成器が行動を起こせるシステムに変わります。
この機能は、言語モデルと現実の世界をつなぐ架け橋です。アシスタントがリアルタイムのデータを取得したり、操作を実行したり、複数のステップをつなげたりできるのはこの機能のおかげで、現代の AI エージェントを支える主要な仕組みでもあります。これを理解すると、AI ツールがタスクについて話すだけの段階から、実際にタスクを完了する段階へとどう移るのかがわかります。
関数呼び出しは、学習データを超えた能力へのアクセスをモデルに与えます。利用できる関数を説明しておくと、モデルはリクエストごとに関数が必要かどうかを判断し、適切な関数を選び、渡す引数を生成します。出力は自由なテキストではなく構造化された JSON オブジェクトであり、それがソフトウェアで確実に使える理由です。
重要でありながら誤解されがちな点があります。その名前にもかかわらず、関数呼び出しはあなたのコードを自動的に実行するわけではありません。モデルはどの関数を呼ぶべきかを示して引数を生成するだけで、実際に関数を実行するのはアプリケーションです。モデルが行動を提案し、あなたのシステムがそれを処理するのです。
ワークフローは明確なループに従います。まず関数スキーマを定義します。これは、関数の名前、目的、受け付けるパラメーターとその型を示す構造化された説明です。次に、ユーザーのメッセージと利用可能な関数の定義をモデルに送ります。モデルは関数呼び出しが適切かどうかを判断し、適切であれば、関数名と引数を示す JSON を返します。
アプリケーションはその JSON を解析し、取り出した引数で実際のバックエンドの関数を実行し、結果をモデルに返してループを閉じます。モデルはその結果を使ってユーザーに回答したり、次のステップを決めたりできます。各関数の出力を次の呼び出しに渡せるため、関数呼び出しは複数ステップのワークフローを可能にし、エージェント型ワークフローの基盤となっています。
関数呼び出しは、本質的には構造化出力の特殊な形です。どちらも JSON スキーマで一貫したデータ形式を強制しますが、目的が異なります。構造化出力はモデルの回答を必要な形に合わせることに重点を置き、関数呼び出しはスキーマを使って呼び出し可能な操作とそのパラメーターを定義します。この 2 つはよく組み合わせて使われ、関数呼び出しが何をするかを決め、構造化出力がデータの正確な形を定義します。
各プロバイダーは、厳格なスキーマの強制によってこれを強化してきました。OpenAI の Structured Outputs は、以前の JSON モードを発展させたもので、単に有効な JSON を生成するだけでなく、開発者が指定したスキーマにモデルの出力を一致させるよう制約し、関数呼び出しと組み合わせることもできます。この信頼性があるからこそ、この機能の上に安心して構築でき、よく整理された構造化コンテンツとも自然に組み合わせられます。
関数呼び出しは、AI エージェントがツールとやり取りする主な方法です。エージェントは自然言語でリクエストを受け取り、どの関数を呼び出すかを判断し、正しいパラメーターを生成し、複数の呼び出しをつなげて複雑な目標を達成します。たとえば請求書を処理するエージェントは、ある呼び出しで取引先のデータを抽出し、その情報を使って支払いの関数を実行するかもしれません。
モデルは同時並行のタスクのために複数の関数呼び出しを並列に発行することもでき、開発者はツールの選択を制御できます。モデルに自動で選ばせる、少なくとも 1 回の呼び出しを必須にする、特定のツールを強制する、といった具合です。こうした制御によってエージェントは意図から行動へと確実に移れるのであり、だからこそ関数呼び出しは、エージェント型検索や自律型アシスタントへの大きな流れを支えています。この機能は、OpenAI、Anthropic、Google を含む主要なプロバイダーで利用できます。
AI アシスタントが記憶した内容だけに頼らず、最新の情報を取得できる大きな理由は、関数呼び出しにあります。アシスタントがツールで最新のデータを取得して質問に答えるとき、取得して引用する情報源が目に見える結果になります。これは、AI 検索での可視性をどう獲得するかに直結します。
また、発見のされ方がどこへ向かっているかも示しています。調査から取引まで、エージェントがユーザーに代わって行動する場面が増えるにつれ、構造化された機械可読の情報の価値はますます高まります。ツールやエージェントは、決まった形でデータを取り込むからです。Model Context Protocol のような新しい標準も、一貫した呼び出し可能な方法でモデルに機能を公開するという、同じ考え方の上に成り立っています。
代表的な用途には、天気、在庫、価格などのリアルタイムデータの取得、予約や取引の送信といった操作の実行、ユーザーが入力した値での計算、自動化された複数ステップのワークフローの構築、モデルの出力に基づくインターフェースの更新があります。言語モデルがテキストを超えて実際のシステムに働きかける必要がある場面では、どこでも関数呼び出しがその仕組みになります。
プロダクトやマーケティングのチームにとって最も関係が深いのは、データの取得とワークフローの自動化です。関数呼び出しによって、アシスタントはあなたのシステムに接続し、推測ではなく正確で最新の情報に基づいて行動できます。優れたプロンプトエンジニアリングとツールの設計が組み合わさって、アシスタントが信頼できるものになるのもこのためです。
関数呼び出しには事前に定義されたスキーマが必要です。モデルは未知の任意の関数を呼び出すことはできず、結果の質はスキーマの定義の正確さに大きく左右されます。設計の悪いスキーマは誤った呼び出しにつながるからです。モデルが各関数をいつ、どのように呼び出すべきかを理解できるよう、明確な説明とプロンプトが欠かせません。
信頼性は手法によっても異なります。厳格なスキーマの強制を伴うネイティブの関数呼び出しは、プロンプトでそれを模倣する方法よりはるかに信頼できます。後者には強制の保証がなく、モデルの更新で動かなくなることがあります。また、モデルは行動を提案するだけなので、特にお金を動かしたりデータを変更したりする操作では、アプリケーションが引数を検証し、安全に実行を処理しなければなりません。
関数呼び出しは、ツールが必要なときを言語モデルが判断し、関数と引数を示す構造化された JSON オブジェクトを返せるようにする機能で、その実行はアプリケーションが担います。構造化出力の特殊な形であり、AI エージェントがツールを使うための基盤であり、アシスタントが現実世界の最新データに基づいて行動できる重要な理由でもあります。
さらに進むには、AI エージェントや Model Context Protocol と結びつけ、Sorank の調査とコンテンツ計画のツールを使って、エージェントがますます頼りにする機械可読の形で情報を構造化しましょう。参照した情報源:Agenta、Vellum。
出典
関数呼び出し(ツール呼び出し)は、言語モデルが外部のシステムとやり取りできるようにする機能です。モデルはリクエストにツールが必要かどうかを判断し、適切な関数を選び、使う引数を含む構造化された JSON オブジェクトを返します。名前とは裏腹に、モデル自体がコードを実行するわけではなく、呼び出しを記述し、アプリケーションが実際の関数を実行します。
どちらも JSON スキーマに頼って一貫した形式を保ちますが、目的が異なります。構造化出力はモデルの応答を必要な形に合わせ、関数呼び出しはスキーマを使って呼び出せる操作とそのパラメーターを定義します。両者は組み合わせて使われることがよくあり、関数呼び出しがどの行動を取るかを決め、構造化出力がモデルの返すデータの正確な形を定めます。
関数呼び出しは、AI エージェントがツールを使う主な方法です。エージェントは自然言語のリクエストを読み、どの関数を呼び出すかを決め、パラメーターを生成し、複数の呼び出しをつなげて複雑なタスクを完了させます。モデルは並列の呼び出しもでき、開発者にツールの選択を制御させることもできます。これが、テキストの生成器を、データを取得して実際の行動を起こせるシステムに変えるものです。
先行導入企業のご紹介
