データ エージェントの統合パターン

このページでは、データ エージェント エクスペリエンスをアプリケーションに埋め込むための統合パターンについて説明します。これらのパターンの複雑さは、埋め込みチャット コンポーネントからオーケストレーションされたマルチエージェント システムまでさまざまです。

このガイドは、生成 AI アプリケーションを設計するクラウド アーキテクトとデータ エンジニアを対象としています。 Google Cloud のコンセプト、Identity and Access Management(IAM)、REST API に関する基本的な知識が必要です。また、アプリケーションで使用するデータソースのアーキテクチャについても理解している必要があります。

統合パターンの概要

このガイドは、次の主なトラックで構成されています。各トラックは、開始点に基づいています。

  • Looker トラック: Looker の埋め込み、Looker API、または会話型分析 API を介してチャット機能を提供する場合は、このトラックを選択します。
  • BigQuery とデータベース トラック: BigQuery、データポータル、またはサポートされている運用データベースを使用するカスタム アプリケーションを構築する場合は、このトラックを選択します。

次の表に、利用可能な統合パターンをまとめます。

統合パターン 説明 データソース
Looker iframe 埋め込み 最小限のコードを必要とするアプリケーションに標準チャット インターフェースを追加します。 Looker
Looker API と SDK 認証に Looker API を使用するカスタム チャット インターフェースを構築する。 Looker
会話型分析 API(Looker ソース) 複数のサーフェスとマルチエージェント システムで動作する Google Cloud リソースとして Looker データ エージェントを管理します。 Looker
Direct API(シングル エージェント) テキストから回答へのフローに直接 API 統合を使用します。 BigQuery、データベース、Looker
Direct API(オーケストレーター) 関数呼び出しを使用して、API と他のツール間でクエリをルーティングします。 BigQuery、データベース、Looker
ADK(スキーマ駆動型)と BigQueryToolset ask_data_insights ツールを使用して、テーブル参照から迅速に分析情報を生成します。 BigQuery
DataAgentToolset を使用した ADK(管理対象) ask_data_agent ツールを使用する事前構成済みのデータ エージェントにクエリを実行して、一貫した動作を確保します。 BigQuery、データベース、Looker
ADK(カスタム ストリーミング) カスタム エージェント クラスを使用して、グラフと SQL のリアルタイム ストリーミングをサポートします。 BigQuery、データベース、Looker
McpToolset または ToolboxToolset を使用した MCP Model Context Protocol(MCP)を使用するデータツールにアプリケーションを接続します。 BigQuery、Looker
会話型分析 API リモート MCP サーバー サードパーティの AI プラットフォームと Google が管理するプラットフォーム(Gemini Enterprise など)のルート エージェントが、 Google Cloud全体で特殊なデータ エージェントを検出して通信できるようにする、統合されたセキュア ゲートウェイを提供します。 BigQuery、データベース、Looker
A2A プロトコル 異なるシステムで動作する専門エージェント間の安全なコラボレーションを可能にします。 フレームワークに依存

Looker の統合オプション

Looker を使用している場合は、次のパターンで Looker の会話型分析をユーザーに提供できます。

Looker 統合パターンの概要

次の表は、Looker の主な統合パターンをまとめたものです。

パターン 最適な用途 利点 考慮事項
iframe を使用した埋め込み: 標準の Looker チャット エクスペリエンスをアプリケーションにすばやく追加するためのローコード メソッド。 最小限のカスタム開発で、プロダクション レディ(な)会話型分析エクスペリエンスを必要とするチーム。
  • 実装に必要なコードは最小限です。
  • 既存の Looker セキュリティ モデルを自動的に適用します。
  • 別途 Google Cloud 認証は必要ありません。
  • Looker Embed SDK をサポート。iframe のライフサイクルとイベントの受け渡しを管理することで、開発を加速します。
  • UI のカスタマイズは制限されており、標準の Looker チャット ユーザー インターフェースに依存しています。
  • Looker インスタンスは、Looker によりホストされている必要があります。
