>_toolkitbox

~/tools / Structured Output Schema Checker

Structured Output Schema Checker — JSON Schema を OpenAI・Anthropic・Gemini の制限と照らして確認

JSON Schema を、OpenAI・Anthropic・Gemini の構造化出力で文書化されている制限と照らし合わせます。API に送る前に、受理されないキーワード、無視されるキーワード、記載のないキーワードがわかります。入力した内容はブラウザの外に出ません。

各ベンダーのドキュメントと 2026-10-23 に照合したルールです。

確認していないもの: ネストの深さ、長い enum の上限、ベンダーが文書化していないこと。ベンダーはこれらのルールを変更するため、最新のドキュメントで確かめてください。

処理はすべてブラウザの中で行われます。schema はアップロードされません。

AI の API には、モデルの返答を JSON Schema に従わせる機能がありますが、各ベンダーが受け付けるのは JSON Schema の一部だけで、その範囲もベンダーごとに違います。あるベンダーで通る schema が別のベンダーでは拒否されたり、受理されても一部のルールが黙って捨てられたりします。このツールは入力した schema を読み取り、各ベンダーのドキュメントに書かれた内容と照らし合わせます。対象は、additionalProperties を false にするといった必須のルール、サポートされていないキーワード、受け付けられても強制されないキーワード、公開されているサイズの上限です。結果は 3 種類に分けて表示するので、ドキュメントに明記された誤りと、ドキュメントの一覧に単に載っていないキーワードを見分けられます。ルールはベンダーのドキュメントと照合しており、その日付はツールの下に表示しています。

こんな時に使う

  • 構造化出力のリクエストとして送る前に schema を確認し、400 エラーで初めて気づく事態を避ける
  • schema から外して自前の検証コードに移すべきキーワードを見つける
  • 同じ schema に対して OpenAI・Anthropic・Gemini がそれぞれ何を受け付けるかを比べる

使い方

  1. 送る予定の JSON Schema を貼り付けるか、サンプルを読み込みます。
  2. ベンダーごとの結果を読みます。「受理されない」は、ドキュメント上その schema が失敗する、または変更が必要という意味です。「無視される」は、キーワードは受け付けられるものの強制されないという意味です。「記載なし」は、そのキーワードがベンダーの対応キーワード一覧に載っていないという意味です。
  3. 「受理されない」と表示された箇所を直し、残りは実際にリクエストを送って確かめます。

FAQ

問題が出なければ、API は schema を受け付けてくれますか?

いいえ。このツールが確認するのは、ベンダーが文書化しているルールだけです。API は呼び出しませんし、ドキュメントがすべてを網羅しているわけでもないため、それでも拒否されることはあります。問題なしの結果は「既知の問題はない」という意味に受け取り、実際のリクエストで試してください。

「受理されない」「無視される」「記載なし」はそれぞれ何を意味しますか?

受理されない: ドキュメントに、そのキーワードは未対応である、または守るべきルールがあると書かれている状態です(例: additionalProperties は false にする必要がある)。無視される: ドキュメントに、そのキーワードは受け付けられるが強制はされないと書かれており、モデルがルールを破ることがある状態です。記載なし: そのキーワードがベンダーの対応キーワード一覧になく、拒否されるのか無視されるのかがドキュメントからはわからない状態です。

OpenAI がすべてのプロパティを required にするよう求めるのはなぜですか?

strict モードの OpenAI では、すべてのプロパティを required に並べ、additionalProperties を false にする必要があります。項目を省略可能にするには、ドキュメントに従って null との union を使います。たとえば type を ["string", "null"] にします。

schema で minimum や maxLength などを使っています。どうすればよいですか?

Anthropic は数値の制約と文字列の長さの制限に対応しておらず、Gemini は長さの制限を強制しません。schema からこれらを外し、制限の内容は description フィールドに書いたうえで、返答が届いてから自分で値を確認してください。その確認には JSON Schema Validator ツールが使えます。

このツールは再帰を検査しますか?

はい。再帰的な schema を未対応と書いている Anthropic については検査します。OpenAI と Gemini は再帰的な schema を文書化しているので、指摘しません。

検査されないものは何ですか?

ネストの深さ、長い enum の上限、そしてベンダーが文書化していないことです。また、確認日より後に追加された新しいモデルや機能も把握していません。重要な場合は、最新のドキュメントで確かめてください。

schema はサーバーに送られますか?

いいえ。チェックはすべてブラウザの中で行われます。

Related