ADK AI エージェントを使用して Google Chat 用アプリを構築する

このページでは、Google Chat で動作し、Vertex AI Agent Engine でホストされている Agent Development Kit(ADK)AI エージェントと連携する Google Workspace アドオンを構築する方法について説明します。

AI エージェントは、環境を自律的に認識し、推論し、定義された目標を達成するために複数のステップで構成される複雑なアクションを実行します。このチュートリアルでは、Gemini と Google 検索のグラウンディングを使用して事実を批判し、修正する ADK LLM Auditor マルチエージェント サンプルをデプロイします。

Chat 用アプリとしての LLM Auditor マルチエージェント サンプル。

次の図は、アーキテクチャとメッセージング パターンを示しています。

ADK AI エージェントで実装された Chat 用アプリのアーキテクチャ。

上の図では、ADK AI エージェントで実装された Chat 用アプリを操作するユーザーに対して、次のような情報の流れが発生します。

  1. ユーザーが、ダイレクト メッセージまたは Chat スペースで Chat 用アプリにメッセージを送信します。
  2. Apps Script または HTTP エンドポイントを持つウェブサーバーとして実装された Chat 用アプリのロジックが、メッセージを受信して処理します。
  3. ADK で実装され、Vertex AI Agent Engine でホストされている AI エージェントが、インタラクションを受信して処理します。
  4. 必要に応じて、Chat 用アプリまたは AI エージェントを Google Workspace サービス(カレンダー、スプレッドシートなど)や、Google サービス(Google マップ、YouTube など)と統合できます。
  5. Chat 用アプリは、Google Chat API を使用して非同期でレスポンスを送信し、AI エージェントの進行状況を伝えます。
  6. 回答がユーザーに配信されます。

目標

  • 環境をセットアップする。
  • ADK AI エージェントをデプロイします。
  • Chat 用アプリをデプロイします。
  • Chat 用アプリを構成します。
  • Chat 用アプリをテストします。

前提条件

環境の設定

Google Cloud APIs を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。
  • Google Cloud コンソールで、Google Chat、Vertex AI、Cloud Resource Manager の各 API を有効にします。

    API を有効にする

OAuth 同意画面を構成する

OAuth 2.0 を使用するすべてのアプリで、同意画面の構成が必要です。アプリの OAuth 同意画面を構成することで、ユーザーとアプリの審査担当者に表示されるものを定義し、後でアプリを公開できるようにアプリを登録します。

  1. Google Cloud コンソールで、メニュー > Google Auth platform > [ブランディング] に移動します。

    [ブランディング] に移動

  2. Google Auth platformをすでに構成している場合は、[ブランディング]、[対象ユーザー]、[データアクセス] で次の OAuth 同意画面の設定を構成できます。[Google Auth platform まだ設定されていません] というメッセージが表示された場合は、[使ってみる] をクリックします。
    1. [アプリ情報] の [アプリ名] に、アプリの名前を入力します。
    2. [ユーザー サポートメール] で、ユーザーが同意について問い合わせる際に使用するサポートのメールアドレスを選択します。
    3. [続行] をクリックします。
    4. [対象] で [内部] を選択します。
    5. [続行] をクリックします。
    6. [連絡先情報] で、プロジェクトに対する変更の通知を受け取るメールアドレスを入力します。
    7. [続行] をクリックします。
    8. [完了] で、Google API サービスのユーザーデータに関するポリシーを確認し、同意する場合は [Google API サービス: ユーザーデータに関するポリシーに同意します] を選択します。
    9. [続行] をクリックします。
    10. [作成] をクリックします。
  3. 現時点では、スコープの追加はスキップできます。今後、Google Workspace 組織外で使用するアプリを作成する場合は、[ユーザータイプ] を [外部] に変更する必要があります。次に、アプリに必要な認可スコープを追加します。詳細については、OAuth 同意画面を構成するの完全なガイドをご覧ください。

Google Cloud コンソールでサービス アカウントを作成する

次の手順に沿って、ロール Vertex AI User を持つ新しいサービス アカウントを作成します。

Google Cloud コンソール

  1. Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. [サービス アカウントを作成] をクリックします。
  3. サービス アカウントの詳細を入力し、[作成して続行] をクリックします。
  4. 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
  5. [続行] をクリックします。
  6. 省略可: このサービス アカウントを管理してアクションを実行できるユーザーまたはグループを入力します。詳細については、サービス アカウントの権限借用を管理するをご覧ください。
  7. [完了] をクリックします。サービス アカウントのメールアドレスをメモします。

gcloud CLI

  1. サービス アカウントを作成します。
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。

サービス アカウントが [サービス アカウント] ページに表示されます。

秘密鍵を作成する

サービス アカウントの秘密鍵を作成してダウンロードする手順は次のとおりです。

  1. Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。

    [サービス アカウント] に移動

  2. サービス アカウントを選択します。
  3. [] > [鍵を追加] > [新しい鍵を作成] をクリックします。
  4. [JSON] を選択し、[作成] をクリックします。

    新しい公開鍵と秘密鍵のペアが生成され、新しいファイルとしてパソコンにダウンロードされます。ダウンロードした JSON ファイルを作業ディレクトリに credentials.json として保存します。このファイルはこの鍵の唯一のコピーです。キーを安全に保存する方法については、サービス アカウント キーの管理をご覧ください。

  5. [閉じる] をクリックします。

