Structured Outputs・コード・型安全

40語

AIの出力をプログラムで安全に扱うための、構造化出力・型・コードの安全性に関わる用語です。JSON Schemaや型検証、業務ルールの検証、エスケープとパラメータ化クエリ、秘密情報の扱い、破壊的操作とドライランなどを扱います。

この分野を読むポイント

形式が正しいことと、内容が正しいことは別です。スキーマで形を保証したうえで、値の妥当性は業務ルールで検証し、実行前にはドライランや確認を挟む二段構えが安全です。

この分野に関連する記事

用語一覧

Structured Outputs
モデル出力をJSON Schema等の指定構造へ強く適合させる機能・方式。
JSON Schema
JSONデータの型・必須項目・値の制約などを定義するスキーマ仕様。
JSON
キーと値で構造化データを表現する軽量データ形式。LLMの出力をJSONとして使う場合は、パースエラー時の処理と型・値の検証を実装する。
XML
タグを使って階層構造を表現するデータ形式。
YAML
人間が読みやすい記述を重視した構造化データ形式。インデントの誤りや、パーサーによってはyes/no等が真偽値として解釈される自動型変換で、意図しない解釈が起きやすい。
Pydantic
Pythonでデータ型・入力値を検証するためによく使われるライブラリ。
Zod
TypeScript/JavaScriptでスキーマ定義・型検証に使われるライブラリ。
型安全
想定したデータ型以外を扱わないようにし、実行時エラーや誤入力を減らす性質。
型検証
値が期待する文字列・数値・配列等の型になっているか確認すること。
業務バリデーション
形式だけでなく、業務ルール上その値が妥当か確認すること。形式が正しいJSONでも、金額の上限や日付の前後関係が業務上誤っている場合がある。
構造化データ
項目・型・階層など一定の形式で整理されたデータ。
enum
取り得る値をあらかじめ限定した列挙型・選択肢。自由記述させず選択肢をenumで限定すると、集計や後続処理が安定する。
入力検証
外部入力が形式・範囲・安全条件を満たすか確認すること。AIが生成した値も外部入力と同様に検証の対象とする。
エスケープ
特殊文字を安全な形へ変換し、コードやクエリとして誤解釈されるのを防ぐ処理。
パラメータ化クエリ
SQL文と値を分離して渡し、SQLインジェクションを防ぐ実装方式。AIがSQLを組み立てる処理でも、値の埋め込みは文字列連結ではなくパラメータ化で行う。
SQL
データベースの検索・更新などを行うための問い合わせ言語。
SQLインジェクション
入力値を悪用して意図しないSQLを実行させる攻撃。AIが生成したSQLや、AIの出力をそのままSQLへ埋め込む処理も攻撃経路になる。
APIキー
API利用者を識別・認証する秘密の文字列。プロンプト・コード・ログ・リポジトリに直書きせず、環境変数やSecret管理で扱い、漏えい時は直ちに無効化する。
秘密情報
パスワード・鍵・認証情報など、外部へ漏らしてはいけない情報。AIへの入力やAIが生成したコード・ログに含まれないよう、Secret Scanning等で検出する。
最小権限
必要な作業に必要な最小限の権限だけを付与する原則。AI AgentやAPIキーにも適用し、読み取りで足りる作業に書き込み権限を与えない。
null安全
値が存在しないケースを想定し、エラーや不正処理を防ぐ設計。
非推奨API
将来廃止される可能性があり、新規利用が推奨されないAPI。AIは学習時点の古いAPIの書き方を提案することがあるため、公式ドキュメントの現行版で確認する。
Docker
アプリと依存環境をコンテナとしてまとめて実行する技術。コンテナは完全な隔離ではないため、信頼できないコードの実行には追加の隔離策を検討する。
環境変数
設定値や秘密情報をコード本体と分離して渡す仕組み。AI Agentがログやエラー出力に環境変数を表示して秘密情報を漏らすことがあるため、出力のマスキングを行う。
race condition
並行処理の実行順によって結果が不定になる競合状態。
デッドロック
複数処理が互いの資源待ちになり、進行不能になる状態。
破壊的操作
削除・上書き・強制更新など、復元困難な変更を行う操作。AI Agentに実行させる場合は、ドライラン・バックアップ・人間承認を前提とする。
ドライラン
実際には変更せず、実行予定の処理や影響だけを確認する試行。実行計画を人間が確認してから本実行へ進む運用と組み合わせる。
バックアップ
削除・破損に備えてデータや状態を別に保存すること。取得するだけでなく、実際に復元できるかを定期的に確認する。
DELETE
SQL等でデータを削除する命令。誤実行時の影響が大きい破壊的操作。
DROP
データベースの表など構造自体を削除する命令。復元にはバックアップが必要になるため、AI Agentの権限からは原則として除外する。
rm -rf
Unix系OSでファイル・ディレクトリを再帰的かつ強制的に削除するコマンド。
O(n²)
入力件数nの二乗に比例して処理量が増える計算量。大規模データでは性能問題になりやすい。
import
プログラムで外部モジュールやライブラリを読み込む記述。AIが提案した存在しないパッケージ名に悪性パッケージが登録される攻撃(Slopsquatting)があるため、依存先の実在と提供元を確認する。
Instructor
Pydantic等のSchemaを使い、LLMから型付きStructured Outputを取得・Retry・Validationしやすくするライブラリ。
Outlines
Grammar、Regex、JSON Schema等を使って生成可能なToken列を制約し、Structured Generationを行うためのライブラリ。
BAML
Prompt、Schema、Model設定等を専用言語・Toolingで管理し、型付きLLM FunctionやStructured Outputを開発するためのFramework。
XGrammar
JSON Schema、Regex、Context-Free Grammar等に従うStructured Generationを高速に行うオープンソースEngine。vLLM、SGLang、TensorRT-LLM等のInference Engineへ統合されている。

辞典トップへ戻る · 関連記事を見る