評価・監視・ガードレール

スキーマ検証とは|囲みを外すだけで、読めた件数が387件から487件に

スキーマ検証とは何をするのか生成AIの出力はどう崩れるのか検査で落とせないものは何か

生成AIに決まった形で返させても、前置きや囲みが付いてくることがあります。そのままでは読み込めません。

崩れ方を混ぜた500件を処理しました。囲みと前置きを外すだけで、読めた件数が387件から487件になります。それでも52件は残ります。

この記事の要点

  • そのままだと387/500しか読み込めない
  • 囲みと前置きを外すと487/500
  • 形が合ったのは435/500
  • 余計な項目は検査で落ちない

囲みを外すだけで、読めた件数が387件から487件に

崩れ方を混ぜた500件を処理しました。手前の処理を1つ足すだけで、救える件数が大きく変わります。

スキーマ検証の前に何が起きるのかを、実際に走らせて測りました。用意したのは生成AIが返しがちな崩れ方を混ぜた500件です。

崩れ方は7種類です。囲みが付く52件、前置きが付く48件のほか、型が違う31件、項目が足りない21件、途中で切れた13件を混ぜました。

javascript
const strip = (t) => {
  let s = t.trim();
  const fence = s.match(/```(?:json)?\s*([\s\S]*?)```/);
  if (fence) s = fence[1].trim();
  const first = s.indexOf('{');
  const last = s.lastIndexOf('}');
  if (first >= 0 && last > first) s = s.slice(first, last + 1);
  return s;
};
text
受け取り方              そのまま読める  形が合っている
そのまま読む                       387 / 500       335 / 500
囲みと前置きを外す                    487 / 500       435 / 500

外したあとに、まだ形が合わないもの
  型が違う                   31件
  項目が足りない                21件
  閉じていない                 13件

上の表を見てください。そのまま読み込むと387件だったものが、囲みと前置きを外すと487件になりました。

100件は手前で救える

差の100件は、囲みと前置きが付いていたものです。中身は正しいのに、そのままでは読み込めませんでした。

この100件を失敗として数えていると、指示の書き方を直そうとして時間を使うことになります。手前の処理で片付く部分です。

残る65件

外しても救えないものが65件あります。型が違う31件、項目が足りない21件、途中で切れた13件です。

この3つは中身そのものの問題です。指示の書き方や、出力の形を強制する仕組みで減らすことになります。

手前で救えるものと、救えないものを分ける。

そのまま読む形が合った335駄目だった165500件囲みと前置きを外す43565500件−0%(0件)出力500件での実測。読み込めた件数は387件と487件で、うち形が合ったのが335件と435件。
図1 ── 受け取り方ごとの件数
出典JSON Schema「What is JSON Schema?」2026-08-18 確認
The JSON validator checks if the JSON documents conform to the schema.
原文JSON Schema「What is JSON Schema?」 この内容の有効期限2027-02-18

スキーマ検証とは何をするのか

受け取ったデータが、決めた形になっているかを機械で確かめます。人が目で見る代わりの仕組みです。

スキーマ検証は、受け取ったデータが決めた形になっているかを機械で確かめる仕組みです。

決めるもの

形を書き表す言い方はいくつかありますが、広く使われているものの説明では既存のデータの構造・制約・型を記述できるとされています。

  1. どの項目があるか。必ずある項目と、あってもなくてもよい項目
  2. それぞれの型。文字列か、数値か、真偽か
  3. 取りうる値。一覧のどれか、範囲のなか
  4. 入れ子の構造。配列の中身、その中の項目

書き表しておけば、あとは機械が突き合わせます。同じ説明でも検証器が、その文書が定義に沿っているかを調べると述べられています。

生成AIで特に要る理由

生成AIの出力は毎回同じ形になるとは限りません。同じ指示でも、囲みが付いたり付かなかったりします。

前の節の計測でも、崩れ方は7種類ありました。どれが来ても同じ判定ができるようにしておく必要があります。

検査の前に置くもの

検査の手前に、囲みと前置きを外す処理を置いてください。前の節ではこれだけで100件が救えました

外す処理は検査ではありません。読み込める形にそろえるだけです。ここを分けておくと、どちらの問題かがはっきりします。

余談 この計測での注意

崩れ方の割合はこちらで置いた値です。実際の割合は、使うモデルと指示の書き方で変わります。まず実際に返ってきた出力を50件そのまま保存して、崩れ方を数えてください。手前で救える種類と、そうでない種類が分かれます。

出典JSON Schema「What is JSON Schema?」2026-08-18 確認
JSON Schema allows developers to describe the structure, constraints, and data types of existing JSON data.
原文JSON Schema「What is JSON Schema?」 この内容の有効期限2027-02-18

スキーマ検証で落とせないもの

形が正しいことと、中身が正しいことは別です。検査を通っても、業務として成り立たない値は入ってきます。

スキーマ検証を通ったからといって、中身が正しいとは限りません。落とせないものがはっきりしています。

余計な項目

前の節の計測では、余計な項目が付いた23件が検査に落ちませんでした。必要な項目がそろっているためです。

落としたいなら、決めた項目以外を認めないと明示する必要があります。既定では通ります。

型は正しいが値がおかしい

金額が負でも、型としては数値なので通ります。日数が0でも同じです。

この種類を落とすには、業務の決まりを別に書く必要があります。詳しくは出力バリデーションの記事で扱っています。

値が事実かどうか

いちばん落とせないのは書いてある内容が正しいかどうかです。申請番号の形が合っていても、存在しない番号かもしれません。

スキーマ検証はデータの構造と制約を定義するための宣言的な言語です。構造の話であって、事実の話ではありません。

形の検査で落ちるものと、落ちないものを知っておく。

充足 2 / 4囲みと前置きを外す処理が手前にある実測ではこれだけで100件が救えた。検査より前の問題決めた項目以外を認めない設定にした既定では余計な項目は通る。実測では23件が素通りした検査を通れば中身も正しいと考えている金額が負でも型としては数値なので通る崩れ方を数えずに指示だけ直している手前で救える種類に時間を使うことになる出力500件での実測にもとづく。囲みと前置きを外すと387件が487件になった。
図2 ── スキーマ検証の点検項目
出典JSON Schema「What is JSON Schema?」2026-08-18 確認
JSON Schema is a declarative language for defining structure and constraints for JSON data.
原文JSON Schema「What is JSON Schema?」 この内容の有効期限2027-02-18

よくある質問

囲みを外すのは邪道ではないですか
実務では必要になります。この計測でも囲みと前置きで100件が読めませんでした。
外しても救えないものは何ですか
型が違う31件、項目が足りない21件、途中で切れた13件です。合わせて65件が残りました。
余計な項目は問題になりませんか
形の検査では落ちません。必要な項目がそろっているためです。落とすなら別に決める必要があります。
検査を通れば安心ですか
形が正しいだけです。金額が負でも型としては数値なので通ります。

まとめ

  • 決めた形になっているかを機械で確かめる仕組み
  • 囲みと前置きを外すと387件から487件
  • 型違い・項目不足・途中切れは外しても残る
  • 形が正しいことと中身が正しいことは別

今日から始められること

  1. 実際に返ってきた出力を50件そのまま保存する
  2. 読み込めなかったものを、崩れ方で分類する
  3. 囲みと前置きを外す処理を先に入れる
  4. 残った崩れ方だけを、指示の書き方で減らす

実務で組んだスキーマ検証のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る