Looker API と SDK を使用して構築する: 認証とエージェント管理を Looker 内に維持しながら、カスタム チャット インターフェースを構築する柔軟なアプローチ。 カスタム チャット ユーザー エクスペリエンスが必要だが、ユーザー認証とエージェント管理を Looker エコシステム内に維持したいチーム。このパターンは、すでに Looker の埋め込みまたは API を使用しているアプリケーションに最適です。
  • 単一の認証レイヤと、ユーザー インターフェースの完全な制御を提供します。
  • 既存の Looker ユーザーのアーキテクチャを簡素化します。
  • Looker のセマンティック レイヤを使用してクエリの精度を向上させます。
  • 別途 Google Cloud 認証は必要ありません。
  • Looker API 開発の専門知識が必要です。
  • Looker データソースに限定されます。
  • エージェントは Looker 内で管理され、他の Google Cloud サービスに移植することはできません。
会話型分析 API を使用する: API と直接統合して、エージェントをクラウドレベルのリソースとして管理します。 データ エージェントのクロスプラットフォーム ポータビリティを必要とする Looker のお客様。
  • データ エージェントがすべての Google Cloud サーフェス間でポータブルであることを保証します。
  • IAM で一元管理される。
  • データ エージェントを ADK または MCP ワークフローに統合できます。
  • Google Cloud と Looker 認証の両方を含む、統合スタック全体を管理する必要があります。
  • データ エージェントは、Looker ユーザー インターフェースとは別に管理されます。

iframe を使用して埋め込む

会話型分析を iframe として埋め込むことで、Looker UI の外部でチャット エクスペリエンスを提供できます。このパターンは、カスタム UI の開発、バックエンド オーケストレーション、API 状態管理を必要とせずに会話型分析を提供する直接的な方法です。このパターンを使用するには、事前フォーマットされた URL をアプリケーションに追加します。

Looker Embed SDK には、安全な URL の生成、iframe のライフサイクル管理、ホステッド アプリケーションと iframe 間の JavaScript イベントの受け渡しなどのタスクを管理するツールが用意されています。[エージェント] ページ、[会話] ページ、または特定の会話を埋め込むには、事前フォーマットされた URL をアプリケーションに追加します。

埋め込みコンテンツには、次の認証方法を使用できます。

  • プライベート埋め込み: 既存の Looker 認証情報を使用してユーザーを認証します。埋め込み URL を iframe ソースとして設定すると、ユーザーは Looker アカウントでログインします。この方法では、追加の IAM 構成やトークン マッピングを必要とせずに、既存のロール、コンテンツ アクセス、データレベルの権限(アクセス フィルタやアクセス許可など)が自動的に適用されます。
  • 署名付き埋め込み: シングル サインオン(SSO)を使用して、アプリケーションを介してユーザーを認証します。会話型分析のコンテンツ パスを含む署名付き URL を作成します。これにより、付与する権限を動的に指定できます。

Looker API と SDK を使用して構築する

チャット エクスペリエンスの柔軟性を高めるには、Looker API の ConversationalAnalytics メソッドを使用するか、Looker SDK を使用してカスタム アプリケーションを構築します。このアプローチでは、Looker エンドポイントと直接通信するカスタム フロントエンドを構築できます。

Looker API と統合すると、次のメリットがあります。

  • Looker での認証のみを管理します。会話型分析 API で別途認証を行う必要はありません。
  • すでに Looker の埋め込みや API を使用しているアプリケーションの場合、このパターンを使用すると、二次認証メカニズムを回避し、外部データ エージェントを管理する必要がなくなるため、プロジェクト アーキテクチャを簡素化できます。
  • チャット インターフェース、会話フロー、アプリケーションによる結果(グラフや表など)のレンダリング方法を完全に制御できます。

リファレンス実装については、GitHub の ConversationalAnalytics メソッドを使用する Looker API ガイドをご覧ください。

Looker データで会話型分析 API を使用する

次のいずれかのタスクを実行する必要がある場合は、geminidataanalytics.googleapis.com で会話型分析 API と直接統合できます。

  • カスタム ウェブ アプリケーション、Google Chat、Gemini Enterprise など、複数の Google Cloud サーフェスで同じデータ エージェントを共有します。
  • Looker データソースを BigQuery または運用データベース ソースと組み合わせて、単一のマルチエージェント システムを構築します。
  • Looker の権限モデルではなく、IAM に則って管理されるクラウドレベルのリソースとしてデータ エージェントを管理します。

会話型分析 API の一般的なアーキテクチャ パターンの詳細については、BigQuery とデータベースの統合オプションをご覧ください。

BigQuery、データポータル、データベースの統合オプション

このセクションでは、BigQuery、データポータル、またはサポートされている Google Cloud 運用データベースを使用して、会話型分析 API でカスタム エクスペリエンスを構築するアプリケーションのアーキテクチャ パターンについて説明します。