サービス アカウントの詳細については、Google Cloud IAM ドキュメントのサービス アカウントをご覧ください。

ADK AI エージェントをデプロイする

  1. Vertex AI Agent Garden で LLM Auditor サンプルを開きます。

    サンプルを開く

  2. [デプロイ] をクリックします。

  3. 確認を求められたら、Google Cloud プロジェクトを選択します。

  4. [Cloud Shell にデプロイ] をクリックします。

  5. 求められたら、[承認] をクリックして、Cloud Shell の OAuth フローを実行します。

  6. Cloud Shell が完全に読み込まれたら、Enter キーを押して、プリロードされたコマンドラインを実行し、デプロイを開始します。

  7. リージョンを入力するよう求められたら、Enter キーを押してデフォルトを使用します。

  8. 完了したら、Vertex AI Agent Engine に移動します。

    Vertex AI Agent Engine を開く

  9. コピーを作成するためのアイコン をクリックして、新しくデプロイされたエージェントのリソース名をテーブルからコピーします。

Chat 用アプリのプロジェクトを作成して構成する

  1. 次のボタンをクリックして、ADK AI エージェントのクイックスタート Apps Script プロジェクトを開きます。

    プロジェクトを開く

  2. [概要] > コピーを作成するためのアイコン [コピーを作成] をクリックします。

  3. Apps Script プロジェクトで、プロジェクト設定のアイコン [プロジェクトの設定] > [スクリプトのプロパティを編集] > [スクリプトのプロパティを追加] をクリックして、次のスクリプトのプロパティを追加します。

    1. REASONING_ENGINE_RESOURCE_NAME は、前の手順でコピーした Vertex AI エージェントのリソース名に置き換えます。
    2. SERVICE_ACCOUNT_KEY は、前の手順でダウンロードしたサービス アカウントの JSON キー({ ... } など)に置き換えます。
  4. [スクリプト プロパティを保存] をクリックします。

  5. Google Cloud コンソールで、メニュー アイコン > [IAM と管理] > [設定] に移動します。

    [IAM と管理] の [設定] に移動

  6. [プロジェクト番号] フィールドで、値をコピーします。

  7. Apps Script プロジェクトで、プロジェクト設定のアイコン [プロジェクトの設定] をクリックします。

  8. [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。

  9. [GCP プロジェクト番号] に、前の手順でコピーした Google Cloud プロジェクト番号を貼り付けます。

  10. [プロジェクトを設定] をクリックします。これで、Cloud プロジェクトと Apps Script プロジェクトが接続されました。

テスト デプロイを作成する

次のステップで使用できるように、この Apps Script プロジェクトのデプロイ ID が必要です。

ヘッド デプロイ ID を取得するには、次の操作を行います。

  1. Chat 用アプリの Apps Script プロジェクトで、[デプロイ] > [デプロイをテスト] をクリックします。
  2. [ヘッド デプロイ ID] で、コピーを作成するためのアイコン [コピー] をクリックします。
  3. [完了] をクリックします。

Chat 用アプリを構成する

Apps Script のデプロイを使用して、次の手順でテスト用の Google Chat 用アプリをデプロイします。

  1. コンソールGoogle Chat API を検索し、[Google Chat API] をクリックします。
  2. [管理] をクリックします。
  3. [構成] をクリックして、Chat 用アプリを設定します。

    1. [アプリ名] フィールドに「ADK Quickstart」と入力します。
    2. [アバターの URL] フィールドに「https://developers.google.com/workspace/add-ons/images/quickstart-app-avatar.png」と入力します。
    3. [説明] フィールドに「ADK Quickstart」と入力します。
    4. [機能] で、[スペースとグループの会話に参加する] を選択します。
    5. [接続設定] で [Apps Script プロジェクト] を選択します。
    6. [Deployment ID] フィールドに、前にコピーした Head デプロイ ID を貼り付けます。
    7. [公開設定] で、[ドメイン内の特定のユーザーとグループ] を選択し、メールアドレスを入力します。
  4. [保存] をクリックします。

Chat アプリでメッセージに返信できるようになりました。

Chat アプリをテストする

Chat 用アプリをテストするには、Chat 用アプリとのダイレクト メッセージ スペースを開いてメッセージを送信します。

  1. 信頼できるテスターとして登録した際に指定した Google Workspace アカウントを使用して、Google Chat を開きます。

    Google Chat に移動

  2. [ チャットを新規作成] をクリックします。
  3. [ユーザーを 1 人以上追加] フィールドに、Chat 用アプリの名前を入力します。
  4. 結果から Chat 用アプリを選択します。ダイレクト メッセージが開きます。

  5. そのアプリの新しいダイレクト メッセージに、「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 プロジェクトを削除することをおすすめします。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。

    Resource Manager に移動します。

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。