メインコンテンツまでスキップ

ガードレール

コンテンツポリシーの適用、データ漏えいの防止、プロフェッショナルなコミュニケーション基準の維持を目的として、AIエージェントの応答に制約を定義します。

ガードレールを使用する理由

AIエージェントは幅広い知識にアクセスでき、多種多様な応答を生成できます。制約がない場合、次のようなことが起こり得ます。

  • 社会保障番号(SSN)やメールアドレスなどの機微なユーザーデータを開示してしまう
  • 想定されたスコープ外の質問に回答してしまう
  • 不適切または攻撃的な言葉遣いをしてしまう

ガードレールを使うと境界を定義でき、エージェントが話題から逸れず、プロフェッショナルで、かつポリシーに準拠した状態を保てます。単一のフラグでプリセットを有効化することも、独自のカスタムポリシーを書くこともできます。

Backend code
await this.squid.ai().agent('support-agent').updateGuardrails({
disablePii: true, // Blocks personally identifiable information
professionalTone: true, // Enforces formal language
});

概要

ガードレールは、AIエージェントの system prompt に最優先で注入される、設定可能な制約です。ガードレールが有効になると、エージェントはそれに応じて応答をフィルタリングするための具体的な指示を受け取ります。

ガードレールには 2 種類あります。

  • プリセットガードレール - オン/オフ切り替え可能な 4 つの組み込みポリシー
  • カスタムガードレール - プリセットではカバーされないポリシーのための自由形式テキスト指示

ガードレールは 3 つの方法で設定できます。

方法最適な用途
Squid Console(Agent Studio)素早いセットアップと、開発者以外のユーザー
Backend SDKアプリケーションコードからのプログラム制御
REST API外部システムや自動化パイプライン

ガードレールの仕組み

エージェントがメッセージを処理する際、有効なガードレールは、基盤となる LLM に送信される system prompt 内に高優先度の指示として埋め込まれます。エージェントはこれらの指示を最優先で扱い、ユーザーに返す前に、有効なガードレールポリシーすべてに準拠するよう応答をフィルタリングします。

コアコンセプト

プリセットガードレール

GuardrailKey役割
Profanity filterdisableProfanity罵倒語、下品な言葉、攻撃的な表現をフィルタリングします。敬意があり中立的な言葉遣いを強制します。
PII protectiondisablePiiSSN、銀行口座番号、住所、氏名、生年月日、メール、電話番号、パスポート/運転免許証番号、クレジットカード番号などの個人を特定できる情報(PII)の出力を防止します。
Topic restrictionoffTopicAnswers定義されたスコープ内の質問にのみ応答するようエージェントを制限します。スコープ外の質問は丁寧に辞退します。
Professional toneprofessionalToneスラングやカジュアルな表現を避け、明確かつ正確な言葉遣いで、プロフェッショナル、礼儀正しく中立的なトーンを維持します。

各プリセットは boolean フラグです。true で有効化、false で無効化します。

カスタムガードレール

カスタムガードレールは、追加ポリシーを説明する自由形式テキストを受け付けます。プリセットではカバーされないドメイン固有のルールに使用してください。例:

  • 「事実に関する主張をする場合は必ず出典を引用する」
  • 「競合製品について議論しない」
  • 「スペイン語でのみ回答する」

マージ動作

updateGuardrails メソッドは、新しい設定で既存の設定を置き換えるのではなく、マージします。たとえば、エージェントがすでに disablePii: true を持っている状態で updateGuardrails({ professionalTone: true }) を呼び出すと、両方のガードレールが有効なままになります。ガードレールを無効化するには、明示的に false を設定してください。

Studio でガードレールを設定する

Squid Console 経由でエージェントのガードレールを設定するには:

  1. 左サイドバーの Agent Studio タブに移動
  2. 設定したいエージェントを選択
  3. Settings タブをクリック
  4. Agent Guardrails セクションまでスクロール
  5. 4 つのプリセットガードレールをオン/オフ切り替え
  6. (任意)テキストフィールドにカスタムガードレールポリシーを入力

Backend SDK でガードレールを設定する

