ガードレール設計 — モデルが暴走する前に止める方法
入力フィルタ、出力検証、行動制限で安全なハーネスを作る
Claude Codeは「このファイルを削除してもいいですか?」と聞いてくる。これが実行段階のガードレールだ。聞かずに削除したら復旧できない。
入力ガードレール
モデルに渡される入力を事前に検証する。
プロンプトインジェクション防御 — ユーザー入力がシステムプロンプトを上書きしないよう分離。XMLタグやデリミタで入力を隔離するのが一般的。
トークン長制限 — 入力がコンテキストウィンドウを超えたらtruncation戦略が必要。無闇に切ると重要な情報が抜ける。
PII マスキング — 個人情報(メール、電話番号、マイナンバー)をモデルに渡す前にマスキング。
実行ガードレール
モデルがツールを使う時の行動を制限する。
許可リストベースのツール使用 — モデルが呼び出せるツールをホワイトリストで管理。「ファイル読み取りOK、ファイル削除は承認必要。」
タイムアウトとリトライ回数制限 — 無限ループ防止。5回リトライしてダメならエスカレーション。
サンドボックス実行 — コード実行は隔離環境で。Dockerコンテナ やVMで実行すればホストに影響しない。
出力ガードレール
モデルの応答をユーザーに渡す前に検証する。
スキーマ検証 — JSON出力が期待するスキーマに合っているか。必須フィールド欠落、型不一致を検出。
有害コンテンツフィルタ — モデルが不適切な内容を生成したらブロック。別の分類モデルでチェックする場合も。
事実確認(grounding) — モデルが参照した情報が実際に提供されたコンテキストにあるか確認。ハルシネーション防止。
動作フロー
入力ガードレール — プロンプトインジェクション防御、トークン長制限、PIIマスキング
実行ガードレール — 許可リストベースのツール使用、タイムアウト、サンドボックス
出力ガードレール — スキーマ検証、有害コンテンツフィルタ、事実確認(grounding)
3段階全て適用して完全なガードレール — 一つだけでは穴が生じる