構造化出力
こうぞうかしゅつりょく
Structured Output
一言でいうと
LLMの出力を、開発者が指定したJSON等の決まった形に強制する仕組みのこと。
詳しい意味
構造化出力(Structured Output / JSON Mode)は、LLMの出力を「自由文」ではなく、開発者が指定したスキーマ(JSON / 列挙値 / Zodスキーマなど)に従った形に強制する仕組みです。LLMが時々 JSON を崩したり余計な前置きを付けたりする問題を、API レベルで保証してくれるのが利点。Anthropic の Tool Use、OpenAI の `response_format`、Vertex AI の structured output などが該当。プログラムで後段処理しやすいデータが手に入るため、エージェント・ワークフロー自動化・分類タスクで標準的に使われます。スキーマを厳しくしすぎると性能が下がる場合があり、「LLMが必要な情報を表現できる粒度」とのバランスが鍵です。
何に使うか
LLM出力を機械的に処理したいとき。エージェントのツール呼び出し引数を確実に取り出したいとき。フォーム自動入力やデータ抽出ワークフロー。
どんな時に出るか
「JSON modeで返す」「structured outputで型保証」「スキーマ厳しすぎて失敗多い」といった場面で登場します。
具体例
- Zodスキーマを response_format に渡し、LLM出力を型安全に取得した。
- 構造化出力にしたら、後段のJSONパース失敗の例外処理が不要になった。
別名・略称
structured output(すとらくちゃーどあうとぷっと)json mode(じぇいそんもーど)JSON mode(じぇいそんもーど)function calling(ふぁんくしょんこーりんぐ)
初心者向けメモ
業務報告書の「フォーマット指定」のようなものです。「自由に書いて」と言うと人によって書き方がバラバラになりますが、項目欄を決めた用紙を渡せば集計しやすい統一形式が集まります。LLMにも同じ仕組みを与えるのが構造化出力です。