Amazon Connect AIエージェントの電話チャネルで Bedrock Guardrails の機密情報フィルターを試してみた
はじめに
以前、Amazon Connect AIエージェントで Bedrock Guardrails の各種フィルタを設定し、チャットチャネルでいろいろ試しました。
今回は、Amazon Connect AIエージェントの電話チャネルで、Bedrock Guardrails の機密情報フィルターを検証してみます。
Amazon Connect AIエージェントでは、AI ガードレールとして Amazon Bedrock Guardrails を利用できます。Bedrock Guardrails の機密情報フィルターでは、検出した個人情報を {NAME} や {PHONE} のような PII タイプに置き換えてマスクできます。
If sensitive information is detected in the model request or response, the guardrail masks it and replaces it with the PII type (for example,
{NAME}or{EMAIL})
モデルのリクエストまたはレスポンスで機密情報が検出された場合、ガードレールはそれをマスクし、PII タイプに置き換えます。たとえば{NAME}や{EMAIL}です
https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-sensitive-filters.html
また、日本語は機密情報フィルターで最適化済みのサポート対象です。
Japanese
Optimized support
日本語
最適化済みでサポート対象
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/guardrails-supported-languages.html#guardrails-sensitive-information-languages
今回の確認では、チャットでは {NAME} などへのマスクを確認できた一方で、電話ではプレースホルダーを含む応答をアナウンスできませんでした。
あわせて、マスクではなくブロックにした場合は、電話でアナウンスされることも確認 できました。
AIガードレール作成
まず、Amazon Connect AIエージェント用の AI ガードレールを作成します。
機密情報フィルターには、PII タイプとして以下を設定しました。
- 名前
- 電話
- アドレス
- 年齢
- ユーザー名
- パスワード

作成した AI ガードレールを、Amazon Connect AIエージェントに関連付けます。

なお、Connect AIエージェントで AI ガードレールを有効にすると、会話内容に対して Bedrock Guardrails が評価されます。
AIエージェント作成
今回は、オーケストレーションタイプの Amazon Connect AIエージェントを使って確認しました。
AIエージェント自体はシンプルな構成にしており、特別な業務ツールは使わず、ユーザーの発話に対して自然文で応答する基本的なエージェント としています。
今回確認したかったのはツール連携ではなく、Guardrails の機密情報フィルターが音声応答でどのように扱われるかなので、デフォルトのプロンプトを利用しています。
ロケールは日本語で設定し、電話でもチャットでも同じ AI エージェントを呼び出すようにしました。
コンタクトフロー作成
コンタクトフローは、顧客の入力を受け取って AI エージェントへ渡す、最小限の構成にしています。

動作確認
まずはチャットで確認し、その後に電話で確認しました。
まずはチャットで確認
チャットでは、名前、電話番号、住所、年齢については、AIエージェントが復唱した際に {NAME}、{PHONE}、{ADDRESS}、{AGE} のような形でマスクされることを確認できました。
たとえば、以下のような入力です。
- 「登録情報の変更をお願いします。名前は佐藤花子で、年齢は28歳です。新しい住所は、大阪府大阪市北区梅田1丁目になります。」
- 「引っ越しをしたので情報を更新したいです。名前は山田太郎です。新しい住所は東京都渋谷区道玄坂1-2-3で、電話番号は090-1234-5678に変わりました。」
これらに対する応答では、入力値そのものではなく PII タイプのプレースホルダーに置き換わっていました。
この時点では、チャットチャネルでは機密情報フィルターのマスクが期待通り動作している と判断できました。
登録情報の変更を承りました。新しい情報は次のとおりです:名前は{NAME}、年齢は{AGE}歳、新しい住所は{ADDRESS}です。
了解しました。{NAME}さんの情報を更新します。新しい住所は{ADDRESS}、新しい電話番号は{PHONE}ですね。
次に電話で確認
まず、個人情報を含む発話を試しました。
ユーザー発話
- 平井雄二と申します。あなたができることだけ教えてください
このとき、ログ上では AI エージェントが以下の応答を生成していました。
{NAME}様、お問い合わせいただきありがとうございます。私ができることについてご案内させていただきます。
その後、以下のような説明文も生成されていました。
私は以下のことができます。
まず、お客様のご質問に対して、情報を検索してお答えすることができます。
次に、私では対応が難しい場合や、より専門的なサポートが必要な場合は、担当者におつなぎすることができます。
つまり、ログ上では AI エージェントはきちんと応答を生成しています。
ただし、電話ではこの応答はアナウンスされませんでした。
表現を変えたり、何度か言い方を変えて試したりもしましたが、今回の検証では、名前などの個人情報を含む発話に対してプレースホルダーを含む応答を電話でアナウンスさせることはできませんでした。
次に、ガードレールに関係しない発話を試しました。
ユーザー発話
- あなたができることだけ教えてください
このケースでは、電話で正常にアナウンスされました。
このため、少なくとも今回の検証では、通話フロー全体や AI エージェントそのものが常に応答できないわけではなく、個人情報のマスクが関係する応答でのみ問題が起きている と考えられました。
マスクではなくブロックの場合
機密情報フィルターを マスク ではなく ブロック にした場合も確認しました。

こちらは、今回確認した範囲では 電話でもアナウンスされました。
今回の結果を整理すると、以下の通りです。
- チャットではマスクされたプレースホルダーが返る
- 電話ではマスクされたプレースホルダーを含む応答をアナウンスできない
- ブロックでは電話でもアナウンスされた
まとめ
Amazon Connect AIエージェントで Bedrock Guardrails の機密情報フィルターを試したところ、チャットでは {NAME} などのプレースホルダーによるマスクを確認できました。
一方で、電話では個人情報を含む発話に対して、プレースホルダーを含む応答をアナウンスできませんでした。ただし、ログ上では AI エージェントの応答自体は生成されていました。
また、ガードレールに関係しない発話では電話で正常に応答し、機密情報フィルターを ブロック にした場合も電話でアナウンスされました。
今回の環境では、電話チャネルにおいて Guardrails によりプレースホルダーへ置換された応答を正常に読み上げられない という結果になりました。電話チャネルで Bedrock Guardrails の機密情報フィルターを使う場合は、少なくとも現時点では マスク と ブロック で挙動が異なる点に注意が必要そうです。
なお、本事象は不具合の可能性があり、AWS側へフィードバックしています。








