AI資格ドリル
資格を選ぶ↓

用語比較

構造化出力とFunction Callingの違い|回答の形を決めるか、外部ツールを呼ぶか(生成AIパスポート)

生成AIパスポートの2027年版シラバスで「構造化出力」と「Function Calling」が同じ項目に並び、どちらもJSON Schemaを使うため区別に迷っている人は、モデルの出力を誰が受け取るかに注目してください。利用者へ返す回答そのものを決めた形にそろえるのが構造化出力の応答形式指定で、外部の関数やツールを使うために関数名と引数を返すのがFunction Callingです。

回答データの形を決めるなら構造化出力、外部処理を選んで呼び出すならFunction Callingと分けます。ただし、2つは排他的ではありません。Function Callingの引数にも構造化出力を使い、定義したスキーマに合わせる構成があります。

このページでは、OpenAI公式ガイドが示す応答形式指定とFunction Callingの選び分けに範囲を絞ります。構造化出力という広い機能の中にFunction Callingで使う方式もあるため、単に『JSONを返すかどうか』ではなく、外部処理の有無と最終的な受け取り先で判断します。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。生成AIパスポートの一次情報確認日: 2026-08-31。

公式一次資料と照合した内容
Structured Outputsを応答形式指定とFunction Callingの両方で使えること、利用者への応答を構造化する場合と外部ツールへ接続する場合の選び分けは、OpenAI公式のStructured OutputsガイドとFunction Callingガイドへ2026-11-03に照合しています。生成AIパスポートの出題語は、2027年2月適用版の公式シラバスへ同日に照合しています。
編集部が学習用に整理した内容
抽出結果・在庫照会・予約登録の架空例と、最終的な受け取り先・外部処理の有無・引数の扱いから判定する手順は編集部の学習上の整理です。

資格ごとの公式資料の一覧

結論

公式一次資料と照合:用語の定義は公式一次資料と照合しています。

構造化出力(応答形式指定)

モデルが利用者やアプリへ返す回答そのものを、指定したJSON Schemaなどの形にそろえる。

Function Calling

モデルが使う関数を選び、関数名と引数を返す。関数の実行と結果の返却はアプリ側が担う。

両方を使う構成

Function Callingの関数定義をstrict modeにし、呼び出し引数を指定したスキーマへ合わせる。

違いを表で確認

比較軸構造化出力(応答形式指定)Function Calling
主な目的構造化出力:利用者への回答や抽出結果の形を固定するFunction Calling:モデルを外部の機能やデータへ接続する
モデルが返すもの構造化出力:指定した項目と型を持つ応答データFunction Calling:呼び出す関数の名前と、その関数へ渡す引数
外部処理構造化出力:回答を受け取るだけなら外部処理は必須ではないFunction Calling:アプリが関数を実行し、結果をモデルへ返す処理がある
JSON Schemaの役割構造化出力:回答全体の項目・型・選択肢などを定めるFunction Calling:関数が受け取る引数の項目・型などを定める
代表的な場面構造化出力:文書から氏名・日付・分類を決めた項目で抽出するFunction Calling:在庫を照会する、予約を登録する、社内APIを呼ぶ
生成AIパスポートでの位置構造化出力:AIエージェントの仕組みの詳細キーワードFunction Calling:同じくAIエージェントの仕組みの詳細キーワード

公式一次資料と照合:生成AIパスポート: 2026-08-31に一次資料で確認一次資料の一覧を見る →

どこで迷っているかを切り分ける

01

JSONで返ってくれば、すべてFunction Callingだと思っている人

JSONはデータの表現形式です。利用者への回答をJSON Schemaに合わせるだけなら、応答形式指定による構造化出力です。外部関数を選び、引数を渡して実行する流れがあるときにFunction Callingと判断します。

02

Function Callingではモデルが関数を実行すると考えている人

カスタム関数では、モデルが返すのは呼び出す関数と引数です。アプリ側がその情報を受け取り、コードを実行し、結果をモデルへ返します。

03

構造化出力とFunction Callingのどちらか一方しか使えないと思っている人

OpenAI公式ガイドは、Structured Outputsを応答形式指定とFunction Callingの両方で利用できると説明しています。Function Callingの引数をスキーマへ厳密に合わせる組み合わせがあります。

具体例で使い分ける

編集部の整理

例 1

議事録から決まった項目を抜き出す場合(架空の場面)

議事録を読み、会議名、開催日、決定事項、担当者を、後続の画面で表示できる形にそろえて返します。外部サービスの操作は行いません。

  • 必要なのは、モデルの回答を決めた項目と型へそろえることです。
  • 外部の関数を選んだり、結果をモデルへ返したりする流れはありません。
  • 応答形式へJSON Schemaを指定する構造化出力が目的に合います。

結論: 回答そのものの形を固定するので、構造化出力の応答形式指定を使う場面です。

例 2

商品の在庫を照会する場合(架空の場面)