Looker データソースで会話型分析 API を使用する場合、このセクションで説明するパターンは統合にも適用されます。

会話型分析 API には、データを操作するための次の主なメソッドが用意されています。

  • chat メソッド: BigQuery、Looker、データポータル、運用データベースをサポートします。
  • queryData メソッド: AlloyDB、GoogleSQL for Spanner、Cloud SQL for MySQL、Cloud SQL for PostgreSQL などの運用データベースをサポートしています。

カスタム アプリケーションを構築する場合は、次の統合パターンの 1 つ以上を使用できます。

  • 直接 API 統合: 柔軟性に優れたカスタム アプローチですが、認証、会話管理、レスポンス解析のためのインフラストラクチャを構築する必要があります。
  • フレームワーク駆動型オーケストレーション(ADK): Agent Development Kit(ADK)を使用して、マルチエージェント ルーティング、ツール実行、状態管理を行うアプローチ。
  • 垂直統合(MCP): Model Context Protocol(MCP)を使用して、さまざまな環境のツールやデータソースに AI アプリケーションを接続する統一された方法を提供するアプローチ。
  • 水平オーケストレーション(A2A): Agent-to-Agent(A2A)プロトコルを使用して、異なるシステム上の専門エージェントがカスタム統合コードを必要とせずに安全に連携できるようにするアプローチ。

BigQuery とデータベースの統合パターンの概要

次の表に、BigQuery と運用データベースの具体的な実装パターンをまとめます。

パターン 最適な用途 利点 考慮事項
シングル エージェント統合(直接 API): アプリケーションが API を直接呼び出して、データソースから分析情報を返すパターン。 すべての API 呼び出しを直接制御する必要がある単一エージェント アプリケーション、プロトタイプ、マイクロサービス。
  • フレームワークに依存しないきめ細かい制御が可能。
  • 単一エージェントのユースケースに最もシンプルなアーキテクチャを提供します。
  • ステートフル モードとステートレス モードの両方をサポートします。
  • 認証、状態管理、レスポンスの解析、エラー処理、ストリーミング、デプロイのためのすべてのインフラストラクチャを構築する必要があります。
  • マルチエージェント シナリオではスケーラビリティが低い。
カスタム オーケストレーター(直接 API): ルート エージェントと関数呼び出しを使用して、会話型分析 API と他のツールまたはサービス間でクエリをルーティングするパターン。 データクエリをメールやドキュメントなどの他のタスクと 1 つの会話フローに統合するアプリケーション。
  • フレームワークに依存することなく、オーケストレーションを最大限に制御できます。
  • モデルがツール間でどのようにルーティングするかを正確に定義できます。
  • すべての Gemini モデルで動作します。
  • ツールの定義、会話ループ、マルチターンの状態、エラー処理、デプロイを手動で管理する必要があります。
  • ADK などのフレームワークを使用する場合と比較して、開発のオーバーヘッドが大きくなる可能性があります。
BigQueryToolset(ADK)を使用したスキーマ駆動型の統合: テーブル参照を使用してデータ分析情報を迅速に返すパターン。 迅速なプロトタイピング、データ ガバナンスがそれほど重要ではない内部ツール、データ分析情報が ADK エージェントの複数の機能の 1 つであるシナリオ。
  • ADK フレームワーク内で最速の統合パスを提供します。
  • データ エージェントの事前構成は不要。
  • データベース テーブル名を直接操作する。
  • セマンティック ガバナンスが欠如しており、スキーマ推論のみから SQL を生成します。
  • API レベルでステートレス モードで動作します。
  • テキストのみの回答を提供し、グラフはサポートしていません。
DataAgentToolset(ADK)との管理された統合: エージェントの ID を参照して、事前構成されたデータ エージェントにクエリを実行するパターン。 一貫したデータアクセスを必要とする本番環境アプリケーション、またはデータ エージェントが信頼できる再利用可能なコンポーネントであるマルチエージェント システム。
  • すべてのコンシューマにセマンティック ガバナンスと一貫した動作を提供します。
  • 検証済みクエリとビジネス用語集を使用して精度を向上させます。
  • データ エージェントが ADK、MCP、直接 API 統合で再利用可能であることを確認します。
  • データ エージェント リソースを事前に構成する必要があります。
  • API レベルでステートレス モードで動作します。
  • テキストのみの回答を返します。グラフはサポートされていません。
