このドキュメントでは、 Google Cloud上のライブの双方向マルチエージェント AI システムのハイレベル アーキテクチャについて説明します。システムは、複雑なコンポーネントの組み立て、機器の故障の診断、複雑な修理手順のナビゲーションなどの技術的なタスクをユーザーが完了するのを支援します。エージェント型 AI システムは、マルチモーダル データの継続的な双方向ストリームを通じて、根拠のある技術ガイダンスと自動化された安全モニタリングを提供します。
このドキュメントは、クラウドで AI インフラストラクチャとアプリケーションを構築して管理するアーキテクト、デベロッパー、管理者を対象としています。このドキュメントは、AI エージェントとモデルの基本的な知識があることを前提としています。このドキュメントでは、AI エージェントの設計とコーディングに関する具体的なガイダンスは提供していません。
このドキュメントのデプロイ セクションには、マルチエージェント AI システムの構築とデプロイの方法を学習するために使用できるコードサンプルが記載されています。
アーキテクチャ
次の図は、マルチエージェント AI システムを使用してライブの双方向マルチモーダル データ ストリーミングを可能にするアーキテクチャの概要を示しています。
上の図のアーキテクチャには、技術ガイダンスと安全性モニタリングの 2 つのワークフローがあります。
- 技術ガイダンス ワークフローを使用すると、複雑な技術的な問い合わせに対するナレーション付きの解決策をリアルタイムで受け取ることができます。このワークフローでは、Gemini Live モデルを使用してマルチモーダル ストリームを処理し、サブエージェントと連携してナレッジ データベースからグラウンディングされた商品情報を取得します。
- 安全モニタリング ワークフローは、技術的な手順の実行中にユーザーの安全を確保するために、危険を自動的に検出します。このワークフローでは、Gemini を使用してライブ動画セグメントを分析し、潜在的なリスクを特定して、クライアント ダッシュボードから即座に警告をトリガーします。
次のタブには、技術ガイダンスと安全性モニタリングのワークフローを示すアーキテクチャ図が用意されています。
技術ガイダンスのワークフロー
次の図は、技術ガイダンス ワークフローの詳細なアーキテクチャを示しています。
上の図は、次のデータフローを示しています。
-
ユーザーがクライアント ダッシュボードから音声で技術的な問い合わせを行うと、セッションが開始されます。たとえば、技術者が制御パネルにカメラを向け、「この点滅している赤いエラーランプはどういう意味ですか?」と質問します。
-
クライアント ダッシュボードは、フロントエンドとバックエンド サーバーの間に永続的な WebSocket 接続を確立します。
-
WebSocket メッセージは、未加工のマルチメディア データを
Blobオブジェクトにパッケージ化します。Agent Development Kit(ADK)LiveRequestQueueコンポーネントは、入力データをディスパッチャー エージェントに継続的にストリーミングします。 -
ディスパッチャー エージェントは、技術的なガイダンスが必要な音声コマンドまたはビジュアル コマンドを検出し、入力ストリームを Gemini Live モデルに送信します。
-
Gemini Live モデルは、未加工のデータを検索してイベントを特定します。イベントは、音声キーワード(「組み立て」や「ヘルプ」など)や、視覚的な合図(手のジェスチャーなど)です。
Gemini は各イベントを評価して、ユーザーの問い合わせに関連するかどうかを判断します。たとえば、ハンド ジェスチャーやフィラーワードは関連性がない可能性があるため、Gemini はこれらのイベントを処理しません。
-
Gemini は、関連するイベントごとに関数呼び出しを有効にして、追加のコンテキストが必要かどうかを評価します。追加のコンテキストが必要かどうかに応じて、Gemini またはアーキテクト エージェントがディスパッチャー エージェントに応答を返します。
-
コンテキストがさらに必要な場合、Gemini はアーキテクトのエージェントカードを検索して、リクエストの構造化方法を把握します。
-
Gemini がディスパッチャー エージェントに構造化されたリクエストを送信します。リクエストには、商品タイプ、モデル番号、イベントタイプ、属性などのイベントの詳細が含まれます。
-
ディスパッチャー エージェントは、Agent2Agent(A2A)プロトコルを使用して、構造化されたリクエストをアーキテクト エージェントに送信します。
-
アーキテクト エージェントは、サーバーレス VPC アクセス コネクタを介してクエリを送信します。コネクタを使用すると、エージェントはこのアーキテクチャのストレージ リソースに使用される Virtual Private Cloud(VPC)ネットワーク内のリソースに安全にアクセスできます。
-
サーバーレス VPC アクセス コネクタは、 Memorystore for Redis Cluster に保存されているキャッシュ データとやり取りします。データがキャッシュされたレイヤで使用できない場合、アーキテクト エージェントはナレッジ データベースをホストする Compute Engine インスタンスとやり取りします。
-
アーキテクト エージェントは、データ キャッシュまたはナレッジ データベースから商品情報を受け取ります。アーキテクト エージェントは、Gemini に商品情報を送信して、回答を生成します。たとえば、「エラーコード 3B: ファンの故障。推奨される対応: 障害物がないか確認してください。」
アーキテクト エージェントは、商品情報をディスパッチャー エージェントに返送します。
コンテキストが不要な場合は、Gemini はユーザーのリクエストに対する回答を直接生成します。
-
-
ディスパッチャー エージェントは、Gemini またはアーキテクチャ エージェントからレスポンスを受信し、マルチモーダル レスポンスを生成します。
-
Gemini Live モデルと ADK
run_live関数を使用して、技術的なソリューションを含むマルチモーダル レスポンスを生成します。 -
レスポンスを
Blobオブジェクトとして保存します。 -
ストリーミング バッファと永続的な WebSocket 接続を介して技術的なソリューションを送信し、クライアント ダッシュボードに技術的なソリューションを配信します。
-
-
クライアント ダッシュボードは、技術ソリューションから
Blobデータを抽出し、ナレーション付きのガイダンスを即座に提供します。また、関連する文字起こしで UI を更新します。アクティブな双方向ストリームが維持されている間、リクエスト ループが完了します。
安全性モニタリング ワークフロー
次の図は、安全性モニタリング ワークフローの詳細なアーキテクチャを示しています。
上の図は、次のデータフローを示しています。
- クライアント ダッシュボードは、フロントエンドとバックエンド サーバーの間に永続的な WebSocket 接続を確立し、ライブ動画ストリームを監視します。WebSocket メッセージは、この未加工のマルチメディア データを
Blobオブジェクトにパッケージ化し、ADKLiveRequestQueueコンポーネントを使用して、ストリーミング バッファに継続的に送信します。 - ストリーミング バッファは、入力ストリームを、バックグラウンドで連続ループで実行され、動画フレーム内の危険を検出するストリーミング ツールに転送します。
- ストリーミング ツールは、ストリーミング バッファから最新の動画フレームを Gemini に送信します。
- Gemini は、明るい光や蒸気などの危険がないか動画フレームを監視します。
- 危険が検出されなかった場合は、何も起こりません。
- 危険が検出されると、Gemini は危険の種類、属性、場所を含むマルチモーダル レスポンスを生成し、
Blobオブジェクトとして保存します。Gemini は、危険警告のレスポンスをストリーミング ツールに返送します。
- ストリーミング ツールは、危険警告レスポンスをストリーミング バッファに転送します。
- ストリーミング バッファは、永続的な WebSocket 接続を使用して、技術ソリューションをクライアント ダッシュボードに配信します。
- クライアント ダッシュボードは、技術ソリューションから
Blobデータを抽出し、ナレーション付きのガイダンスを即座に提供し、関連する文字起こしで UI を更新します。これにより、アクティブな双方向ストリームを維持しながらリクエスト ループが完了します。
使用するプロダクト
このリファレンス アーキテクチャでは、次の Google Cloud プロダクトとツールを使用します。
- Cloud Run: Google のスケーラブルなインフラストラクチャ上でコンテナを直接実行できるマネージド コンピューティング プラットフォーム。
- Gemini: Google が開発したマルチモーダル AI モデルのファミリー。
- Vertex AI: ML モデルと AI アプリケーションのトレーニングとデプロイを行い、AI を活用したアプリケーションで使用する LLM をカスタマイズできる ML プラットフォーム。
- Agent Development Kit(ADK): AI エージェントの開発、テスト、デプロイを行うためのツールとライブラリのセット。
- Agent2Agent(A2A)プロトコル: プログラミング言語やランタイムに関係なく、エージェント間の通信と相互運用を可能にするオープン プロトコル。
- サーバーレス VPC アクセス: サーバーレス環境を Virtual Private Cloud ネットワーク内のリソースに接続できるサービス。
- Virtual Private Cloud(VPC): Google Cloud ワークロードにグローバルでスケーラブルなネットワーキング機能を提供する仮想システム。VPC には、VPC ネットワーク ピアリング、Private Service Connect、プライベート サービス アクセス、共有 VPC が含まれます。
- Memorystore for Redis Cluster: Redis 向けのフルマネージドのインメモリ データストア サービス。
- Compute Engine: Google のインフラストラクチャで VM を作成して実行できる、安全でカスタマイズ可能なコンピューティング サービス。
フレームワーク、エージェント ランタイム、ツール、メモリ、設計パターンなど、エージェント型 AI システムの代替コンポーネントの選択については、エージェント型 AI アーキテクチャ コンポーネントを選択するをご覧ください。
ユースケース
このリファレンス アーキテクチャは、継続的な双方向マルチモーダル データ ストリームのリアルタイム合成を必要とするユースケース向けに設計されています。このドキュメントで説明するアーキテクチャのユースケースの例を次に示します。
- 産業製造と現場メンテナンス: スマートグラスからライブ音声と動画を処理する AI アシスタントを技術者に提供することで、複雑な機械のハンズフリー修理を可能にします。技術者は AI アシスタントと会話して、マシンの回路図を取得します。AI アシスタントは、プロダクト ドキュメントにアクセスする内部データベース エージェントを使用して、根拠のある修理と組み立ての手順を確保します。同時実行のバックグラウンド ビジョン ツールは、双方向ストリームをモニタリングし、機械的な危険や誤った組み立て手順を技術者に事前に警告します。
- リモート テクニカル サポート: ユーザーがライブの電話カメラ フィードをマルチモーダル エージェント型 AI システムと共有できるようにすることで、お客様のトラブルシューティングの成果を向上させます。双方向ストリーミング アーキテクチャは、システムがハードウェアをリアルタイムで監視する動的な会話をサポートします。バックグラウンド ビジョン プロセスが、ケーブルが間違ったポートに接続されているなどの接続不良を特定した場合、システムは低遅延ストリームを使用して、修正ガイダンスでユーザーを直ちに中断します。
設計上の考慮事項
以降のセクションでは、AI エージェントを設計し、このアーキテクチャを本番環境に実装するための一般的な推奨事項について説明します。
AI エージェントの設計
エージェントの費用とパフォーマンスを改善するには、次の推奨事項を検討してください。
- 制御ループ スクリプト: 双方向のライブ エージェントのシステム プロンプトを、単なる個性ガイドラインではなく、厳格なステート マシン動作ループとして記述します。システム プロンプトで、トリガーされるまでエージェントを無効にするよう明示的に指示する必要があります。音声操作が簡潔で自然になるように、簡潔で行動を優先した回答を強制する必要があります。
- 関心の分離: 専用のバックグラウンド ストリーミング ツールを使用して、メイン エージェントとは独立して動画フィードをモニタリングします。アーキテクチャのルート エージェントは双方向であり、自身の発話を即座に中断して、これらの重要な安全に関する警告をユーザーにブロードキャストできます。また、1 つのエージェントに動画フィードの継続的なモニタリングを依頼すると、認知過負荷や幻覚につながる可能性があります。
- 費用対効果の高いプロンプト: プロンプト(入力)の長さと生成されたレスポンス(出力)は、パフォーマンスと費用に直接影響します。短く、直接的で、十分なコンテキストを提供するプロンプトを作成します。モデルから簡潔な回答を得られるようにプロンプトを設計します。たとえば、「2 文で要約して」や「3 つの要点をリストアップして」などのフレーズを含めます。詳細については、プロンプト設計のベスト プラクティスをご覧ください。
本番環境の設計
このアーキテクチャを本番環境に実装する場合は、次の推奨事項を検討してください。
- 上り(内向き)セキュリティ: アプリケーションへのアクセスを制御するには、フロントエンド Cloud Run サービスのデフォルトの
run.appURL を無効にして、リージョン外部アプリケーション ロードバランサを設定します。ロードバランサは、アプリケーションへの受信トラフィックのロード バランシングとともに、SSL 証明書の管理も処理します。保護を強化するために、Google Cloud Armor セキュリティ ポリシーを使用して、サービスにリクエスト フィルタリング、DDoS 保護、レート制限を提供できます。 - アクセス制御: トポロジ内のリソースの権限を構成する場合は、最小権限の原則に従います。
- 非同期バッファリング: 入力される音声パケットと動画パケットをモデルの推論エンジンから切り離すには、スレッドセーフな非同期の先入れ先出し(FIFO)バッファを使用します。このバッファは、ユーザー インターフェースが重い計算中にフリーズすることなく、ユーザーの中断にシステムが応答し続けるようにするマルチプレクサとして機能します。
- データの取り込み費用: トークン費用を削減し、コンテキスト ウィンドウの枯渇を防ぐには、1 秒あたり 2 フレームなどの低頻度のフレーム サンプリングを使用し、すべてのデータを Base64 JPEG ファイルに圧縮します。
- インメモリ キャッシュ: ミリ秒未満の読み取り速度を実現するには、アーキテクト エージェントのスキーマティクス ボルトにインメモリの Memorystore for Redis Cluster データベースを使用します。この実装により、レイテンシを最小限に抑え、リアルタイムの音声インタラクション中の無音を防ぎ、スケーラブルな単一の情報源を提供します。
- WebSocket のセキュリティ: すべての双方向 WebSocket 接続に TLS 暗号化を適用して、音声プリントや動画などの機密性の高いマルチモーダル データを保護します。
- 安全な A2A 通信:
- 認証済みの拡張エージェントカードを使用して、A2A 通信を保護します。
- OpenID Connect(OIDC)ID トークンをリクエストに付加します。OIDC ID トークンを使用すると、Identity and Access Management(IAM)を使用して、承認されたエージェントのみがデータにアクセスすることを確認できます。
- リソース割り当て: パフォーマンス要件に応じて、Cloud Run サービスに割り当てるメモリ上限と CPU 上限を構成します。
マルチエージェント AI システムの構築とデプロイに関する設計要因、ベスト プラクティス、推奨事項の詳細については、 Google Cloudのマルチエージェント AI システムをご覧ください。
デプロイ
このアーキテクチャのサンプル実装をデプロイするには、次の Codelab をお試しください。
- ADK 双方向ストリーミング エージェントの構築 Codelab: ライブ動画ストリームを処理して特定のユーザー ジェスチャーを認識する単一エージェント AI システムを構築します。
- Live 双方向マルチエージェント システム Codelab: 双方向ストリーミングを使用してリアルタイムの音声と動画のやり取りを行うマルチエージェント AI システムを構築します。このシステムには、継続的な安全性のモニタリングのためのプロアクティブなストリーミング ツールが含まれています。
次のステップ
- 詳しくは、ライブ セッションを開始、管理するをご覧ください。
- ADK Gemini Live API ツールキットの概要をご覧ください。
- Cloud Run で AI エージェントをホストする方法を学習する。
- エージェント型 AI アーキテクチャのコンポーネントを選択する方法について説明します。
- その他のエージェント型 AI アーキテクチャ ガイドを確認する。
- Google Cloudの AI ワークロードと ML ワークロードに固有のアーキテクチャ原則と推奨事項の概要について、Well-Architected Framework の AI と ML の視点を確認する。
- Cloud アーキテクチャ センターで、リファレンス アーキテクチャ、図、ベスト プラクティスを確認する。
寄稿者
著者:
- Christina Lin | デベロッパー リレーションズ エンジニア マネージャー
- Samantha He | テクニカル ライター
その他の寄稿者:
- Kumar Dhanagopal | クロス プロダクト ソリューション デベロッパー
- Olivier Bourgeois | デベロッパー リレーションズ エンジニア