Amazon Bedrock AgentCoreでNLPを活用したAI駆動のダッシュボード自動化エージェントを構築する
このソリューションは、Amazon Bedrock AgentCore、Strands Agents、Amazon Quickの機能を組み合わせ、安全でスケーラブルかつインテリジェントなAIエージェントの構築と運用を実現し、データを実用的なビジネスインサイトに変換します。
ビジネスアナリストは、変化するビジネス要件に対応するためにダッシュボードの変更を依頼すると、数日待たされることがよくあります。従来のプロセスでは、ITチームに変更リクエストを送信し、ITチームが要件を解釈し、APIドキュメントを参照し、テーブルスキーマを理解し、変更をデプロイする必要がありました。このアプローチは適切な監督と品質管理を維持しますが、迅速なダッシュボード更新が必要な場合、数日間のターンアラウンドタイムが発生する可能性があります。
このソリューションは、Amazon Bedrock AgentCore、Strands Agents、Amazon Quickの機能を組み合わせ、安全でスケーラブルかつインテリジェントなシステムを提供し、AIエージェントの構築と運用を可能にすると同時に、データを実用的なビジネスインサイトに変換します。
ソリューション概要
このソリューションでは、Amazon Bedrock AgentCoreとStrandsフレームワークを使用したマルチエージェントアーキテクチャを採用しています。Amazon Bedrock AgentCoreは、インフラストラクチャ管理を必要とせず、安全に大規模なエージェントを構築、デプロイ、運用するためのエージェントプラットフォームです。インテリジェントメモリとゲートウェイにより、ツールやデータへの安全で制御されたアクセスを実現し、エージェントの本番稼働を加速します。また、本番環境でのセキュリティと動的スケーリングを提供し、パフォーマンスと品質を監視します。Strands Agentsは、AWSサービスと統合するエージェントを構築するためのコードファーストのフレームワークです。さらに、Amazon QuickはAI駆動のBI機能を提供し、散在するデータを全員の戦略的インサイトに変換し、より迅速な意思決定とビジネス成果の向上を可能にします。
このアーキテクチャは、3つの専門エージェントが連携します。
- 検索ダッシュボードエージェント:ダッシュボードの検索、ダッシュボードおよびデータセットからの列メタデータの取得などのディスカバリー操作を実行します。
- 変更ダッシュボードエージェント:列の検証、テーブルビジュアルの更新、新しいダッシュボードバージョンの作成など、設定変更を実行します。
- オーケストレーターエージェント:意図の分類に基づいて、ユーザーリクエストを適切な専門エージェントにルーティングします。
オーケストレーターエージェントはユーザー対話のエントリポイントとして機能します。ユーザーが「testingダッシュボードにlastnameを追加」などの自然言語クエリを送信すると、Amazon Novaがリクエストを会話型または操作型に分類します。会話型クエリにはNovaのLLM機能を使用して直接応答します。操作型リクエストはStrandsフレームワークを通じて専門エージェントにルーティングされ、利用可能なデータセット列に対して変更を検証し、自律的に変更を実行します。同時に、セキュリティ制御と監査証跡を維持し、ロールバックのために元のダッシュボードを保持します。
アーキテクチャコンポーネント
アーキテクチャには以下のコンポーネントが含まれます。
- Amazon Bedrock AgentCore:Strandsエージェントオーケストレーターと専門のサブエージェントをホストします。
- Amazon Nova:自然言語処理と推論機能を提供します。
- Amazon Quick:ダッシュボードのディスカバリーおよび変更操作のターゲットサービスです。
- AgentCore Memory:会話コンテキストとセッション状態を維持します。
- Amazon Bedrock AgentCore Observability:エージェントの決定をログに記録し、APIインタラクションを追跡します。
実装手順
QuickセルフサービスのためのエージェンティックAIソリューションを実装するには、以下の高レベルの手順を実行します。
- エージェント(検索ダッシュボードエージェント、変更ダッシュボードエージェント、オーケストレーターエージェント)を構築します。
- エージェントをAmazon Bedrock AgentCoreにデプロイします。
- AWS管理コンソールを通じてエージェントをテストします。
前提条件
このソリューションを実装するには、以下の前提条件が必要です。
- Amazon Bedrock、Amazon Quick、およびAWS Identity and Access Management(IAM)の権限を持つAWSアカウント。
- 既存のダッシュボードがあるアクティブなAmazon Quickアカウント。
- Quick APIへのアクセスをエージェントに許可するIAM権限の設定。
- Python 3.10以降。
- uvパッケージマネージャーのインストール。
- 適切な認証情報で設定されたAWS CLI。
- PythonおよびAWSサービスの基本的な理解。
詳細な手順
ステップ1:Quickセルフサービスエージェントの構築
3つのコアエージェントを構築します。
1.1 検索ダッシュボードエージェントの構築
このエージェントは、表示や変更アクションに必要なダッシュボードのディスカバリー操作を処理します。たとえば、ユーザーが「testingという名前のレポートを表示」という自然言語クエリを送信すると、オーケストレーターがこのエージェントを呼び出し、list_dashboards APIを実行してダッシュボードメタデータを取得し、検索条件に基づいてフィルタリングし、構造化された形式で一致するダッシュボードを返します。
このエージェントは3つのコア機能を提供します:完全一致および部分一致をサポートするダッシュボード検索、アカウント内の利用可能なダッシュボードの一覧表示、ダッシュボードとその基盤データセットの両方からの列情報の取得。各機能はStrandsの@tool関数として実装されています。
1.2 変更ダッシュボードエージェントの構築
このエージェントは、検証優先のワークフローを通じてダッシュボード設定の変更を処理します。たとえば、ユーザーが「testingダッシュボードにlastnameを追加」というリクエストを送信した場合、オーケストレーターはこれを変更ダッシュボードエージェントにルーティングし、エージェントは列がデータセットスキーマに存在するかを検証し、describe_dashboard_definition APIを使用して完全なダッシュボード定義を取得し、テーブルビジュアルのフィールドウェルとフィールドオプションを更新し、create_dashboard APIを使用して新しいダッシュボードバージョンを作成します。
このエージェントは2つの主要操作をサポートします:ダッシュボードへの列の追加(リクエストされた列が基盤データセットに存在するが、まだダッシュボードにないことを検証後)およびダッシュボードからの列の削除(列が現在表示されていることを確認後)。既存のダッシュボードを変更するのではなく、一意の識別子を持つ新しいダッシュボードを作成し、元のダッシュボードは監査とロールバックのために保持します。
1.3 オーケストレーターエージェントの作成
最終コンポーネントは、Strandsフレームワーク内のツールとして検索ダッシュボードエージェントと変更ダッシュボードエージェントを調整します。オーケストレーターはルーティングロジックを指示するシステムプロンプトを定義し、両方の専門エージェントのツール登録を含み、分類された意図に基づいてそれらを呼び出します。ルーティングロジックは自然言語理解を通じて複数のクエリパターンを処理します。
このマルチエージェントアーキテクチャにより、ビジネスアナリストは自然言語を使用してダッシュボードを迅速に変更でき、数日の待ち時間を数分に短縮できます。このソリューションは効率性を向上させるだけでなく、元のダッシュボードを保持し監査証跡を提供することで、コンプライアンスとセキュリティを確保します。