カスタム サブエージェント(ADK): カスタム エージェント クラスを使用して API に直接接続し、データ チャンクをユーザーにストリーミングするパターン。 低いレスポンス レイテンシが優先されるユーザー向けアプリケーションや、データ取得がダウンストリーム エージェントにフィードされるマルチエージェント パイプライン。
  • リアルタイムのストリーミング フィードバックを提供します。
  • グラフ、テーブル、SQL など、すべてのレスポンス タイプにアクセスします。
  • セッション状態を介して他の ADK エージェントと組み合わせ可能。
  • カスタム ADK エージェント クラスを構築するには、より多くの開発作業が必要になります。
  • ストリーミング接続とレスポンスの解析を直接管理する必要があります。
Model Context Protocol(MCP): オープン スタンダードを使用して、AI アプリケーションをさまざまな環境のデータソースやツールに接続するパターン。 複数の AI クライアントと IDE にわたるツールの相互運用性を必要とする組織、または ADK フレームワーク、IDE、カスタム アプリケーションから同じデータツールにアクセスできるようにする必要があるチーム。
  • MCP 準拠のクライアントで動作するユニバーサル ツール標準を使用します。
  • ツールの実装をコンシューマー アプリケーションから分離します。
  • Google Cloud MCP サーバーなどのマネージド サーバー オプションを提供します。
  • ツールボックス サーバー用の追加のインフラストラクチャ レイヤが必要です。
  • ADK ツールセットよりも緩やかな統合を提供します。
  • MCP ツールボックスの進化するエコシステムに依存します。
  • ステートレス モードで動作するため、マルチターンの状態を外部で管理する必要があります。
Agent-to-Agent(A2A): A2A プロトコルを使用するパターン。A2A プロトコルは、異なるシステム上の特殊なエージェントがカスタム統合コードを必要とせずに安全に連携できるようにするオープン スタンダードです。 中央のルーティング エージェントが、異なるシステムまたはネットワークで動作するデータ エージェントにタスクを委任する必要がある、高度に分散されたエンタープライズ環境。
  • 異なるフレームワーク間でカスタム統合コードを記述する必要性が低減します。
  • シームレスなクロス プラットフォームの相互運用性を実現します。
  • 安全で標準化された機能検出を提供します。
  • 内部サブエージェントと比較して、ネットワーク レイテンシがわずかに発生します。
  • A2A サーバーの設定を構成する必要があります。

API との直接統合

API を直接統合すると、アプリケーションのロジックとアーキテクチャをきめ細かく制御できますが、サポート インフラストラクチャを構築する必要があります。このアプローチでは、認証、会話管理、レスポンスの解析、デプロイなどのタスクはお客様の責任となります。

このセクションでは、次の項目について説明します。

単一エージェントの統合

シングル エージェント統合では、バックエンドが REST またはクライアント ライブラリを使用して会話型分析 API を直接呼び出し、ユーザーのクエリとコンテキストを渡します。このパターンは、ウェブアプリ、社内チャットツール、マイクロサービスなど、シンプルなテキストから回答へのフローを使用する、複雑さの低いアプリケーションに適しています。このアプローチは、プロトタイピングや概念実証作業にも使用できます。

このパターンは、Google が会話履歴を管理するステートフル チャットと、アプリケーションが履歴を管理するステートレス チャットの両方をサポートしています。

リファレンス実装については、GitHub の 会話型分析 API クイックスタートまたは 会話型分析 API ゴールデンデモをご覧ください。

カスタム オーケストレーターの統合

このアプローチでは、アプリケーションのプライマリ エントリ ポイントおよびコーディネーターとして機能するルート エージェントを構築します。ルート エージェントは、関数呼び出しを介してツールを備えた標準の Gemini モデルを使用します。ユーザーがデータ関連の質問をすると、ルート エージェントは会話型分析 API にツール呼び出しを送信し、結果を受け取ります。その後、推論を続行するか、ダウンストリームの他のツールを呼び出すことができます。

関数呼び出しには次のステージがあります。

  1. 宣言する: パラメータ定義を含む FunctionDeclaration オブジェクトとしてツールスキーマを定義します。
  2. 呼び出し: モデルは、関数名と引数を含む構造化された functionCall メッセージを返します。
  3. 実行: アプリケーションが API 呼び出しを実行し、結果を FunctionResponse メッセージで返します。
  4. 合成: Gemini モデルは、結果を使用して最終的な回答を生成するか、次のアクションを決定します。

