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

ガードレール

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

ガードレールを使う理由

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

  • Social Security number やメールアドレスなどの機密性の高いユーザーデータを公開してしまう
  • 意図されたスコープ外の質問に回答してしまう
  • 不適切または攻撃的な言葉を使ってしまう

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

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 に設定すると無効化されます。

カスタムガードレール

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

  • "Always cite sources when making factual claims"
  • "Do not discuss competitor products"
  • "Respond only in Spanish"

マージの挙動

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 endpoint は、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 agent組み込みエージェントのガードレールを変更しようとした組み込みエージェントを変更するのではなく、カスタムエージェントを作成してください

挙動に関する注意

  • updateCustomGuardrails は、渡された custom guardrail 文字列が空の場合、変更なしで黙って return します。
  • deleteCustomGuardrail は、エージェントが存在しない場合や custom guardrail が設定されていない場合でも、エラーなく黙って return します。
  • プリセットガードレールの値は単純な boolean であり、コンテンツ検証は不要です。

ベストプラクティス

  1. カスタムルールを書く前にまずプリセットから始める。 4 つの組み込みガードレールは、最も一般的なコンプライアンス要件をカバーします。カスタムガードレールは、ドメイン固有ポリシーのみに追加してください。
  2. カスタムガードレールは具体的に書く。 「be safe」のような曖昧な指示は、「Do not reveal internal pricing formulas.」のような明示的ルールより効果が低くなります。
  3. ガードレールを組み合わせて多層防御にする。 disablePii を有効化し、さらにドメイン向けの追加データ取り扱いルールを明記したカスタムガードレールを併用してください。
  4. ガードレールの挙動をテストする。 ガードレールを有効化したら、各ポリシーを発動させるためのプロンプトでエージェントをテストし、制約が期待どおりに機能しているか確認してください。
  5. マージのセマンティクスに注意する。 updateGuardrails の呼び出しは既存設定とマージされます。ガードレールを無効化するには、明示的に false を設定する必要があります。