業務アプリにAIエージェントを埋め込む、Amazon Quick Suiteの新機能を試してみた

業務アプリにAIエージェントを埋め込む、Amazon Quick Suiteの新機能を試してみた

最終更新日:2025年12月06日公開日:2025年12月06日
益子 竜与志
writer:益子 竜与志
XThreads

業務アプリケーションを使っているときに、「この画面からそのままデータ分析もできたらいいのに」と思ったことはありませんか。Amazon Quick Suiteの埋め込みチャット機能(Embedded Chat / QuickChat)を使うと、CRMやサポートコンソール、社内ポータルなどにAIエージェントを直接組み込めます。2025年11月にリリースされたこの機能を、実際に触りながらレポートします。

埋め込みチャットで何ができるのか

Quick Suiteの埋め込みチャット機能は、ユーザーが「今作業しているツール」を離れることなく、データやナレッジに対して質問・分析・アクション実行ができる仕組みです。

対象となるデータは大きく2種類あります。構造化データとしてはダッシュボード、トピック、データセットなど。非構造化データとしてはアップロードされたファイル(PDF、Office文書など)、スペースに格納されたドキュメント群、SharePointやWebサイトなど外部接続されたナレッジソースがあります。

さらに、Outlookでのメール送信、Slackメッセージ送信、Jiraチケット作成、PagerDutyインシデント作成といった外部サービスへのアクション実行も可能です。チャットの中で「この件についてSlackでチームに共有して」と指示すれば、その場でメッセージを送信できるわけです。

Quick Suite自体のライセンス(Professional / Enterprise)に含まれているので、追加費用なしで利用できるのもポイントが高いですね。

挿絵

2つの埋め込み方式

埋め込み方式は大きく2つ用意されています。

1-click embedding(静的iframe埋め込み)は、Quick Suiteコンソールから取得できる静的なiframeコードをイントラネットアプリケーションに貼り付けるだけのシンプルな方式です。エンドユーザーがiframeにアクセスすると、Quick Suiteへのサインインが求められ、認証後にチャットエージェントUIが表示されます。

サーバー側での埋め込みURL生成が不要なので、プロトタイピングや社内ツールへの組み込みには手軽です。ただし、ユーザーはQuick Suiteのサインイン画面を通過する必要があるため、シームレスなUXを求める場合は次の方式がおすすめです。

Registered user embedding(登録ユーザー埋め込み)は、既存のエンタープライズ認証基盤を利用してシングルサインオン環境でチャットを利用するための方式です。ユーザーは企業のIdPで一度認証すれば、追加のQuick Suiteログインなしに埋め込まれたチャットエージェントにアクセスできます。

各ユーザーには、自分に許可された情報のみが表示されるパーソナライズされた会話体験が提供されます。RBAMを維持しながら統合されたUXを実現できる点が魅力です。

実装の流れ

Registered user embeddingを実装する場合の大まかな流れを説明します。

まず、Quick Suite上でチャットエージェントを作成・設定します。ペルソナ(エージェントの役割やトーン)、ナレッジソース(ダッシュボード、トピック、スペースなど)、外部アクション(Slack、Outlook、Jiraなど)を定義します。

次に、IAMロールとQuick Suiteユーザーを準備します。GenerateEmbedUrlForRegisteredUserを呼び出すための権限を持つIAMロールが必要です。

Quick Suiteコンソールの「Manage domains」で、埋め込み先アプリケーションのドメインをallow listに登録します。これはセキュリティのために必須のステップです。

バックエンドからAWS SDKを使ってGenerateEmbedUrlForRegisteredUserを呼び出し、埋め込み用URLを取得します。Pythonでの実装例を見てみましょう。

response = quicksight_client.generate_embed_url_for_registered_user(
    AwsAccountId='123456789012',
    UserArn='arn:aws:quicksight:us-east-1:123456789012:user/default/user@example.com',
    ExperienceConfiguration={
        'QuickChat': {}
    },
    AllowedDomains=[
        'https://myapp.example.com',
    ]
)
embed_url = response['EmbedUrl']

フロントエンドではQuickSight Embedding SDK v2.11.0以上を使い、取得したURLをiframeとしてレンダリングします。

チャットエージェントの設計

チャットエージェントにはシステムエージェントとカスタムエージェントの2種類があります。