このアプローチは、ユーザーが他のタスクと並行してデータ分析情報をリクエストする可能性があるアプリケーションに適しています。たとえば、ユーザーがエージェントに「売上を表示して、セールスチームにメールの下書きを作成して」とリクエストしたとします。ルート エージェントは、データに関する質問を Conversational Analytics API にルーティングし、データ以外のタスクに他のツールを使用できます。

リファレンス実装については、GitHub の 会話型分析 API ゴールデンデモの オーケストレーション ページまたはマルチモーダル ページをご覧ください。

フレームワーク駆動型オーケストレーション(ADK)

Agent Development Kit(ADK)は、AI エージェントを構築するためのコードファースト フレームワークです。マルチエージェント ルーティング、ツール実行、状態管理の複雑さを管理します。ADK フレームワークは、Gemini Enterprise を支えるフレームワークと同じです。

ADK を使用すると、会話型分析 API を他のツールやエージェントと連携させて、複雑なアクションを実行できます。

このセクションでは、次の項目について説明します。

BigQueryToolset とのスキーマ駆動型統合

ADK フレームワークの BigQueryToolset ツールセットには、ビルド済みの ask_data_insights ツールが含まれています。このツールを使用するには、テーブル名とユーザーの質問をツールに渡します。ツールは、インライン コンテキストを使用して Conversational Analytics API を呼び出します。

ツールを呼び出すと、指定された BigQuery テーブル参照を含むステートレス リクエストが会話型分析 API に送信されます。API はデータベース スキーマを推論し、SQL クエリを生成して実行し、テキストの回答を返します。結果は、ツール レスポンスとして ADK エージェントに返されます。

このパターンは、エージェントに会話型分析を迅速に追加する効果的な方法です。しかし、API への呼び出しはステートレスでガバナンスがないため、API はセマンティック ガードレールなしで、テーブル スキーマに完全に依存した SQL を生成します。このパターンはデプロイが高速ですが、命名規則、ビジネス ロジック、アクセス制御が適用される本番環境のビジネス ロジックではリスクが高くなります。

DataAgentToolset との管理された統合

ADK フレームワークの DataAgentToolset ツールセットには、事前構成されたデータ エージェントを ID で参照する事前構築済みの統合が用意されています。ADK エージェントはユーザーの質問を ask_data_agent ツールに渡し、このツールが指定されたデータ エージェント コンテキストで 会話型分析 API を呼び出します。

データ エージェントは、会話型分析 API を使用してプログラマティックに作成することも、 Google Cloud コンソールのエージェント カタログから作成することもできます。データ エージェントには次のコンポーネントが付属しています。

  • ナレッジソース: エージェントがクエリできるテーブル、ビュー、ユーザー定義関数(UDF)
  • 構造化コンテキスト: エージェントが基盤となるデータを理解するのに役立つテーブルと列の説明
  • 指示: エージェントがデータソースを解釈してクエリするための追加のガイダンス
  • 検証済みクエリ: よくある質問の例として機能する、事前検証済みの SQL クエリ
  • 用語集: エージェントがドメイン固有の言語を理解するのに役立つビジネス用語の定義

エージェント カタログからエージェントを作成する方法の詳細については、BigQuery の会話型分析の Codelab をご覧ください。

エージェントは管理対象ユニットとして定義されているため、どのアプリケーションやサブエージェントから呼び出されても、同じ信頼できるロジック、コンテキスト、ガードレールを使用します。

カスタム サブエージェントとの高度な UX 統合

BigQueryToolset ツールセットと DataAgentToolset ツールセットは、API リクエストの処理が完了するまで、ユーザーに結果を返しません。ADK フレームワークは API を、完了するまでレスポンスをブロックするツールとして扱うため、実行時間が長いクエリでは、ユーザーにフィードバックが提供されない可能性があります。

レスポンス レイテンシが優先されるアプリケーションや、データ取得がダウンストリーム エージェントにフィードされるアプリケーションの代替手段として、会話型分析 API に直接接続し、データをチャンク単位で非同期にユーザーにストリーミングするカスタム ADK エージェント クラスを構築できます。このパターンは、生成される次のレスポンス タイプをサポートしています。

  • 思考メッセージ: 質問を解釈する際のデータ エージェントの推論プロセス。
  • 進行状況メッセージ: データソースのデータ取得中のステータス更新。
  • クエリの生成: 生成された SQL または Looker クエリ。生成時にストリーミングされます。
  • Data: JSON 形式のデータ結果。
  • 可視化: Vega-Lite グラフの仕様。
  • 概要: 最終的なテキストベースの回答。

