コンテンツまでスキップ

【re:Invent 2025】Amazon Bedrock Guardrails で信頼できる AI アプリケーションを構築(AIM303-R1)というワークショップに参加してきました

こんにちは、ネクストモードの平林です。

今回は、生成AIアプリケーションの安全性を高めるためのワークショップ

Build trustworthy AI applications with Amazon Bedrock Guardrails [REPEAT] (AIM303-R1)」に参加してきました。

 

「AI に複雑な業務ルールを絶対に守らせたい」というのは悩み種だと思いますが、本セッションはその決定的な解になり得ると感じました。

コンソールでの手軽な検証から、コードベースでの本格的な実装まで体験し、すぐにでも現場で使いたくなる実践的な内容でした。

 


 

セッション概要

まずはセッションの基本情報です。

  • セッションID:AIM303-R1
  • セッション名:Build trustworthy AI applications with Amazon Bedrock Guardrails
  • 形式:Workshop(ハンズオン)
  • レベル:300 – Advanced
  • スピーカー:Nafi Diallo、Bharathi Srinivasan

 


 

ワークショップの内容

今回のワークショップは、下記の構成で進みました。

  1. ラボ1
    • AWSコンソールから自動推論によるガードレールを作成する
  2. ラボ2
    • APIを介した自動推論チェックの使用(空港ラウンジアクセスエージェント)
  3. ラボ3:
    • デモアプリケーションの実行(Knowledge Bases、Flowsとの統合)

 

下記は自動推論がBedrock Guardrailsと統合し、生成AIアプリと対話するオーケストレーションフロー図です。

00-automated-reasoning-flow

 


 

ラボ1:AWSコンソールから自動推論によるガードレールを作成する

まずは基本となるAWSマネジメントコンソールを使った設定です。

Amazon Bedrock の Guardrailsメニューから、新しい自動推論チェックを含むガードレールを作成しました。

 

主な手順としては下記になります。

  1. 編集ポリシーの作成
    • 自然言語でAIが守るべきルールを定義します。
  2. ガードレールの作成とリンク
    • 作成したポリシーをガードレールに紐づけます。
  3. コンソールでのテスト
    • 実際にプロンプトを入力し、自動推論が正しく機能しているかを確認しました。

コンソール上で「どのような質問に対して、どう振る舞うべきか」を記述するだけで、

裏側で自動推論エンジンが働き、意図しない回答にフラグを立てられること確認できました。

FireShot Capture 269 - [AIM303-R1] Amazon Bedrock Guardrails を使用した信頼できる AI アプリケーションの構築_ - [catalog.workshops.aws]-1

 



  • ラボ2:APIを介した自動推論チェックの使用(空港ラウンジアクセスエージェント)

Pythonを使用した、より実践的なAPIベースでの実装です。

空港ラウンジアクセスエージェントを想定したプログラムから自動推論チェックを構築・運用するフローを体験しました。

 

主な手順としては下記になります。

  1. ルールの構造化
    • 自然言語の代わりに、XMLファイルとして定義された厳格な規約データを読み込みます。
  2. APIによるガードレール作成
    • create_guardrail APIを使用し、読み込んだXMLルールを自動推論ポリシーとしてプログラム経由で設定しました。
  3. コードベースでのテスト
    • 作成したエージェントに対しPythonスクリプトから問い合わせを行い、複雑な条件(同伴者数や会員ランクなど)の判定精度を検証しました。 

コンソールでの手軽さとは対照的に、こちらはXMLのような構造化データを「正解」として扱えるため、

複雑なビジネスルールも厳密に適用でき、かつアプリ開発のデプロイフローにそのまま組み込める実用性の高さを実感しました。

 

コードとしては下記のようなものを使用しました

import boto3

with open('lounge_specs.xml', 'r') as file:
    lounge_specs_content = file.read()

response = bedrock_client.create_guardrail(
    name="lounge-access-guardrail",
    description="Guardrail for airport lounge access agent",
    automatedReasoningPolicyConfig={
        'description': 'Policy ensuring compliance with lounge access rules',
        'statements': [
            {
                'statement': lounge_specs_content,
                'type': 'CONTEXT'
            }
        ]
    },
    blockedInputMessaging="Sorry, the model cannot answer this question.",
    blockedOutputsMessaging="Sorry, the model cannot answer this question.",
)

guardrail_id = response['guardrailId']
print(f"Created Guardrail ID: {guardrail_id}")


 

  • ラボ3:デモアプリケーションの実行(Knowledge Bases、Flowsとの統合)

最後は、ラボ1のリソースとラボ2の概念を統合し、Streamlitを使用したデモアプリケーションを実行しました。

単なるガードレールの挙動確認だけでなく、Amazon Bedrock Knowledge Basesと組み合わせた、より実践的なチャットボットの挙動を確認します。

 

主な手順としては下記になります。

  1. 変数の設定
    • ラボ1で作成したGuardrail IDやバージョン、および事前に用意されたKnowledge Base IDを環境変数としてPythonコードに埋め込みます。
  2. アプリケーションの起動
    • streamlit run demo.pyコマンドを実行し、ブラウザベースのチャットUIを立ち上げます。
  3. 統合環境でのテスト
    • インタラクティブチャット
      • 「有料会員権で契約ラウンジを使えますか?」といった質問を投げ、ガードレールによる制御を確認。
    • ナレッジベースクエリ
      • 「ラウンジのアメニティは何ですか?」と質問し、ポリシー違反がないか自動推論が機能することを確認しました。

このラボを通じて、Knowledge Basesが持つ「正確な情報検索」と、Guardrailsが持つ「厳格な出力制御」を組み合わせることで、

知識と安全性を両立した信頼性の高いAIアプリケーションが構築できることを体感できました。

※画像取得忘れていました。

 


 

まとめ

Amazon Bedrock Guardrailsの自動推論チェック機能は、

空港以外にも金融や医療、厳密な契約・規約に基づく回答が必要な領域において、非常に強力な武器になると感じました。

  • 精度としては従来のガードレールよりも厳密な制御が可能です

  • 使いやすさでは自然言語でポリシーを記述できるため、専門的な数式の知識がなくても利用可能です

  •  

「AIに嘘をつかせたくない」「規約違反の案内を絶対に避けたい」というユースケースにおいて、この機能は必須の選択肢になりそうです。

 

このブログが、生成AIアプリケーションにおけるガードレール運用の自動化および最適化の参考になれば幸いです!