Structured Output(構造化出力)
この記事は約8分で読めます
ざっくり言うと
イメージ
例えるなら、自由作文とマークシートの違いに近いです。自由作文は読んでいて面白いのですが、機械で集計するのは大変です。
マークシートなら決まった欄に印がつくので、機械がそのまま数えられます。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へ渡している指示文のことです。頼み方しだいで、返ってくる形も変わります。
やってみよう
よくある質問
- Q. Structured Output(構造化出力)とは何ですか?
- A. AIの答えを自由な文章ではなく、JSONなど決まった形のデータで受け取る考え方です。どんな項目を、どんな種類の値で返すかを、あらかじめ決めておきます。
- Q. 構造化出力は、どんな場面で使いますか?
- A. AIの結果を別のシステムへ渡す場面です。会議メモからタスク一覧を作る、問い合わせメールを分類する、レシート画像を経費データにする、といった使い方があります。
- Q. Structured OutputとFunction Callingは、何が違いますか?
- A. 構造化する場所が違います。Function Callingは外部の道具へ渡す引数を構造化し、Structured Outputは返事そのものの形を縛ります。両方を組み合わせることもできます。
- Q. 形をそろえれば、中身も正しくなりますか?
- A. そろうのは形だけで、値が事実かどうかは別の話です。元の文書に書いていないことを、それらしく埋めてしまうこともあります。大事な抽出結果は、人が目を通してください。
公開: 更新: ✓ 公式情報と照合:
参考ソース
判断クイズ
JSONで返ってきたら、中身も信用してよいと思っていませんか?
3問です。答えるとその場で解説が出ます。全問終えたら、「回答を記録する」で学習の記録に残せます。
全問に答えると、回答を記録できます。
残るのは「答えたかどうか」だけで、正解数は保存されません。この端末の中だけに残り、別の端末には引き継がれません。
この教科書は無料で全文公開しています。仕事で使えるところまで進みたい方は、実習と資料がそろった生徒プランをどうぞ。
あわせて読みたい
- AI基礎 | 用語集約7分
MCP(Model Context Protocol)
MCP(Model Context Protocol)は、AIと外部ツール・データを「同じ作法」でつなぐための共通規格です。Anthropicが提唱したこの『AI界のUSB-C』が自分の仕事とどう関わるのかを超訳します。内容を見る - AI基礎 | 用語集約7分
API とは
API(Application Programming Interface)とは、ソフトウェア同士をつなぐ窓口のこと。AIのAPIは、モデルをWebの画面ではなくプログラムから使う方法です。料金・安全・自由度の違いを整理しました。内容を見る - Claude | ツール固有の機能約10分
ClaudeのComputer Use(画面操作)って何?
ClaudeのComputer Useは、Claudeが画面を見ながらクリックや文字入力をして、アプリを操作してくれる機能です。Cowork版の有効化手順、開発者向けAPI版との違い、安全に試すコツをまとめました。内容を見る