システムチャットエージェントはデフォルトで全ユーザーに「My assistant」として提供されます。特定のデータやアクションを事前に持たない「ベースプランナー」として設計されており、チャット時にユーザーがアクセス権を持つリソースを動的に参照します。

カスタムチャットエージェントは特定のユースケース向けに作成できます。例えば「財務分析アシスタント」として、財務データセットと取締役会資料へのアクセスを持たせ、財務関連の質問に特化させるといった使い方です。

カスタムエージェントの作成時には、自然言語でペルソナを定義します。「誰であるか」(財務分析の専門家)、「何をするか」(売上分析、予算比較、トレンド説明)、「どのように話すか」(プロフェッショナルだが親しみやすいトーン)といった要素を記述します。

埋め込み時にcontentOptions.fixedAgentArnを指定すると、そのカスタムエージェントに固定できます。指定しない場合はシステムエージェントが使用されます。

権限モデルの設計

チャットエージェントの権限は明確に分離されています。

Ownerはエージェントの挙動(ペルソナ、参照ドキュメント)やリソース(Spaces、Action connectors)を設定できます。タイトル、説明、推奨プロンプトなどのメタデータ編集、他ユーザー・グループとの共有、エージェントの削除も可能です。

Viewerはエージェントの設定を変更できず、自身がアクセス権を持つリソースに基づく応答を受け取るのみです。

管理者はカスタム権限プロファイルを作成し、「Chat agent」機能自体を完全に禁止したり、「Create chat agents」のみを制限して既存エージェントとのチャットは許可したりといった細かな制御が可能です。

重要なのは、埋め込みURL生成時に指定されたUserArnが、Quick Suite内のユーザーIDとして扱われる点です。そのユーザーに付与されたエージェント権限・リソースアクセス権限がそのまま埋め込みチャットの挙動に反映されます。

実際のユースケース

財務パフォーマンスダッシュボードに埋め込んだ財務分析アシスタントを例に考えてみましょう。

経営幹部が「EMEA リージョンの売上高は?」と質問すると、チャットエージェントはトピック設定と結びついたデータセットから適切な集計・フィルタリングを行い、回答を提示します。技術に詳しくないユーザーでも、フィルタやパラメータを使わずに自然言語でデータを探索できます。

さらに「第2四半期と比較して第3四半期に収益が15%減少した理由は?」といった質問にも対応可能です。チャットエージェントは、ダッシュボードの数値と取締役会報告書などの非構造化ドキュメントを組み合わせた回答を生成します。「何が起きているか」だけでなく「なぜ起きているか」まで答えられるのが強みです。

アクション連携と組み合わせると、ダッシュボードは「受動的なレポートツー��」から「アクションを開始できるコマンドセンター」に変わります。「この経費スパイクを要約し、財務ディレクターにSlackを送信して」といった指示がチャットから直接実行できるわけです。

実装時の注意点

セキュリティ面では、IAMポリシーでリソースをワイルドカードにせず、必要なQuick Suiteリソースに限定することを推奨します。ドメインallow listも本番環境のドメインのみに絞るべきです。

パフォーマンス面では、大規模なデータセットを参照する場合、レスポンス時間に影響が出ることがあります。トピックの設計を適切に行い、回答に必要なデータに素早くアクセスできるようにしておくことが重要です。

ライセンスについて、埋め込みチャットを利用するユーザーはQuick SuiteのProfessionalまたはEnterpriseライセンスが必要です。Reader権限では利用できないので注意してください。

Embedding SDK v2.11.0以上が必須です。FRAME_MOUNTEDFRAME_LOADEDCONTENT_LOADEDといったイベントを適切にハンドリングして、ローディング状態やエラーをユーザーに伝えるUIを実装することをおすすめします。

所感

触ってみた率直な感想として、「分析ツールと業務アプリの境界がなくなる」感覚があります。これまではダッシュボードを見に行く必要がありましたが、日常使いのアプリの中で自然にデータにアクセスできるようになるのは大きな変化です。

特にアクション連携との組み合わせが強力で、「インサイトを得たらその場でアクションを起こす」というワークフローが実現できます。SlackやJiraへの連携が標準でサポートされているのも実用的です。

一方で、エージェントのペルソナ設計やナレッジソースの選定には工夫が必要です。何でも答えられるようにしようとすると回答の精度が落ちるので、特定のユースケースに絞ったカスタムエージェントを複数用意するアプローチが良さそうです。

Careerバナーconsultingバナー