No English page yet. Showing the Japanese source.
Structured Output/Schema Validation
記事状態: 公開 · 最終確認: 2026-10-05
要点
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。
現在の判断
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。
どこまで当てはまるか
Structured Output/Schema Validation
詳しく理解する
FIVE GATES
side effectへ到達する前に、少なくとも次を分離します。
- syntax/parse: JSONとして読めるか。
- provider schema conformance: providerのstructured-output modeが対応subsetに従っているか。
- independent schema validation: application側validatorで期待dialect/schemaに適合するか。
- semantic validation: ID、単位、時刻、金額、相互関係、business invariantが正しいか。
- execution gate: identity/authorization、最新version、precondition、idempotency、必要なhuman confirmationを満たすか。
前段PASSを後段PASSの代用にしません。
SCHEMA DIALECT AND PROVIDER SUBSET
「JSON Schema対応」という表記だけでDraft 2020-12全機能が同一に使えるとは仮定しません。
OpenAI strict structured outputはJSON Schemaのsubsetを使用します。公式documentation自身が、標準meta-schemaにはstrict mode未対応featureがあることを示しています。
Gemini structured outputsもJSON Schemaのsubsetであり、大規模・深いschemaは拒否され得ます。provider/model/API surfaceごとにsupported keywordとcomplexity limitをfixtureで確認します。
schemaにはdialect/version、provider/model/API revision、schema hashを付け、consumer側validator versionも監査証跡へ残します。
FORMAT IS NOT BUSINESS SEMANTICS
JSON Schema Draft 2020-12ではformatのassertion behaviorはvocabulary/implementationに依存します。email/date-time等がschema validatorを通っても、メールボックス実在、業務時間、timezone policy、組織上の許可までは証明しません。
domain validationをschema validationから分離します。
SCHEMA VALID BUT WRONG
constrained decodingでschema validityが高くても、値そのものが誤っている場合があります。
例: - 存在する型のcustomer_idだが別顧客 - enum内のactionだが意図と違う - integerの金額だが通貨・桁が違う - ISO date-timeだがtimezone/business cutoffが違う - required fieldを満たすため未知値を生成 - tool argumentsはvalidだが対象versionが古い
運用metricはschema-valid率だけでなくsemantic accuracy、executable accuracy、unsafe-accept rateを分離します。
SIDE EFFECTING TOOLS
tool argumentがschema-validでも、そのまま実行しません。
実行直前にprincipal、authorization、resource version、business invariant、duplicate/idempotency key、confirmation requirementを再検証します。LLMが生成した「authorized=true」「confirmed=true」のようなfieldを権限証明に使いません。
SCHEMA EVOLUTION
schema変更はversioned contractとして扱います。field名を維持したまま意味・単位・nullable semanticsを変えないようにし、producer/consumerの互換fixtureを持ちます。
provider側structured-output subsetやAPI surface変更時も同じschemaで再試験します。
OPERATING CHECK
各provider/model/versionで、malformed JSON、missing/extra field、wrong type/enum、unsupported keyword、deep nesting、refusal、truncation、schema-valid semantic error、stale ID、wrong unit/timezone/currency、unauthorized tool call、duplicate execution、schema-version mismatchを試験します。
parse validity、schema validity、semantic accuracy、executable accuracy、unsafe acceptance、refusal/errorを別metricとして記録します。
実装・運用
本項は2026-10-05時点のJSON Schema Draft 2020-12、OpenAI/Gemini公式structured-output documentation、および2026年の独立structured-output evaluationsに基づくdesk researchです。production schemaやlive provider callは未検査です。
よくある失敗・反証
refusal、safety stop、max-token truncation、timeout、tool/runtime errorをschema-valid success objectへ変換しません。
retry対象はfailure classで限定し、schemaを通すためにbusiness meaningを変更しません。retry後も同一idempotency/precondition boundaryを維持します。
unsupported keyword/dialect、schema complexity rejection、refusal、truncation、timeout、schema-valid semantic error、stale ID/version、unit/timezone/currency error、fabricated required value、numeric precision mismatch、format semantics mismatch、regex portability、provider subset drift、unauthorized tool call、duplicate execution、precondition failure、schema evolution mismatch、validator bypass、validation-log leakageを想定します。
schema-validをsemantic-validやexecution-safeへ昇格させず、five-gate modelとprovider subsetを監査可能な形で固定します。organization固有schemaが必要な場合はexact contractに対するfixtureを追加します。
実務での使い方
本項は2026-10-05時点のJSON Schema Draft 2020-12、OpenAI/Gemini公式structured-output documentation、および2026年の独立structured-output evaluationsに基づくdesk researchです。production schemaやlive provider callは未検査です。
まだ確認できていないこと
- EA-240-UNKNOWN-01
対象provider/model/API revision、organization schema、Anthropic current subset、streaming/refusal contract、validator implementation/version、schema registry、business invariants、authorization、idempotency、numeric precision、logging/retentionは未確認です。
根拠資料
- 研究資料研究資料
E1 — JSON Schema, “Specification / Draft 2020-12”, JSON Schema project, published 2022-06-16, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E2 — JSON Schema Validation: A Vocabulary for Structural Validation of JSON, Draft 2020-12, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E3 — OpenAI API Reference, “Create a model response”, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E4 — OpenAI Developers, “Prompt generation — Schemas”, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E5 — OpenAI, “Introducing Structured Outputs in the API”, 2024-08-06, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E6 — Google AI for Developers, “Structured outputs — Gemini API”, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E7 — Google AI for Developers, “Generating content — Gemini API”, accessed 2026-10-05.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E8 — Ray, “The Constraint Tax: Measuring Validity-Correctness Tradeoffs in Structured Outputs for Small Language Models”, arXiv:2605.26128, 2026-05-20.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E9 — Chavan, “Constrained Decoding Eliminates Structural Failures in Small LLMs but Reveals a Scale-Dependent Semantic Gap”, arXiv:2609.23742, 2026-09-20.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 研究資料研究資料
E10 — Li, “When JSON Is Not Enough: Semantic Reliability of Schema-Constrained LLM Ordering Agents”, arXiv:2607.18261, 2026-05-16.
確認上の限界
元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
更新履歴
EA-240-FIRST-20261005: canonical audit/publication binding
出典ID・検証情報・機械可読データ
根拠の種類と情報の鮮度は、ラベルとアイコンで確認できます。
- 記事ID
- EA-240
- 最終確認日
- 2026-10-05
- 提供元・モデル・プラン・利用環境
- —
- 対象地域
- —
元資料の全文と収録照合記録
PUBLIC_CLAIM
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。
FIVE_GATES
side effectへ到達する前に、少なくとも次を分離します。
- syntax/parse: JSONとして読めるか。
- provider schema conformance: providerのstructured-output modeが対応subsetに従っているか。
- independent schema validation: application側validatorで期待dialect/schemaに適合するか。
- semantic validation: ID、単位、時刻、金額、相互関係、business invariantが正しいか。
- execution gate: identity/authorization、最新version、precondition、idempotency、必要なhuman confirmationを満たすか。
前段PASSを後段PASSの代用にしません。
SCHEMA_DIALECT_AND_PROVIDER_SUBSET
「JSON Schema対応」という表記だけでDraft 2020-12全機能が同一に使えるとは仮定しません。
OpenAI strict structured outputはJSON Schemaのsubsetを使用します。公式documentation自身が、標準meta-schemaにはstrict mode未対応featureがあることを示しています。
Gemini structured outputsもJSON Schemaのsubsetであり、大規模・深いschemaは拒否され得ます。provider/model/API surfaceごとにsupported keywordとcomplexity limitをfixtureで確認します。
schemaにはdialect/version、provider/model/API revision、schema hashを付け、consumer側validator versionも監査証跡へ残します。
FORMAT_IS_NOT_BUSINESS_SEMANTICS
JSON Schema Draft 2020-12ではformatのassertion behaviorはvocabulary/implementationに依存します。email/date-time等がschema validatorを通っても、メールボックス実在、業務時間、timezone policy、組織上の許可までは証明しません。
domain validationをschema validationから分離します。
SCHEMA_VALID_BUT_WRONG
constrained decodingでschema validityが高くても、値そのものが誤っている場合があります。
例: - 存在する型のcustomer_idだが別顧客 - enum内のactionだが意図と違う - integerの金額だが通貨・桁が違う - ISO date-timeだがtimezone/business cutoffが違う - required fieldを満たすため未知値を生成 - tool argumentsはvalidだが対象versionが古い
運用metricはschema-valid率だけでなくsemantic accuracy、executable accuracy、unsafe-accept rateを分離します。
REFUSAL_AND_FAILURE_STATES
refusal、safety stop、max-token truncation、timeout、tool/runtime errorをschema-valid success objectへ変換しません。
retry対象はfailure classで限定し、schemaを通すためにbusiness meaningを変更しません。retry後も同一idempotency/precondition boundaryを維持します。
SIDE_EFFECTING_TOOLS
tool argumentがschema-validでも、そのまま実行しません。
実行直前にprincipal、authorization、resource version、business invariant、duplicate/idempotency key、confirmation requirementを再検証します。LLMが生成した「authorized=true」「confirmed=true」のようなfieldを権限証明に使いません。
SCHEMA_EVOLUTION
schema変更はversioned contractとして扱います。field名を維持したまま意味・単位・nullable semanticsを変えないようにし、producer/consumerの互換fixtureを持ちます。
provider側structured-output subsetやAPI surface変更時も同じschemaで再試験します。
OPERATING_CHECK
各provider/model/versionで、malformed JSON、missing/extra field、wrong type/enum、unsupported keyword、deep nesting、refusal、truncation、schema-valid semantic error、stale ID、wrong unit/timezone/currency、unauthorized tool call、duplicate execution、schema-version mismatchを試験します。
parse validity、schema validity、semantic accuracy、executable accuracy、unsafe acceptance、refusal/errorを別metricとして記録します。
FAILURE_ENVELOPE
unsupported keyword/dialect、schema complexity rejection、refusal、truncation、timeout、schema-valid semantic error、stale ID/version、unit/timezone/currency error、fabricated required value、numeric precision mismatch、format semantics mismatch、regex portability、provider subset drift、unauthorized tool call、duplicate execution、precondition failure、schema evolution mismatch、validator bypass、validation-log leakageを想定します。
IMPLEMENTATION_STATE
本項は2026-10-05時点のJSON Schema Draft 2020-12、OpenAI/Gemini公式structured-output documentation、および2026年の独立structured-output evaluationsに基づくdesk researchです。production schemaやlive provider callは未検査です。
SAFE_WORDING
Structured Output/JSON Schemaは構造適合を強化しますが、正しい答え、安全なtransaction、認可済み操作を保証しません。providerごとのschema subset/dialect/versionを固定し、application側でsemantic validation、authorization、precondition、idempotencyを別gateとして実施してください。
OPEN_UNKNOWN
対象provider/model/API revision、organization schema、Anthropic current subset、streaming/refusal contract、validator implementation/version、schema registry、business invariants、authorization、idempotency、numeric precision、logging/retentionは未確認です。
STOP_CONDITION
schema-validをsemantic-validやexecution-safeへ昇格させず、five-gate modelとprovider subsetを監査可能な形で固定します。organization固有schemaが必要な場合はexact contractに対するfixtureを追加します。
EA-240-CURRENT-APPROVAL研究資料研究資料根拠の出所: AUDITED_CANONICAL_RESEARCH_PACKET現行本文の監査・revision対応
- 裏付ける内容
- 現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。
- 確認日
- —
- 出典・実験ID
- CANDIDATE-EA240-FIRST-20261005-C1
- 検証箇所
- 1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ · EA_REVISION_LEDGER!A43:U43 · EA-240-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_CANONICAL_APPROVAL_READBACK
- 限界
- 監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。
EA-240-CURRENT-BODY-READBACK実装資料実装資料根拠の出所: IMPLEMENTATION_READBACK現行本文の収録照合
- 裏付ける内容
- 公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。
- 確認日
- 2026-10-12
- 出典・実験ID
- BODY-SHA256:1148f544c3f41ccc5c760337976e97962af6a567cfc47d5a1faad400c4f2f772
- 検証箇所
- content/staging/EA-240.md · 1148f544c3f41ccc5c760337976e97962af6a567cfc47d5a1faad400c4f2f772 · EA-240-FIRST-20261005
- 適用範囲
- —
- 出典・来歴
- CURRENT_APPROVED_BODY_HASH_MATCH
- 限界
- 本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。
EVD-EA-240-URL-B1ED6CF92876研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-B1ED6CF92876
- 検証箇所
- EVIDENCE_TABLE · E1 · Canonical URL: https://json-schema.org/specification
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-2551F1B1287D研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-2551F1B1287D
- 検証箇所
- EVIDENCE_TABLE · E2 · Canonical URL: https://json-schema.org/draft/2020-12/json-schema-validation
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-F82212725495研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE3 — OpenAI API Reference, “Create a model response”, accessed 2026-10-05.
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-F82212725495
- 検証箇所
- EVIDENCE_TABLE · E3 · Canonical URL: https://developers.openai.com/api/reference/resources/responses/methods/create
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-735D86ECC127研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE4 — OpenAI Developers, “Prompt generation — Schemas”, accessed 2026-10-05.
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-735D86ECC127
- 検証箇所
- EVIDENCE_TABLE · E4 · Canonical URL: https://developers.openai.com/api/docs/guides/prompt-generation
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-265A674D3F00研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE5 — OpenAI, “Introducing Structured Outputs in the API”, 2024-08-06, accessed 2026-10-05.
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-265A674D3F00
- 検証箇所
- EVIDENCE_TABLE · E5 · Canonical URL: https://openai.com/index/introducing-structured-outputs-in-the-api/
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-2E35BD33C49F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE6 — Google AI for Developers, “Structured outputs — Gemini API”, accessed 2026-10-05.
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-2E35BD33C49F
- 検証箇所
- EVIDENCE_TABLE · E6 · Canonical URL: https://ai.google.dev/gemini-api/docs/structured-output
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-BDC7E2AF9D9F研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCEE7 — Google AI for Developers, “Generating content — Gemini API”, accessed 2026-10-05.
- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-BDC7E2AF9D9F
- 検証箇所
- EVIDENCE_TABLE · E7 · Canonical URL: https://ai.google.dev/api/generate-content
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-B01515BB8172研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-B01515BB8172
- 検証箇所
- EVIDENCE_TABLE · E8 · Canonical URL: https://arxiv.org/abs/2605.26128
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-64D451728A26研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-64D451728A26
- 検証箇所
- EVIDENCE_TABLE · E9 · Canonical URL: https://arxiv.org/abs/2609.23742
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
EVD-EA-240-URL-C0671C3A4240研究資料研究資料根拠の出所: SOURCE_PACKET_REFERENCE- 裏付ける内容
- —
- 確認日
- —
- 出典・実験ID
- SRC-EA-240-URL-C0671C3A4240
- 検証箇所
- EVIDENCE_TABLE · E10 · Canonical URL: https://arxiv.org/abs/2607.18261
- 適用範囲
- EVIDENCE_TABLE
- 出典・来歴
- SOURCE_PACKET_REFERENCE_PROJECTED
- 限界
- 元の監査済み資料に記載された参照先です。URLの復元は、資料の最新性や全主張の支持を新たに検証したことを意味しません。
- 出典ID
- CANDIDATE-EA240-FIRST-20261005-C1, BODY-SHA256:1148f544c3f41ccc5c760337976e97962af6a567cfc47d5a1faad400c4f2f772, SRC-EA-240-URL-B1ED6CF92876, SRC-EA-240-URL-2551F1B1287D, SRC-EA-240-URL-F82212725495, SRC-EA-240-URL-735D86ECC127, SRC-EA-240-URL-265A674D3F00, SRC-EA-240-URL-2E35BD33C49F, SRC-EA-240-URL-BDC7E2AF9D9F, SRC-EA-240-URL-B01515BB8172, SRC-EA-240-URL-64D451728A26, SRC-EA-240-URL-C0671C3A4240
- 追跡中のUNKNOWN ID
- EA-240-UNKNOWN-01
- 再確認のきっかけ
- canonical revision/publication state change · body artifact hash change · source currentness change · new contradiction or implementation readback
機械検査: 通過 — Automated validation does not guarantee accuracy or authorize execution.
同じ記事IDの機械可読データです。