安全性 NEW 2026.07.12 追加

ガードレール

がーどれーる

AIの入出力を検査し、有害・ポリシー違反な応答を事前・事後にブロックする制約機構

ガードレール

ガードレールとは

ガードレールとは、AIシステムの入出力を検査し、有害・不適切・ポリシー違反なコンテンツをリアルタイムでブロックまたは変換する制約機構の総称だ。「入力ガードレール」と「出力ガードレール」の2層構成が基本となる。入力ガードレールはユーザーのリクエストがメインモデルに届く前に検査し、出力ガードレールはAIが生成したレスポンスをユーザーに返す前に検査する。

Anthropicはシステムプロンプトによる制約をガードレールの主要な実装手段として位置づけており、Constitutional AI(constitutional training)によってモデルレベルのガードレールも組み込まれている。OpenAIはModerationエンドポイント(POST /v1/moderations)を提供しており、ヘイトスピーチ・暴力・性的コンテンツなどのカテゴリ別に数値スコアと判定結果を返す。「Building effective agents」の中でAnthropicは、エージェントシステムにおけるガードレールの実装を推奨パターンとして明示している。

なぜ注目されているのか

エージェント化が進むにつれ、AIが外部システムを直接操作したりメールを送信したりする能力を持つようになり、誤動作や悪用のリスクが急激に高まっている。単一の会話で終わるチャットボットと異なり、エージェントシステムでは一度ガードレールが突破されると連鎖的な被害が発生しうる。AnthropicとOpenAIの両社が2025年にリリースしたエージェント関連APIでは、ガードレールの組み込みを設計上の必須要件として明示している。

「シーケンシャルガードレール」と「パラレルガードレール」という実装パターンも注目されている。シーケンシャルは主処理の前後に直列で配置するシンプルな形式だ。パラレルは主処理と並行してガードレールを走らせることでレイテンシを最小化する高度な形式で、コスト増を抑えながら安全性を確保できる。

関連する技術

ガードレールはPrompt InjectionやMemory Poisoningなどの攻撃手法への防御にも使われる。ユーザー入力を信頼しないゼロトラスト原則に基づいてすべての入力を検査することで、悪意ある指示によるエージェントの乗っ取りを防ぐことができる。特に外部データ(ウェブページ・ドキュメント)をエージェントが読み込む場合、その内容に埋め込まれた指示を無効化するためのガードレールが不可欠だ。

ドラゴンボールで例えると

ガードレールは**亀仙人の「弟子入り審査」と「技の使用制限」**を合わせた仕組みだ。

「技を覚えるより、技を正しく使う判断力を育てる」——亀仙人の哲学はガードレール設計の精神そのものだ。

実装してみる

▸ CLAUDE CODE
  1. 01
    入力ガードレール: ユーザー入力をClaudeの小型モデル(Haiku)で事前チェックし、問題ある入力をブロックする
  2. 02
    出力ガードレール: メインモデルのレスポンスを受け取った後、別のClaudeコールで安全性を検証する
  3. 03
    ブロック時はユーザーに明確なフィードバックを返し、ログに記録する
PYTHON
import anthropic

client = anthropic.Anthropic()

GUARDRAIL_SYSTEM = """
あなたは安全性フィルターです。入力が安全なら "SAFE"、
問題があれば "UNSAFE: [理由]" とだけ返してください。
"""

def check_input(user_message: str) -> bool:
    result = client.messages.create(
        model="claude-haiku-4-5-20251001",
        max_tokens=64,
        system=GUARDRAIL_SYSTEM,
        messages=[{"role": "user", "content": user_message}],
    )
    return result.content[0].text.startswith("SAFE")

if not check_input(user_input):
    raise ValueError("入力がポリシーに違反しています")
PROMPT例 — そのまま貼り付け可
以下のユーザー入力が安全かどうかを判定してください。 安全なら「SAFE」、問題があれば「UNSAFE: [具体的な理由]」とだけ回答してください。 入力: [ユーザーメッセージをここに挿入]

出典