返されるデータの種類の完全なリストについては、API リファレンス ドキュメントの SystemMessage タイプをご覧ください。

この非同期アプローチにより、ユーザーは複雑なデータ取得プロセスが完全に完了するまで待つ必要がなくなります。データ エージェントは、クエリプロセスを進めながら、テキストの要約、元データ、グラフ構成などの増分アップデートを一時的な共有ワークスペースに継続的に共有します。このデータは、ユーザーにリアルタイムでレンダリングされ、専用のサブエージェントと共有されて追加のタスクを実行できます。

ルート エージェント、データ サブエージェント、可視化エージェントを含むリファレンス実装については、GitHub の ADK ストリーミング デモをご覧ください。

垂直統合(MCP)

Model Context Protocol(MCP)は、AI アプリケーションが外部のツールやデータソースに接続するための統一的な方法を提供するオープン標準です。MCP は、AI モデルと、AI モデルが使用するツールの間のインターフェースを標準化します。

このセクションでは、次の項目について説明します。

会話型分析 API リモート MCP サーバー

会話型分析 API は、Google のマネージド MCP サーバーを搭載したリモート MCP サーバーを https://geminidataanalytics.googleapis.com/mcp で提供します。このゲートウェイは、統合された安全な HTTP とサーバー送信イベント(SSE)インターフェースを提供します。これにより、サードパーティの AI プラットフォームと Google マネージド プラットフォーム(Gemini Enterprise など)のルート エージェントは、 Google Cloud全体で特殊なデータ エージェントを検出して通信できます。

ルート エージェントの通信の概要

外部または Google 管理のルート エージェントと会話型分析 API 間の通信には、次の 3 つのロールが関与します。

  1. データ オペレーターは、会話型分析サーフェス全体でスコープ設定されたデータ エージェントを作成して構成し、各エージェントがアクセスできるデータソースと回答できる質問の明確な説明を記述して、それらのエージェントをビジネス ユーザーと共有します。
  2. プラットフォーム管理者は、https://geminidataanalytics.googleapis.com/mcp エンドポイントを指すカスタム MCP 接続をエージェント プラットフォームに登録します。管理者は、Google 認可エンドポイント(https://accounts.google.com/o/oauth2/v2/auth)、トークン エンドポイント(https://oauth2.googleapis.com/token)、必要な認可スコープ(https://www.googleapis.com/auth/geminidataanalytics と https://www.googleapis.com/auth/bigquery.readonly)を使用して、OAuth 2.0 クライアント認証情報(クライアント ID とクライアント シークレット)を構成します。
  3. ビジネス ユーザーは、エージェント プラットフォームで自然言語で質問します。このプラットフォームのルート エージェント(オーケストレーター LLM)は、未加工のデータベースに直接クエリを実行するのではなく、会話型分析 API リモート MCP サーバーと通信して、関連するデータ エージェントを検出し、ユーザーの質問を適切なスコープのデータ エージェントにルーティングして、合成された回答を返します。
ID 伝播

リクエストがサードパーティまたは外部のルート エージェントから送信された場合に、エンタープライズ データ ガバナンスを維持するため、リモート MCP サーバーはエンドツーエンドの ID 伝播を適用します。

  • ユーザー委任認証: ビジネス ユーザーがルート エージェントを操作すると、エージェント プラットフォームは 3-legged OAuth 2.0 フローを介してユーザーを認証し、MCP ゲートウェイに送信されるリクエストの HTTP ヘッダーにユーザー委任 OAuth アクセス トークンを含めます。
  • エンドユーザー認証情報(EUC)の転送: リモート MCP サーバーはトークンを検証し、会話型分析 API レイヤを介してエンドユーザー認証情報を BigQuery、Spanner、AlloyDB、Cloud SQL などの基盤となるデータエンジンに伝播します。
  • 管理されたデータアクセス: クエリは、共有サービス アカウントではなく、認証済みユーザーの ID を使用して実行されるため、基盤となるデータソースは、既存の IAM 権限、行レベルと列レベルのセキュリティ ポリシー、管理されたデータアクセスの境界を自動的に適用します。ユーザーは、すでにアクセス権を持っているデータ エージェントとクエリ データセットのみを検出できます。
  • Looker の 2 つの ID モデル: BigQuery と運用データベースの場合、クエリは個々のユーザーの転送された Google OAuth 認証情報で実行されます。Looker を基盤とするデータ エージェントの場合、認証には 2 つの ID モデルが使用されます。ユーザーの Google OAuth トークンは、Google IAM のデータ エージェントへのアクセスを認可しますが、クエリは Looker API ユーザーに提供された認証情報(チャットツールの認証情報ブロックで渡される)を使用して Looker で実行されます。Looker モデルのアクセス、権限、行レベルのルールには、個々のエンドユーザーの Looker ID ではなく、構成された API ユーザーが反映されます。
