# Structured Output／Schema Validation

CURRENT_STATUS: CURRENT
OBSERVATION: SPEC_ONLY
FRESHNESS: CURRENT
PAGE_TYPE: reference
CANONICAL_URL: /tools/ea-240-structured-output-schema-validation
CLAIM_IDS: none
EVIDENCE_IDS: EA-240-CURRENT-APPROVAL, EA-240-CURRENT-BODY-READBACK, EVD-EA-240-URL-B1ED6CF92876, EVD-EA-240-URL-2551F1B1287D, EVD-EA-240-URL-F82212725495, EVD-EA-240-URL-735D86ECC127, EVD-EA-240-URL-265A674D3F00, EVD-EA-240-URL-2E35BD33C49F, EVD-EA-240-URL-BDC7E2AF9D9F, EVD-EA-240-URL-B01515BB8172, EVD-EA-240-URL-64D451728A26, EVD-EA-240-URL-C0671C3A4240
UNKNOWN_IDS: EA-240-UNKNOWN-01
OPS_IDS: none

## Summary
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。

## Current judgment
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。

## Scope
Structured Output／Schema Validation

## Confirmed

## UNKNOWN
- 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は未確認です。

## Evidence
- EA-240-CURRENT-APPROVAL (RESEARCH): 現行本文の監査・revision対応
- EA-240-CURRENT-BODY-READBACK (IMPL): 現行本文の収録照合
- EVD-EA-240-URL-B1ED6CF92876 (RESEARCH): E1 — JSON Schema, “Specification / Draft 2020-12”, JSON Schema project, published 2022-06-16, accessed 2026-10-05. — https://json-schema.org/specification
- EVD-EA-240-URL-2551F1B1287D (RESEARCH): E2 — JSON Schema Validation: A Vocabulary for Structural Validation of JSON, Draft 2020-12, accessed 2026-10-05. — https://json-schema.org/draft/2020-12/json-schema-validation
- EVD-EA-240-URL-F82212725495 (RESEARCH): E3 — OpenAI API Reference, “Create a model response”, accessed 2026-10-05. — https://developers.openai.com/api/reference/resources/responses/methods/create
- EVD-EA-240-URL-735D86ECC127 (RESEARCH): E4 — OpenAI Developers, “Prompt generation — Schemas”, accessed 2026-10-05. — https://developers.openai.com/api/docs/guides/prompt-generation
- EVD-EA-240-URL-265A674D3F00 (RESEARCH): E5 — OpenAI, “Introducing Structured Outputs in the API”, 2024-08-06, accessed 2026-10-05. — https://openai.com/index/introducing-structured-outputs-in-the-api/
- EVD-EA-240-URL-2E35BD33C49F (RESEARCH): E6 — Google AI for Developers, “Structured outputs — Gemini API”, accessed 2026-10-05. — https://ai.google.dev/gemini-api/docs/structured-output
- EVD-EA-240-URL-BDC7E2AF9D9F (RESEARCH): E7 — Google AI for Developers, “Generating content — Gemini API”, accessed 2026-10-05. — https://ai.google.dev/api/generate-content
- EVD-EA-240-URL-B01515BB8172 (RESEARCH): E8 — Ray, “The Constraint Tax: Measuring Validity-Correctness Tradeoffs in Structured Outputs for Small Language Models”, arXiv:2605.26128, 2026-05-20. — https://arxiv.org/abs/2605.26128
- EVD-EA-240-URL-64D451728A26 (RESEARCH): E9 — Chavan, “Constrained Decoding Eliminates Structural Failures in Small LLMs but Reveals a Scale-Dependent Semantic Gap”, arXiv:2609.23742, 2026-09-20. — https://arxiv.org/abs/2609.23742
- EVD-EA-240-URL-C0671C3A4240 (RESEARCH): E10 — Li, “When JSON Is Not Enough: Semantic Reliability of Schema-Constrained LLM Ordering Agents”, arXiv:2607.18261, 2026-05-16. — https://arxiv.org/abs/2607.18261

## Failure / limits
refusal、safety stop、max-token truncation、timeout、tool/runtime errorをschema-valid success objectへ変換しません。

retry対象はfailure classで限定し、schemaを通すためにbusiness meaningを変更しません。retry後も同一idempotency/precondition boundaryを維持します。
## Failure / limits
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を想定します。
## Failure / limits
schema-validをsemantic-validやexecution-safeへ昇格させず、five-gate modelとprovider subsetを監査可能な形で固定します。organization固有schemaが必要な場合はexact contractに対するfixtureを追加します。
## Practice
本項は2026-10-05時点のJSON Schema Draft 2020-12、OpenAI/Gemini公式structured-output documentation、および2026年の独立structured-output evaluationsに基づくdesk researchです。production schemaやlive provider callは未検査です。
## PUBLIC_CLAIM
Structured OutputやJSON Schemaは、LLM出力を機械処理しやすい構造へ制約し、parse/schema failureを減らすための境界です。schema適合を、内容の真偽、業務妥当性、認可、最新状態、副作用の安全性と同一視しません。

## FIVE_GATES
side effectへ到達する前に、少なくとも次を分離します。

1. syntax/parse: JSONとして読めるか。
2. provider schema conformance: providerのstructured-output modeが対応subsetに従っているか。
3. independent schema validation: application側validatorで期待dialect/schemaに適合するか。
4. semantic validation: ID、単位、時刻、金額、相互関係、business invariantが正しいか。
5. 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を追加します。

NEXT: /agent/start.json
STOP: This is a knowledge projection, not an execution order.