ざっくり言うと
イメージ
例えるなら、自由作文とマークシートの違いに近いです。自由作文は読んでいて面白いのですが、機械で集計するのは大変です。
マークシートなら決まった欄に印がつくので、機械がそのまま数えられます。Structured Outputは、AIにマークシート形式で答えてもらう頼み方です。
正確には
Structured Outputは、APIを使うときに「答えはこのスキーマに従ってください」と指定する機能を指します。名前、パラメータ、対応するJSON Schemaの範囲、例外が起きたときの扱いは、提供元ごとに違います。
2026年7月27日時点で、スキーマを使う構造化出力を案内しているのは、次の3つのAPIです。
| 提供元 | 機能名 | 概要 |
|---|---|---|
| OpenAI | Structured Outputs | 応答形式、またはstrictなFunction Callingで、対応範囲のJSON Schemaへ出力を制約 |
| Anthropic(Claude) | Structured outputs | output_config.formatによるJSON outputsと、strict: trueによるstrict tool useを提供 |
| Google(Gemini) | Structured outputs | Interactions APIやGenerate Content APIで、対応するJSON Schemaのサブセットへ出力を制約 |
自由な文章のまま渡すと、3つのつまずきが起きます
LLMの答えをそのままプログラムへ流し込もうとすると、地味につらい問題が起きます。よく起きるのは次の3つです。
- 書式がブレる
同じ質問でも、返し方が毎回少しずつ違います。JSONのつもりが文章だったり、余計な説明が付いたりします。 - キーの名前が揺れる
assigneeだったり担当者だったりpersonだったり、呼び方が安定しません。 - 必須の項目が抜ける
期限を出してほしいのに、たまに省略されます。
Structured Outputを使うと、対応する条件の範囲で、スキーマに沿うよう出力を制約できます。そのぶん、受け取る側のプログラムにとって、値を読み取りやすい形です。
JSONを返させる機能には、もうひとつJSON modeがあります。OpenAIの現行ドキュメントは、この2つを次のように区別しています。JSON modeは、有効なJSONを作るところまでの機能です。Structured Outputsは、対応するスキーマへの適合まで踏み込みます。
Function Callingは道具を呼び、構造化出力は返事の形を決めます
ほぼ同じ場面で使われる仲間に、Function Calling(Tool Use)があります。違いは、どこを構造化するかです。
Function Calling(Tool Use)
AIに外部の道具(関数やAPI)を呼ばせるための仕組みです。道具へ渡す引数を構造化します。
Structured Output
AIの返事そのものを構造化するための仕組みです。出力の形を縛ります。
道具を呼ぶのがFunction Calling、答えの形を決めるのがStructured Outputです。ツールの引数にもstrictなスキーマ制約をかけられるAPIがあり、両方を組み合わせることもできます。
使う場面
構造化出力が向いている場面
使う前に、返してほしい項目を決めましょう
Structured Outputは便利ですが、どんな欄を用意するかを先に決めておかないと力を発揮しません。
たとえば問い合わせメールを分類するなら、少なくともこれくらいは決めます。
category:返品、予約、質問、苦情などpriority:高、中、低などsummary:人が読む短い要約needs_reply:返信が必要かどうか
はじめから完璧なスキーマを作ろうとせず、そのあとの作業で本当に使う項目だけから始めてください。欄が細かすぎると、AIも人も確認が大変になります。小さく作って、使いながら増やすほうが失敗しにくいです。
確かめるときは、AIの返答そのものより、受け取る側のプログラムが迷わず読めるかを見てください。見るのは次の4点です。
- 必要なキーが毎回入っているか
- 値の種類が、決めた型に合っているか
- 空欄にしてよい項目と、必ず埋める項目が分かれているか
- 想定外の文章が混ざっても、処理が止まらないか
ここを確かめておくと、AIの出力を表計算ソフト、顧客管理システム(CRM)、予約管理、社内ツールへ渡すときの事故を減らせます。
注意点
関連用語
- Function Calling(Tool Use) — 外部の道具(関数やAPI)をAIに呼ばせ、渡す引数を構造化する仕組みです。
- API — ソフトウェア同士が決まった手順でやり取りするための窓口です。
- ハルシネーション — 事実と違う内容を、AIがもっともらしく書いてしまう現象です。
- プロンプト — ふだんAIへ渡している指示文のことです。頼み方しだいで、返ってくる形も変わります。
やってみよう