プリセットガードレールを更新する

updateGuardrails を使ってプリセットガードレールを有効化/無効化します。設定は既存の値とマージされます。

Backend code
// Enable PII protection and professional tone
await this.squid.ai().agent('AGENT_ID').updateGuardrails({
disablePii: true,
professionalTone: true,
});

4 つのプリセットを一度にすべて有効化するには:

Backend code
await this.squid.ai().agent('AGENT_ID').updateGuardrails({
disableProfanity: true,
professionalTone: true,
disablePii: true,
offTopicAnswers: true,
});

他を維持したまま特定のガードレールだけ無効化するには:

Backend code
// Disable profanity filter; other guardrails remain unchanged
await this.squid.ai().agent('AGENT_ID').updateGuardrails({
disableProfanity: false,
});

カスタムガードレールを追加する

updateCustomGuardrails を使ってカスタムガードレールポリシーを設定します。

Backend code
await this.squid
.ai()
.agent('AGENT_ID')
.updateCustomGuardrails('Always cite sources when making factual claims.');

このメソッドを再度呼び出すと、以前のカスタムガードレールテキストは置き換えられます。

カスタムガードレールを削除する

deleteCustomGuardrail を使ってカスタムガードレールポリシーを削除します。

Backend code
await this.squid.ai().agent('AGENT_ID').deleteCustomGuardrail();

これはカスタムガードレールのみを削除します。プリセットガードレールには影響しません。

REST API 経由でガードレールを設定する

すべての API エンドポイントは、Squid Cloud アプリケーションの base URL を使用します。API URL の構築については、API documentation を参照してください。

プリセットガードレールを更新する

POST リクエストを送信してプリセットガードレールを更新します。

POST /squid-api/v1/ai/agent/updateGuardrails

{
"agentId": "your-agent-id",
"guardrails": {
"disablePii": true,
"professionalTone": true,
"offTopicAnswers": true,
"disableProfanity": true
}
}

カスタムガードレールを更新する

POST /squid-api/v1/ai/agent/updateCustomGuardrails

{
"agentId": "your-agent-id",
"customGuardrail": "Always cite sources when making factual claims."
}

カスタムガードレールを削除する

POST /squid-api/v1/ai/agent/deleteCustomGuardrail

{
"agentId": "your-agent-id"
}

エラーハンドリング

よくあるエラー

ErrorCauseSolution
Agent not found指定した agentId が存在しないSquid Console で agent ID を確認してください
UnauthorizedAPI key が無効、または欠落している有効な app または agent API key を使用していることを確認してください
Cannot perform operation on built-in agentbuilt-in agent のガードレールを変更しようとしたbuilt-in agent を変更するのではなく、カスタムエージェントを作成してください

挙動に関する注意

  • 指定されたカスタムガードレール文字列が空の場合、updateCustomGuardrails は変更なしで黙って(silently)戻ります。
  • エージェントが存在しない、またはカスタムガードレールが設定されていない場合、deleteCustomGuardrail はエラーなく黙って(silently)戻ります。
  • プリセットガードレール値は単純な boolean であり、内容のバリデーションは不要です。

ベストプラクティス

  1. カスタムルールを書く前にプリセットから始める。 4 つの組み込みガードレールで、最も一般的なコンプライアンス要件をカバーできます。カスタムガードレールはドメイン固有ポリシーにのみ追加してください。
  2. カスタムガードレールは具体的に書く。 「安全にする」のような曖昧な指示は、「社内の価格算定式を開示しない」のような明示的なルールより効果が低くなります。
  3. ガードレールを組み合わせて多層防御にする。 disablePii を有効化し、さらにドメインの追加データ取り扱いルールを指定するカスタムガードレールと組み合わせてください。
  4. ガードレールの挙動をテストする。 ガードレールを有効化したら、各ポリシーが発火するように設計したプロンプトでエージェントをテストし、制約が期待どおりに動作していることを確認してください。
  5. マージのセマンティクス(merge semantics)を忘れない。 updateGuardrails の呼び出しは既存設定とマージされます。ガードレールを無効化するには、明示的に false を設定する必要があります。