ANTIGRAVITY LABEN
記事一覧/連携・プラグイン
連携・プラグイン/2026-06-27中級

エージェントの構造化出力を、スキーマ検証と限定リペアで後段に渡す

Antigravity のエージェントが返す JSON を、そのまま後続の自動処理へ渡して事故が起きる前に、JSON Schema 検証と回数制限つきリペアループで安全な境界を作る設計を、実装コードとともにまとめました。

Antigravity279integrations18JSON-Schemavalidation2agent-design9

プレミアム記事

エージェントに「次の記事の候補を JSON で返して」と頼んだら、ほとんどの場合はきれいな JSON が返ってきます。ほとんどの場合は、です。週に一度くらい、説明文の前置きが混ざったり、末尾がカンマで終わったり、level"beginner-intermediate" という存在しない値が入ったりします。

問題は、その壊れた一件が後続の自動処理に流れ込むことです。私は個人開発で複数のサイトを一人で運用していて、エージェントの出力を受けて MDX を組み立てる処理が動いています。JSON のパースが失敗すれば、その回の生成はまるごと無駄になります。賢いモデルでも、出力の境界に検証を置かない限り、この事故はゼロになりません。

エージェント出力は「信頼できない入力」である

最初に持つべき心構えは、エージェントの出力を外部からの入力と同じ扱いにすることです。

Web フォームから来た値を検証なしで DB に入れる人はいません。それなのに、生成 AI の出力はなぜか無検証で後段に渡してしまいがちです。出力が言語的に流暢だと、つい構造も正しいと錯覚するからです。流暢さと正しさは別物です。境界に検証レイヤを一枚置くだけで、後段のコードは「正しい形だけが来る」前提で書けるようになります。

JSON Schema で「形」を契約にする

まず、後段が期待する形をスキーマとして明文化します。プロンプトのなかの曖昧な日本語ではなく、機械が判定できる契約にします。

ARTICLE_PLAN_SCHEMA = {
    "type": "object",
    "required": ["title", "slug", "category", "level", "tags"],
    "additionalProperties": False,
    "properties": {
        "title": {"type": "string", "minLength": 8, "maxLength": 60},
        "slug": {"type": "string", "pattern": "^[a-z0-9-]+$"},
        "category": {"enum": ["agents", "integrations", "tips", "editor"]},
        "level": {"enum": ["beginner", "intermediate", "advanced"]},
        "tags": {
            "type": "array",
            "items": {"type": "string"},
            "minItems": 2,
            "maxItems": 6,
        },
    },
}

enumlevel を3値に固定し、pattern で slug にピリオドや大文字が混ざらないようにしています。additionalProperties: False も重要で、モデルが気を利かせて余計なキーを足してきたら弾きます。スキーマは、プロンプトに書いた「お願い」を、破れない「約束」へ格上げする道具です。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
エージェント出力を信頼境界として扱い、検証なしで後段へ渡さないための具体的なレイヤ設計
JSON Schema で型と必須項目を固め、壊れた出力を回数制限(最大2回)つきで自己修復させるリペアループの実装
無限リペアやコスト暴走を防ぐ、失敗時のフォールバックとログ設計の実例
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

連携・プラグイン2026-04-25
Antigravity × Obsidian — コードと知識を同じ場所で育てるワークフロー
Antigravity で書いたコードを、Obsidian の知識ベースと結びつける実践ワークフロー。AIが生成したアーキテクチャ決定を記録し、次のセッションでその知識を再活用する仕組みを紹介します。
連携・プラグイン2026-06-27
無人のエージェントを止めずに鍵を入れ替える — 重複期間つきローテーション設計
API キーやトークンは、漏れる前に定期的に入れ替えたいものです。ところが無人で動くエージェントは、入れ替えの瞬間に認証が切れて静かに止まります。個人開発で複数サイトを自動運用してきた立場から、止めずに鍵を回す重複期間つきの設計をまとめます。
連携・プラグイン2026-06-25
翻訳済みの一行が、いつの間にか英語へ戻っていた — エージェントが触った文字列リソースを差分で守る
エージェントに values フォルダの整理を任せると、訳済みの値が静かに原文へ戻ることがあります。既定言語を正、各ロケールを差分として鍵単位で突き合わせ、欠落・戻し訳・書式引数の崩れだけを pre-commit で止める設計と実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →