[アップデート] Amazon Bedrock でエージェントからガードレールが使えるようになりました

2024.05.21

いわさです。

Amazon Bedrock で有害なコンテンツをブロックするための機能である、Guardrails for Amazon Bedrock が GA となってから一ヶ月近く経ちました。

GA 時はInvokeModelでモデルを呼び出す際に、作成したガードレールを指定することが出来ていましたが、先日のアップデートで Agents for Amazon Bedrock (以降エージェント) からモデルにアクセスする際にもガードレールを使うように構成することが出来るようになりました。

エージェントは自律的にタスクを処理してくれる「エージェント」です。
エージェントを構成する際に、推論や回答生成を行うためのモデル情報などを入力するのですが、併せて作成済みのガードレールを設定することが出来るようになりました。

先ほどお昼ごろに私が確認した際には東京リージョンでは使えずにバージニア北部リージョンであれば設定することが出来る状態でした。
エージェントの特定バージョンでガードレールを指定するだけで使うことが出来ます。簡単です。

エージェントにガードレールを設定してみる

ガードレールオプションを使う方法は公式ドキュメントのエージェント構成手順にも既に記載されています。

ガードレールはエージェントのバージョンごとに設定出来まして、今回はドラフトバージョンへ設定してみましょう。
「Edit in Agent Builder」を開きます。

いやぁ、API や公式ドキュメントから、てっきりベースモデルと Additional settings の間あたりに設定項目が追加されるのかなぁと思いきや、全然違うところでした。
以下に新しくガードレール設定用のエリアが追加されています。

対象エリアの編集ボタンから、作成済みのガードレールを選択し、バージョンまで指定するだけです!

ただ、事前にエージェントの保存をしてエージェントリソースロールが設定されていない状態だとガードレール設定時に次のエラーが表示されましたので、まずガードレールなしでエージェントの保存まで行っておきましょう。

ガードレールが設定されているバージョンは次のように表示されます。

ガードレールを設定したエージェントをテストしてみる

何を聞けばよいのかわからなかったのですが、冒頭の青柳さんブログのように爆弾の作り方を聞いてみましょう。
まずはガードレールを設定しない状態だと次のようになります。

回答出来ないと言われてしまいました。ガードレールに設定したメッセージではないですねこれは。

トレースを見てみると、危険・悪意のあるコンテンツと分類されていますが、これはガードレールとは関係のないところですね。

ガードレール追加後

その上でガードレール設定を追加し、同じように入力してみましょう。
今度は次のようなメッセージが表示されました。
これはガードレール側に設定したブロックメッセージです。ガードレールから出力されていることがわかります。

トレースも見てみましょう。
前処理トレースのはじめにpreGuardrailTraceというステップが発生しており、アクションがINTERVEWEDとなり以降のステップが実行されていないです。

また、ガードレールで処理されない問題のなさそうなメッセージを入力した場合は次のようなトレースとなりますた。
こちらも同様に前処理トレースの最初のステップでpreGuardrailTraceが実行されていますが、アクションがNONEとなり、次のステップが実行されていますね。

さいごに

本日は Amazon Bedrock でエージェントからガードレールが使えるようになったので、まずバージニア北部リージョンで使ってみました。
明日あたりに東京リージョンにも反映されてるかまた確認してみたいと思います。

エージェント使用中の方はガードレールについても併せて評価してみてください。