ルート エージェントが API メソッドにアクセスする方法

MCP クライアントが https://geminidataanalytics.googleapis.com/mcp に接続すると、標準の MCP tools/list メソッドを呼び出して、会話型分析 API によって公開されているツールスキーマを動的にインポートします。ルート エージェントは、これらの MCP ツールとリソースを呼び出して会話型分析 API とやり取りします。これらのツールとリソースは、基盤となる REST API メソッドに直接マッピングされます。

MCP ツールまたはリソース マッピングされた会話型分析 API メソッド ルート エージェントが使用する方法
list_data_agents projects.locations.dataAgents.list

使用可能なデータ エージェントを検出します。ルート エージェントは、ターゲット PROJECT_ID(および LOCATION)を渡し、ユーザーがアクセスを許可されているアクティブなデータ エージェントのリスト(各エージェントの ID と説明を含む)を受け取ります。ルート エージェントは、これらの説明を評価して、ユーザーの質問に回答できるデータ エージェントを決定します。

ヒント: ルート エージェントがビジネス ユーザーにプロジェクト ID の入力を求めないように、ルート エージェントのカスタム システム指示にターゲット PROJECT_ID を含めます。

get_data_agent

(または gda://agents/AGENT_ID MCP リソース)

projects.locations.dataAgents.get

特定のデータ エージェントのメタデータとコンテキストを検査します。ルート エージェントは、エージェントの説明だけでは複雑なプロンプトをルーティングできない場合に、ターゲット AGENT_ID を渡して、接続された BigQuery テーブル、システム指示、用語集、検証済みクエリなどの構成の詳細を取得します。

chat projects.locations.chat

会話型クエリの実行プロキシとして機能します。検出されたデータ エージェントにクエリを実行するには、ルート エージェントが、エージェントの完全なリソース名(projects/PROJECT_ID/locations/LOCATION/dataAgents/AGENT_ID)を含む data_agent_context と、messages 内のユーザーの自然言語メッセージを渡します。ステートレスなアドホック クエリの場合、ルート エージェントは代わりに inline_context を渡すことができます。このツールは、自然言語の回答、生成された SQL クエリ、結果行、Vega-Lite グラフ仕様、エージェントの推論を返します。

データベース向け MCP ツールボックス

会話型分析 API には、オープンソースの データベース向け MCP ツールボックス サーバーからアクセスすることもできます。このサーバーは、会話型分析 API の chat メソッドを公開する、MCP 互換の事前構築済みツールを提供します。

MCP は、会話型分析 API の個別の実行モデルではなく、分析機能をツールとして MCP 互換クライアントに公開する相互運用性レイヤです。

スタンドアロン アーキテクチャと ADK アーキテクチャの MCP 実装パターン

MCP は、次のパターンで実装できます。

パターン 詳細
スタンドアロン MCP(ADK なし)

データベース向け MCP ツールボックス サーバーをスタンドアロン サーバーとして使用して、MCP 準拠のクライアントに接続します。このパターンは、次のタスクでよく使用されます。

  • IDE 統合: Antigravity、Cursor、VS Code などの IDE をサーバーに接続して、エディタから会話形式でデータをクエリします。
  • カスタム MCP クライアント: サーバーを使用して、複数の AI プロバイダにわたって統一されたツール インターフェースを提供するアプリケーションを構築します。
  • Gemini CLI: CLI を MCP クライアントとして使用して、ターミナルベースのデータ会話を行います。
ADK 内の MCP

ADK フレームワークには、MCP サーバーをエージェント ワークフローに統合するための次のメカニズムが用意されています。

  • ToolboxToolset: 複数の認証方法をサポートする、データベース向け MCP ツールボックス サーバー専用のバリアント。
  • McpToolset: ローカルまたはリモートの MCP サーバー接続を使用して、ADK エージェントを任意の MCP サーバーに接続します。サーバーのツールを自動的に検出し、エージェントに公開します。

また、FastMCP フレームワークを使用して MCP サーバーを構築し、ADK フレームワークで構築されたツールを MCP 準拠のクライアントに公開することもできます。この方法により、ADK エージェントを他のエコシステムでツールとして使用できるようになります。

アプリケーションの特定のアーキテクチャ要件を満たす統合パターンを選択します。

  • BigQueryToolset や DataAgentToolset などの組み込みの Agent Development Kit(ADK)ツールセットを使用すると、外部サーバーに依存することなく、より緊密な統合を実現できます。このアプローチは、ADK フレームワーク内に完全に存在するシステムに最適です。
  • MCP ツールボックスのツールを使用すると、MCP 準拠のクライアント間で相互運用性が実現します。このアプローチは、複数のコンシューマ アプリケーションまたはサードパーティ IDE にサービスを提供する必要があるデータツールに最適です。

水平方向のオーケストレーション(A2A)

Agent-to-Agent(A2A)プロトコルは、異なるシステム上の特化型エージェントが、カスタム統合コードを必要とせずに安全に通信し、連携できるようにするオープン スタンダードです。

システムがスケールするにつれて、組織は、異なるフレームワークやクラウド インフラストラクチャ上に構築された複数の専門エージェントをデプロイすることがよくあります。A2A は、これらの自律型エージェントに共通のメッセージング層を確立します。カスタム API を使用する代わりに、各エージェントはエージェント カードを公開します。これは、エージェントの機能、サポートされているデータ形式、セキュリティ要件を詳しく説明する、検出可能なプロファイルです。

中央オーケストレーターまたはピア エージェントが分析データを必要とする場合、構造化された A2A メッセージングを介して、データ エージェントにタスクを安全に委任します。データ エージェントはリクエストを自律的に処理して結果を返します。これにより、実行ロジックがリクエスト元から切り離されます。

A2A プロトコルを使用してエージェント カードを検出し、メッセージを送信し、構造化アーティファクトをストリーミングする方法については、A2A を使用してデータ エージェントをオーケストレートするをご覧ください。

統合パターンを選択する

次の表で、各統合パターンの複雑さ、ガバナンス、機能を比較します。

複雑さのレベルは次のように定義されます。

  • 低: 最小限のカスタムコードを必要とし、事前構築済みのユーザー インターフェースまたはツールに依存するパターン。
  • 中: カスタム フロントエンド開発と API または SDK の統合が必要だが、複雑なバックエンド オーケストレーション インフラストラクチャを回避するパターン。
  • 高: フルスタック アプリケーション開発、会話状態管理、複数の認証レイヤ、または中間オーケストレーター インフラストラクチャを必要とするパターン。
  • 変動: 選択した基盤となる統合方法によって複雑さが異なるパターン。
統合パターン 複雑さ カスタマイズ Agent Governance アクセス制御 マルチエージェント ストリーミング ポータビリティ
Looker iframe 埋め込み 低 低 Looker を通じて管理 Looker いいえ 組み込み Looker のみ
Looker API と SDK 中 高 Looker を通じて管理 Looker いいえ 組み込み Looker のみ
Looker ソースを使用した会話型分析 API 場合によって異なる 高 API を通じて管理 Looker と IAM ○ ○ すべての Google Cloud サービス
単一エージェント(直接 API) 中 高 API を通じて管理 IAM いいえ はい(サポート対象) すべての Google Cloud サービス
カスタム オーケストレーター 高 非常に高い API を通じて管理 IAM 手動 手動 すべての Google Cloud サービス
BigQueryToolset(ADK)を使用したスキーマ駆動型 低 中 なし(スキーマ推論) IAM はい(ADK) いいえ(ブロック) ADK エコシステム
DataAgentToolset(ADK)で管理 低 中 API を通じて管理 IAM はい(ADK) いいえ(ブロック) ADK エコシステム
カスタム ストリーミング サブエージェント(ADK) 高 非常に高い API を通じて管理 IAM はい(ADK) はい(カスタム) ADK エコシステム
スタンドアロン MCP 中 中 なし(スキーマ推論) IAM いいえ いいえ 任意の MCP クライアント
ADK 内の MCP 中 高 なし(スキーマ推論) IAM はい(ADK) いいえ ADK クライアントと MCP クライアント
A2A プロトコル 高 高 フレームワークに依存 IAM ○ ○ クロス プラットフォーム

次のステップ