このページでは、Google Chat で動作し、Agent2Agent(A2A)プロトコルを使用する AI エージェントと連携する Google Workspace アドオンを構築する方法について説明します。Agent Development Kit(ADK)を使用してエージェントを開発し、Vertex AI Agent Engine でホストします。
AI エージェントは、環境を自律的に認識し、推論を行い、定義された目標を達成するために複数のステップで構成される複雑なアクションを実行します。このチュートリアルでは、Gemini と Google 検索のグラウンディングを使用して事実を批判し、修正する LLM Auditor マルチエージェント サンプルをデプロイします。

次の図は、アーキテクチャとメッセージング パターンを示しています。
この図では、A2A エージェントで実装された Chat 用アプリを操作するユーザーの情報フローは次のようになります。
- ユーザーが、ダイレクト メッセージまたは Chat スペースで Chat 用アプリにメッセージを送信します。
- Apps Script または HTTP エンドポイントを持つウェブサーバーとして実装された Chat 用アプリのロジックが、メッセージを受信して処理します。
- Vertex AI Agent Engine でホストされている A2A エージェントが、インタラクションを受信して処理します。
- 必要に応じて、Chat 用アプリまたは AI エージェントを Google Workspace サービス(カレンダー、スプレッドシートなど)や、Google サービス(Google マップ、YouTube など)と統合できます。
- Chat 用アプリは、Google Chat API を使用して AI エージェントの進行状況を伝達し、非同期でレスポンスを送信します。
- 回答がユーザーに配信されます。
目標
- 環境をセットアップする。
- A2A エージェントをデプロイします。
- Chat 用アプリをデプロイします。
- Chat 用アプリを構成します。
- Chat 用アプリをテストします。
前提条件
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 課金を有効にした Google Cloud プロジェクト。既存のプロジェクトで課金が有効になっていることを確認するには、プロジェクトの課金ステータスを確認するをご覧ください。プロジェクトを作成して課金管理を設定するには、Google Cloud プロジェクトを作成するをご覧ください。
- LLM Auditor ADK エージェントの前提条件
- Python 3.11 以降: インストールについては、公式の Python ウェブサイトの手順に沿って操作してください。
- Python Poetry: インストールについては、Poetry の公式ウェブサイトの手順に沿って操作してください。
- Google Cloud CLI: インストールについては、Google Cloud の公式ウェブサイトの手順に沿って操作してください。
環境の設定
Google Cloud APIs を有効にする
Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。Google Cloud コンソールで、Google Chat、Vertex AI、Cloud Resource Manager の各 API を有効にします。
OAuth 同意画面を構成する
OAuth 2.0 を使用するすべてのアプリで、同意画面の構成が必要です。アプリの OAuth 同意画面を構成することで、ユーザーとアプリの審査担当者に表示されるものを定義し、後でアプリを公開できるようにアプリを登録します。
- Google Cloud コンソールで、メニュー > Google Auth platform > [ブランディング] に移動します。
- Google Auth platformをすでに構成している場合は、[ブランディング]、[対象]、[データアクセス] で次の OAuth 同意画面の設定を構成できます。[Google Auth platform まだ設定されていません] というメッセージが表示された場合は、[使ってみる] をクリックします。
- [アプリ情報] の [アプリ名] に、アプリの名前を入力します。
- [ユーザー サポートメール] で、ユーザーが同意について問い合わせる際に使用するサポートのメールアドレスを選択します。
- [続行] をクリックします。
- [対象] で [内部] を選択します。
- [続行] をクリックします。
- [連絡先情報] で、プロジェクトに対する変更の通知を受け取るメールアドレスを入力します。
- [続行] をクリックします。
- [完了] で、Google API サービスのユーザーデータに関するポリシーを確認し、同意する場合は [Google API サービス: ユーザーデータに関するポリシーに同意します] を選択します。
- [続行] をクリックします。
- [作成] をクリックします。
- 現時点では、スコープの追加はスキップできます。今後、Google Workspace 組織外で使用するアプリを作成する場合は、[ユーザータイプ] を [外部] に変更する必要があります。次に、アプリに必要な認可スコープを追加します。詳細については、OAuth 同意画面を構成するの完全なガイドをご覧ください。
Google Cloud コンソールでサービス アカウントを作成する
次の手順に沿って、ロール Vertex AI User を持つ新しいサービス アカウントを作成します。
Google Cloud コンソール
- Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- サービス アカウントの詳細を入力し、[作成して続行] をクリックします。
- 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
- [続行] をクリックします。
- 省略可: このサービス アカウントを管理してアクションを実行できるユーザーまたはグループを入力します。詳細については、サービス アカウントの権限借用を管理するをご覧ください。
- [完了] をクリックします。サービス アカウントのメールアドレスをメモします。
gcloud CLI
- サービス アカウントを作成します。
gcloud iam service-accounts createSERVICE_ACCOUNT_NAME\ --display-name="SERVICE_ACCOUNT_NAME" - 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
サービス アカウントが [サービス アカウント] ページに表示されます。
秘密鍵を作成する
サービス アカウントの秘密鍵を作成してダウンロードする手順は次のとおりです。
- Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。
- サービス アカウントを選択します。
- [鍵] > [鍵を追加] > [新しい鍵を作成] をクリックします。
- [JSON] を選択し、[作成] をクリックします。
新しい公開鍵と秘密鍵のペアが生成され、新しいファイルとしてパソコンにダウンロードされます。ダウンロードした JSON ファイルを作業ディレクトリに
credentials.jsonとして保存します。このファイルはこの鍵の唯一のコピーです。キーを安全に保存する方法については、サービス アカウント キーの管理をご覧ください。 - [閉じる] をクリックします。
サービス アカウントの詳細については、Google Cloud IAM ドキュメントのサービス アカウントをご覧ください。
A2A エージェントをデプロイする
まだ行っていない場合は、Google Cloud アカウントで認証し、Google Cloud プロジェクトを使用するように Google Cloud CLI を構成します。
gcloud auth application-default logingcloud config set project PROJECT_IDgcloud auth application-default set-quota-project PROJECT_IDPROJECT_ID は実際の Cloud プロジェクトの ID に置き換えます。
次のボタンを使用して、ADK サンプル GitHub リポジトリをダウンロードします。
任意のローカル開発環境で、ダウンロードしたアーカイブ ファイルを抽出し、
adk-samples/python/agents/llm-auditorディレクトリを開きます。unzip adk-samples-main.zipcd adk-samples-main/python/agents/llm-auditor実装を更新して、ADK エージェントを A2A リモート エージェントとしてデプロイします。
pyproject.toml: デプロイ グループに ADK と A2A SDK の依存関係を追加します。
deployment/deploy.py: ADK アプリのデプロイを A2A エージェントとカードに置き換えます。
ADK エージェント専用の新しい Cloud Storage バケットを作成します。
gcloud storage buckets create gs://CLOUD_STORAGE_BUCKET_NAME --project=PROJECT_ID --location=PROJECT_LOCATION次のように置き換えます。
- CLOUD_STORAGE_BUCKET_NAME は、使用する一意のバケット名に置き換えます。
- PROJECT_ID は実際の Cloud プロジェクトの ID に置き換えます。
- PROJECT_LOCATION は、Cloud プロジェクトのロケーションに置き換えます。
次の環境変数を設定します。
export GOOGLE_GENAI_USE_VERTEXAI=trueexport GOOGLE_CLOUD_PROJECT=PROJECT_IDexport GOOGLE_CLOUD_LOCATION=PROJECT_LOCATIONexport GOOGLE_CLOUD_STORAGE_BUCKET=CLOUD_STORAGE_BUCKET_NAME次のように置き換えます。
- CLOUD_STORAGE_BUCKET_NAME は、作成したバケットの名前に置き換えます。
- PROJECT_ID は実際の Cloud プロジェクトの ID に置き換えます。
- PROJECT_LOCATION は、Cloud プロジェクトのロケーションに置き換えます。
仮想環境から ADK エージェントをインストールしてデプロイします。
python3 -m venv myenvsource myenv/bin/activatepoetry install --with deploymentpython3 deployment/deploy.py --createエージェント ID を取得します。この情報は、後で Chat 用アプリを構成するときに必要になります。
python3 deployment/deploy.py --list
Chat 用アプリのプロジェクトを作成して構成する
次のボタンをクリックして、A2A AI エージェントのクイックスタート Apps Script プロジェクトを開きます。
[概要] >
[コピーを作成] をクリックします。
Apps Script プロジェクトで、
[プロジェクトの設定] > [スクリプトのプロパティを編集] > [スクリプトのプロパティを追加] をクリックして、次のスクリプトのプロパティを追加します。
REASONING_ENGINE_RESOURCE_NAMEは、前の手順でコピーした Vertex AI エージェントのリソース名に置き換えます。SERVICE_ACCOUNT_KEYは、前の手順でダウンロードしたサービス アカウントの JSON キー({ ... }など)に置き換えます。
[スクリプト プロパティを保存] をクリックします。
Google Cloud コンソールで、メニュー アイコン > [IAM と管理] > [設定] に移動します。
[プロジェクト番号] フィールドで、値をコピーします。
Apps Script プロジェクトで、
[プロジェクトの設定] をクリックします。
[Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
[GCP プロジェクト番号] に、前の手順でコピーした Google Cloud プロジェクト番号を貼り付けます。
[プロジェクトを設定] をクリックします。これで、Cloud プロジェクトと Apps Script プロジェクトが接続されました。
テスト デプロイを作成する
次のステップで使用できるように、この Apps Script プロジェクトのデプロイ ID が必要です。
ヘッド デプロイ ID を取得するには、次の操作を行います。
- Chat 用アプリの Apps Script プロジェクトで、[デプロイ] > [デプロイをテスト] をクリックします。
- [ヘッド デプロイ ID] で、
[コピー] をクリックします。
- [完了] をクリックします。
Chat 用アプリを構成する
Apps Script のデプロイを使用して、次の手順でテスト用の Google Chat アプリをデプロイします。
- コンソールで
Google Chat APIを検索し、[Google Chat API] をクリックします。 - [管理] をクリックします。
[構成] をクリックして、Chat 用アプリを設定します。
- [アプリ名] フィールドに「
A2A Quickstart」と入力します。 - [アバターの URL] フィールドに「
https://developers.google.com/workspace/add-ons/images/quickstart-app-avatar.png」と入力します。 - [説明] フィールドに「
A2A Quickstart」と入力します。 - [機能] で、[スペースとグループの会話に参加する] を選択します。
- [接続設定] で [Apps Script プロジェクト] を選択します。
- [Deployment ID] フィールドに、先ほどコピーした Head デプロイ ID を貼り付けます。
- [公開設定] で、[ドメイン内の特定のユーザーとグループ] を選択し、メールアドレスを入力します。
- [アプリ名] フィールドに「
[保存] をクリックします。
Chat アプリでメッセージに返信できるようになりました。
Chat アプリをテストする
Chat 用アプリをテストするには、Chat 用アプリとのダイレクト メッセージ スペースを開いてメッセージを送信します。
信頼できるテスターとして登録した際に指定した Google Workspace アカウントを使用して、Google Chat を開きます。
- [ チャットを新規作成] をクリックします。
- [ユーザーを 1 人以上追加] フィールドに、Chat 用アプリの名前を入力します。
検索結果から Chat 用アプリを選択します。ダイレクト メッセージが開きます。
そのアプリの新しいダイレクト メッセージに、「
The Eiffel Tower was completed in 1900」と入力してenterを押します。Chat 用アプリは、批評家と校正者のサブエージェントのレスポンスで返信します。
信頼できるテスターを追加してインタラクティブ機能のテストについて詳しくは、Google Chat 用アプリのインタラクティブ機能をテストするをご覧ください。
トラブルシューティング
Google Chat 用アプリまたはカードがエラーを返すと、Chat インターフェースに「エラーが発生しました」というメッセージが表示されます。または「リクエストを処理できません。」と表示されます。Chat UI にエラー メッセージが表示されない場合でも、Chat 用アプリやカードで予期しない結果が生じることがあります。たとえば、カード メッセージが表示されないことがあります。
Chat UI にエラー メッセージが表示されない場合でも、Chat 用アプリのエラー ロギングが有効になっている場合は、エラーの修正に役立つ説明的なエラー メッセージとログデータを利用できます。エラーの表示、デバッグ、修正については、Google Chat のエラーのトラブルシューティングと修正をご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
関連トピック
- ADK AI エージェントを使用して Google Chat 用アプリを構築する
- ADK AI エージェントと Gemini モデルを使用してステートメントのファクト チェックを行う
- Google Workspace 全体で利用できる AI エージェントで旅行を計画する
- Chat 用アプリに AI の基本的なコンセプトを統合する
- Gemini AI Chat アプリで Chat の会話に基づいて質問に回答する
- Google Chat、Vertex AI、Apps Script、ユーザー認証を使用してインシデントに対応する
- Google Chat、Vertex AI、Firestore でプロジェクトを管理する