利用者が商品名を入力すると、モデルが在庫照会用の関数を選び、商品IDを引数としてアプリへ返します。アプリは在庫システムを照会します。

  • モデルの知識だけで答えず、外部の在庫システムへ接続する必要があります。
  • モデルは在庫照会関数と商品IDを選び、アプリが関数を実行します。
  • 実行結果をモデルへ返すと、その結果を使って利用者向けの回答を作れます。

結論: 外部の機能とデータを使うため、Function Callingの場面です。

例 3

予約登録の引数も決めた形にそろえる場合(架空の場面)

モデルが予約登録関数を選び、利用日、開始時刻、人数を引数として返します。必須項目や型を関数定義のスキーマに合わせます。

  • 予約登録という外部処理を選ぶため、Function Callingを使います。
  • 関数の引数を定義したスキーマに合わせるため、Structured Outputsのstrict modeも使えます。
  • 外部処理の選択と引数の構造化は、同じ流れの中で両立します。

結論: Function Callingに構造化出力を組み合わせる場面です。

問題文から答えを選ぶ手順

編集部の整理:抽出結果・在庫照会・予約登録の架空例と、最終的な受け取り先・外部処理の有無・引数の扱いから判定する手順は編集部の学習上の整理です。

  1. 1

    最終的に欲しいものを見る

    決めた形の回答データが欲しいだけなら、構造化出力の応答形式指定から考えます。

  2. 2

    外部の処理やデータが必要かを見る

    検索、登録、送信、計算など、アプリ側の関数を使うならFunction Callingを考えます。

  3. 3

    モデルとアプリの役割を分ける

    モデルは関数名と引数を返し、アプリが実行します。モデルが外部処理を直接実行すると考えないようにします。

  4. 4

    引数にもスキーマ準拠が必要かを見る

    Function Callingの引数を定義どおりにそろえる場合は、構造化出力を組み合わせます。

試験での見分け方

編集部の整理

  • 1利用者へ返す応答そのものを指定した構造にするなら、構造化出力の応答形式指定を使う。
  • 2モデルを外部のツール・関数・システム内のデータへ接続するなら、Function Callingを使う。
  • 3Function Callingでカスタム関数を実行する主体はアプリ側であり、モデルは関数名と引数を返す。
  • 4Structured OutputsはFunction Callingでも利用できるため、構造化出力とFunction Callingは排他的ではない。

誤答しやすい選択肢

JSONが出ればFunction Callingだと判断する

修正: 回答全体をJSONにそろえるだけなら構造化出力です。外部関数の選択、引数、アプリによる実行があるかを確認します。

Function Callingなら回答の形は関係ないと考える

修正: Function Callingの引数もスキーマで定義します。strict modeで構造化出力を使う構成もあります。

モデルが予約登録や在庫照会を直接実行すると考える

修正: カスタム関数では、モデルは呼び出し情報を返し、アプリ側のコードが実行します。

スキーマに合えば、値の事実性も保証されると考える

修正: 構造が合うことと、値が事実として正しいことは別です。取得元や業務ルールに照らした検証は残ります。

確認問題

Q1文書から氏名・日付・分類を決めた項目で返す場合に使うものは?

答え: 構造化出力の応答形式指定

外部処理ではなく、モデルが返す回答データの形を固定する場面です。

Q2モデルが在庫照会関数と商品IDを返す仕組みは?

答え: Function Calling

外部の在庫システムへ接続するための関数と引数を選びます。

Q3Function Callingでカスタム関数を実際に実行するのは?

答え: アプリ側のコード

モデルは関数名と引数を返し、実行結果を受け取って次の回答を作ります。

Q4Function Callingの引数を定義したスキーマへ合わせる構成は可能?

答え: 可能

Structured Outputsのstrict modeをFunction Callingで使えます。

到達チェック

  • 回答の形を固定する場面と、外部処理を呼ぶ場面を分けられる
  • Function Callingでモデルとアプリが担う役割を説明できる
  • JSONを使うだけでFunction Callingとは限らないと分かる
  • 構造化出力とFunction Callingを組み合わせる場面を説明できる

同じ資格で次に知りたいこと

よくある質問

Q構造化出力とFunction Callingの違いは?

A

利用者への回答そのものを決めた形にそろえるのが構造化出力の応答形式指定で、外部の関数やツールを使うために関数名と引数を返すのがFunction Callingです。

Q構造化出力とFunction Callingは同時に使えますか?

A

はい。Function Callingの関数定義をstrict modeにし、モデルが返す引数を指定したスキーマへ合わせる構成があります。

QFunction Callingではモデルが関数を実行しますか?

A

カスタム関数では、モデルは関数名と引数を返します。実際の実行はアプリ側のコードが行い、その結果をモデルへ返します。

Q構造化出力とFunction Callingは生成AIパスポートで問われますか?

A

2027年2月試験から適用される公式シラバスで、どちらもAIエージェントの仕組みの詳細キーワードに載っています。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)