Google Workspace 全体で利用できる AI エージェントで旅行を計画する

コーディング レベル: 上級
所要時間: 45 分
プロジェクト タイプ: ChatGmailカレンダードライブドキュメント、スプレッドシート、スライドを拡張する Google Workspace アドオン

このチュートリアルでは、Apps Script または HTTP エンドポイントを使用して、AI エージェントを Google Workspace アドオンとして Google Workspace に公開する方法について説明します。アドオンを公開すると、ユーザーはワークフロー内で AI エージェントを操作できるようになります。

概要

このチュートリアルでは、Agent Development Kit(ADK)から旅行コンシェルジュのサンプルをデプロイします。Travel Concierge は、Google Maps Platform Places API、Google 検索グラウンディング、Model Context Protocol(MCP)サーバーなどのツールを使用する会話型のマルチエージェント AI です。

ADK は、デフォルトでデベロッパー向けのチャット インターフェースとテキスト インターフェースを提供します。このチュートリアルでは、ユーザーが Chat、Gmail、カレンダー、ドライブ、ドキュメント、スプレッドシート、スライドで直接アクセスできる Google Workspace アプリケーションにグラフィカル ユーザー インターフェース(GUI)を追加します。

  • Chat の AI エージェントを使用して旅行のアイデアをブレインストーミングする。
    図 1. Chat の AI エージェントを使用して旅行のアイデアをブレインストーミングする。
  • Gmail の AI エージェントを使用して、選択したメールのコンテキストから旅行を計画する。
    図 2. Gmail の AI エージェントを使用して、選択したメールのコンテキストから旅行を計画する。

目標

  • 環境を設定します。
  • AI エージェントをデプロイします。
  • プロジェクトをセットアップします。
  • Gmail、カレンダー、ドライブ、ドキュメント、スプレッドシート、スライドにデプロイします。
  • Chat にデプロイします。
  • ソリューションをテストする。

このソリューションについて

このソリューションは、ADK、Google Cloud と Google Workspace APIsVertex AI Agent Engineカード フレームワークというコアテクノロジーに依存しています。

Chat アプリケーションと Chat 以外のアプリケーション(Gmail、カレンダー、ドライブ、ドキュメント、スプレッドシート、スライド)では、それぞれの機能と制限事項を考慮して、GUI が異なる設計になっています。

機能

Travel Concierge アプリケーションの次の機能は、すべての Google Workspace アプリケーションで共通です。

  • 永続的なユーザー セッション: セッションは永続性のために Vertex AI によって管理されます。各ユーザーは、すべての Workspace アプリケーションで 1 つのセッションを共有します。ユーザーはセッションを手動でリセットして、新しい会話を開始できます。

  • リッチ メッセージ: ユーザーがテキスト メッセージを送信し、リッチテキストとカード ウィジェットを含むレスポンスを受信します。

  • エラー処理: 予期しないエラーは、構成可能な再試行とレスポンスのステータスを使用して適切に処理されます。

Chat 用アプリには、次の追加機能があります。

  • マルチモーダル ユーザー メッセージ: ユーザーは、チャット スペースから直接録音した音声や動画などの添付ファイル付きのメッセージを送信できます。

  • 視覚的に高度なレスポンス: カード フレームワークのチャット専用機能とより広いレンダリング スペースを利用することで、画像付きカルーセルなどの高度なウィジェットを使用してレスポンスを生成できます。

他のアプリケーションには、次の追加機能があります。

  • Google プロフィールのコンテキスト: ユーザーは、プロフィール情報(このサンプルでは生年月日のみ)を含むメッセージを送信できます。

  • Gmail のコンテキスト: ユーザーはメールでメッセージを送信できます(このサンプルでは件名と本文は 1 つに制限されています)。

  • エージェントの Chat スペースへのアクセス: ボタンを 1 回クリックするだけで、Chat アプリのダイレクト メッセージ(DM)スペースを新しいタブで開くことができます。

アーキテクチャ

Travel Concierge アプリケーションは、Google Workspace アプリケーションから Google Workspace アドオンのインタラクション イベントを受信して処理し、Vertex AI を使用して ADK AI エージェントをプロンプトし、ユーザー セッションを管理します。また、Google Cloud と Google Workspace の API を使用してコンテキストを収集し、レスポンスを表示します。

次の図は、AI エージェントにメッセージを送信するという主なユーザーフローを示しています。

HTTP

  • Chat 用アプリのアーキテクチャ図。
    図 3. Chat 用アプリは、ユーザー メッセージの添付ファイルでコンテキストを完成させ、サブエージェントのやり取りの履歴と最終的な全体的な回答を含む一連のメッセージを時系列順に送信します。
  • Chat 以外のアプリケーションのアーキテクチャ図。
    図 4. Chat 以外のアプリケーションは、ユーザーの Google プロフィールとアイテムの選択でコンテキストを完成させ、サブエージェントのやり取りの履歴と最終的な全体的な回答を含む一連のセクションを逆時系列順に表示します。

Apps Script

  • Chat 用アプリのアーキテクチャ図。
    図 3. Chat 用アプリは、ユーザー メッセージの添付ファイルでコンテキストを完成させ、サブエージェントのやり取りの履歴と最終的な全体的な回答を含む一連のメッセージを時系列順に送信します。
  • Chat 以外のアプリケーションのアーキテクチャ図。
    図 4. Chat 以外のアプリケーションは、ユーザーの Google プロフィールとアイテムの選択でコンテキストを完成させ、サブエージェントのやり取りの履歴と最終的な全体的な回答を含む一連のセクションを逆時系列順に表示します。

前提条件

環境を準備する

このセクションでは、Google Cloud プロジェクトを作成して構成する方法について説明します。

Google Cloud プロジェクトを作成する

Google Cloud コンソール

  1. Google Cloud コンソールで、メニュー > [IAM と管理] > [プロジェクトを作成] に移動します。

    [Create a Project] に移動

  2. [プロジェクト名] フィールドに、プロジェクトのわかりやすい名前を入力します。

    省略可: [プロジェクト ID] を編集するには、[編集] をクリックします。プロジェクトの作成後にプロジェクト ID を変更することはできないため、プロジェクトのライフタイムを考慮してニーズに合った ID を指定してください。

  3. [ロケーション] フィールドで、[参照] をクリックして、プロジェクトの候補となるロケーションを表示します。[選択] をクリックします。
  4. [作成] をクリックします。Google Cloud コンソールが [ダッシュボード] ページに移動し、数分以内にプロジェクトが作成されます。

gcloud CLI

次のいずれかの開発環境で、Google Cloud CLI(gcloud)にアクセスします。

  • Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
    Cloud Shell をアクティブにする
  • ローカルシェル: ローカル開発環境を使用するには、gcloud CLI をインストールして初期化します。
    Cloud プロジェクトを作成するには、gcloud projects create コマンドを使用します。
    gcloud projects create PROJECT_ID
    作成するプロジェクトの ID を設定して、PROJECT_ID を置き換えます。

Cloud プロジェクトに対する課金を有効にする

Google Cloud コンソール

  1. Google Cloud コンソールで、[お支払い] に移動します。[メニュー] > [お支払い] > [マイ プロジェクト] をクリックします。

    [マイ プロジェクトの課金] に移動

  2. [組織を選択] で、Google Cloud プロジェクトに関連付けられている組織を選択します。
  3. プロジェクトの行で、[アクション] メニュー()を開き、[お支払い情報を変更] をクリックして、Cloud 請求先アカウントを選択します。
  4. [アカウントを設定] をクリックします。

gcloud CLI

  1. 使用可能な請求先アカウントを一覧表示するには、次のコマンドを実行します。
    gcloud billing accounts list
  2. 請求先アカウントを Google Cloud プロジェクトにリンクします。
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    次のように置き換えます。

    • PROJECT_ID は、課金を有効にする Cloud プロジェクトのプロジェクト ID です。
    • BILLING_ACCOUNT_ID は、Google Cloud プロジェクトにリンクする請求先アカウント ID です。

Google Cloud APIs を有効にする

HTTP

  1. Google Cloud コンソールで、Vertex AI、Places、People、Google Chat、Gmail、Cloud Build、Cloud Functions、Cloud Pub/Sub、Cloud Logging、Artifact Registry、Cloud Run、Google Workspace アドオンの各 API を有効にします。

    API を有効にする

  2. 正しい Cloud プロジェクトで API を有効にしていることを確認し、[次へ] をクリックします。

  3. 正しい API を有効にしていることを確認し、[有効にする] をクリックします。

Apps Script

  1. Google Cloud コンソールで、Vertex AI、Places、People、Google Chat の各 API を有効にします。

    API を有効にする

  2. 正しい Cloud プロジェクトで API を有効にしていることを確認し、[次へ] をクリックします。

  3. 正しい API を有効にしていることを確認し、[有効にする] をクリックします。

Google Maps Platform Places API キーを取得する

  1. Google Cloud コンソールで、[Google Maps Platform] > [キーと認証情報] ページに移動します。

    [鍵と認証情報] に移動

  2. [Google Maps Platform を使ってみる] ダイアログに、新しく作成された API キー(英数字の文字列)が表示されます。この文字列は以降のセクションで必要になります。

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 ドキュメントのサービス アカウントをご覧ください。

Google Workspace アドオンには同意画面の構成が必要です。アドオンの OAuth 同意画面を構成すると、Google がユーザーに表示する内容が定義されます。

  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 同意画面を構成するの完全なガイドをご覧ください。

旅行コンシェルジュ ADK AI エージェントをデプロイする

  1. まだ行っていない場合は、Google Cloud アカウントで認証し、Google Cloud プロジェクトを使用するように Google Cloud CLI を構成します。

    gcloud auth application-default login
    gcloud config set project PROJECT_ID
    gcloud auth application-default set-quota-project PROJECT_ID

    PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。

  2. この GitHub リポジトリをダウンロードする

    ダウンロード

  3. 任意のローカル開発環境で、ダウンロードしたアーカイブ ファイルを抽出し、adk-samples/python/agents/travel-concierge ディレクトリを開きます。

    unzip adk-samples-main.zip
    cd adk-samples-main/python/agents/travel-concierge
  4. ADK AI エージェント専用の新しい Cloud Storage バケットを作成します。

    gcloud storage buckets create gs://CLOUD_STORAGE_BUCKET_NAME --project=PROJECT_ID --location=PROJECT_LOCATION

    次のように置き換えます。

    1. CLOUD_STORAGE_BUCKET_NAME は、使用する一意のバケット名に置き換えます。
    2. PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。
    3. PROJECT_LOCATION は、作成した Cloud プロジェクトのロケーションに置き換えます。
  5. 次の環境変数を設定します。

    export GOOGLE_GENAI_USE_VERTEXAI=1
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    export GOOGLE_CLOUD_LOCATION=PROJECT_LOCATION
    export GOOGLE_PLACES_API_KEY=PLACES_API_KEY
    export GOOGLE_CLOUD_STORAGE_BUCKET=CLOUD_STORAGE_BUCKET_NAME
    export TRAVEL_CONCIERGE_SCENARIO=travel_concierge/profiles/itinerary_empty_default.json

    次のように置き換えます。

    1. PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。
    2. PROJECT_LOCATION は、作成した Cloud プロジェクトのロケーションに置き換えます。
    3. PLACES_API_KEY は、作成した API キーの文字列に置き換えます。
    4. CLOUD_STORAGE_BUCKET_NAME は、作成したバケットの名前に置き換えます。
  6. ADK AI エージェントをインストールしてデプロイします。

    uv sync --group deployment
    uv run python deployment/deploy.py --create
  7. 最後に印刷されたログからプロジェクト番号とエンジン ID をそれぞれ PROJECT_NUMBERENGINE_ID として取得します。後でプロジェクトを構成する際に両方が必要になります。

    Created remote agent: projects/PROJECT_NUMBER/locations/us-central1/reasoningEngines/ENGINE_ID

サンプルコードを確認する

必要に応じて、プロジェクトを設定する前に、GitHub でホストされているサンプルコードを確認して、内容を把握してください。

プロジェクトを作成して構成する

Python

  1. この GitHub リポジトリをダウンロードする

    ダウンロード

  2. 任意のローカル開発環境で、ダウンロードしたアーカイブ ファイルを抽出し、add-ons-samples/python/travel-adk-ai-agent ディレクトリを開きます。

    unzip add-ons-samples-main.zip
    cd add-ons-samples-main/python/travel-adk-ai-agent
  3. 前の手順でダウンロードしたサービス アカウントから、JSON キーファイル credentials.json をプロジェクト ディレクトリに移動します。

  4. Google Cloud コンソールで、[Cloud Run] に移動します。

    Cloud Run に移動

  5. [関数を作成] をクリックします。

  6. [サービスの作成] ページで、関数を設定します。

    1. [サービス名] フィールドに「travel-concierge-app」と入力します。
    2. [リージョン] リストで、作成した Cloud プロジェクトのロケーション PROJECT_LOCATION を選択します。
    3. [エンドポイント URL] で、コピーを作成するためのアイコン をクリックします。
    4. [ランタイム] リストで、最新バージョンの Python を選択します。
    5. [認証] セクションで、[公開アクセスを許可する] を選択します。
    6. [コンテナ、ボリューム、ネットワーキング、セキュリティ] セクションの [リソース] で、次の操作を行います。
      1. [メモリ] フィールドで [1 GiB] を選択します。
      2. [CPU] フィールドで、[2] を選択します。
    7. [作成] をクリックし、Cloud Run がサービスを作成するのを待ちます。コンソールによって [ソース] タブにリダイレクトされます。
  7. 任意のローカル開発環境で、プロジェクトのソースをデプロイします。

    gcloud run deploy travel-concierge-app --quiet --source . \
        --region PROJECT_LOCATION  \
        --function adk_ai_agent  \
        --set-env-vars LOCATION=LOCATION,PROJECT_NUMBER=PROJECT_NUMBER,ENGINE_ID=ENGINE_ID,BASE_URL=BASE_URL

    次のように置き換えます。

    1. PROJECT_LOCATION は、以前に作成した Cloud Run 関数のロケーションに置き換えます。
    2. LOCATION は、前の手順で作成した Google Cloud プロジェクトのロケーション PROJECT_LOCATION です。
    3. PROJECT_NUMBER は、前の手順でデプロイした Travel Concierge ADK AI エージェントのプロジェクト番号に置き換えます。
    4. ENGINE_ID は、前の手順でデプロイした Travel Concierge ADK AI エージェントのエンジン ID に置き換えます。
    5. BASE_URL は、先ほどコピーしたエンドポイント URL に置き換えます。

Apps Script

Apps Script プロジェクトを作成し、デプロイされた Travel Concierge ADK AI エージェントを使用するように構成するには:

  1. 次のボタンをクリックして、Travel Concierge ADK AI Agent Apps Script プロジェクトを開きます。
    プロジェクトを開く

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

  3. Apps Script プロジェクトのコピーに名前を付けます。

    1. [Copy of Travel Concierge ADK AI Agent] をクリックします。
    2. [プロジェクトのタイトル] に「Travel Concierge ADK AI Agent」と入力します。
    3. [名前を変更] をクリックします。
  4. Apps Script プロジェクトで、プロジェクト設定のアイコン [エディタ] をクリックし、ファイル アクション [ファイルを上に移動] を使用して、ファイル VertexAi.gs をファイル AgentHandler.gs の上に移動します。

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

  6. ENGINE_ID: 前の手順でデプロイした Travel Concierge ADK AI エージェントのエンジン ID(ENGINE_ID)。

  7. LOCATION: 前の手順で作成した Google Cloud プロジェクトのロケーション(PROJECT_LOCATION)。

  8. PROJECT_NUMBER: 前の手順でデプロイした Travel Concierge ADK AI エージェントのプロジェクト番号 PROJECT_NUMBER

  9. SERVICE_ACCOUNT_KEY は、前の手順でダウンロードしたサービス アカウントの JSON キー({ ... } など)に置き換えます。

  10. [スクリプト プロパティを保存] をクリックします。

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

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

  13. [GCP プロジェクト番号] に、前の手順でデプロイした Travel Concierge ADK AI エージェントのプロジェクト番号 PROJECT_NUMBER を貼り付けます。

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

Gmail、カレンダー、ドライブ、ドキュメント、スプレッドシート、スライドにデプロイする

Python

Google Workspace アドオンのデプロイを使用して、すべての Google Workspace アプリケーション(Google Chat を除く)にサンプル プロジェクトをインストールし、テストを有効にします。

  1. 任意のローカル開発環境で、プロジェクトのコードソースから deployment.json ファイルを開き、$BASE_URL のすべての出現箇所を、前の手順でコピーした エンドポイント URL である BASE_URL の値に置き換えます。

  2. travel-concierge-addon という名前の Google Workspace アドオンのデプロイを作成します。

    gcloud workspace-add-ons deployments create travel-concierge-addon \
        --deployment-file=deployment.json
  3. Google Workspace アドオンのデプロイをインストールします。

    gcloud workspace-add-ons deployments install travel-concierge-addon

Apps Script

テストを有効にするため、Apps Script プロジェクトをすべての Google Workspace アプリケーション(Google Chat を除く)にインストールします。

  1. Apps Script プロジェクトで、[デプロイ] > [デプロイをテスト] をクリックし、[インストール] をクリックします。

アドオンは Google Workspace アプリケーションのサイドバーからアクセスできるようになりました。

Chat にデプロイする

Python

エンドポイント URL を使用してサンプル プロジェクトを Chat にインストールし、テストを有効にします。

  1. コンソールGoogle Chat API を検索し、[Google Chat API]、[管理]、[構成] の順にクリックします。

    Google Chat API の構成ページに移動

  2. Chat 用アプリを設定します。

    1. [アプリ名] フィールドに「Travel ADK AI Agent」と入力します。
    2. [アバターの URL] フィールドに「https://goo.gle/3SfMkjb」と入力します。
    3. [説明] フィールドに「Travel ADK AI Agent」と入力します。
    4. [接続設定] で、[HTTP エンドポイント URL] を選択します。
    5. [トリガー] で、[すべてのトリガーに共通の HTTP エンドポイント URL を使用する] を選択します。
    6. [HTTP エンドポイント URL] フィールドに、前にコピーしたエンドポイント URLBASE_URL)を貼り付けます。
    7. 完全に実装された Chat 用アプリが使用するクイック コマンドを登録します。
      1. [コマンド] で、[コマンドを追加] をクリックします。
      2. [コマンド ID] に「1」と入力します。
      3. [説明] に「Reset session」と入力します。
      4. [コマンドの種類] で [クイック コマンド] を選択します。
      5. [名前] に「Reset session」と入力します。
      6. [完了] をクリックします。クイック コマンドが登録され、一覧表示されます。
    8. [公開設定] で、[Workspace ドメイン内の特定のユーザーおよびグループにこの Chat 用アプリの利用を許可する] を選択し、メールアドレスを入力します。
    9. [ログ] で、[エラーを Logging にロギング] を選択します。
    10. [保存] をクリックします。

Apps Script

ヘッドデプロイ ID を使用して Apps Script プロジェクトを Chat にインストールし、テストを有効にします。

  1. Apps Script プロジェクトで、[デプロイ] > [デプロイをテスト] をクリックし、[ヘッドデプロイ ID] の下の ヘッドデプロイ ID のコピーアイコン [コピー] をクリックします。

  2. コンソールGoogle Chat API を検索し、[Google Chat API]、[管理]、[構成] の順にクリックします。

    Google Chat API の構成ページに移動

  3. Chat 用アプリを設定します。

    1. [アプリ名] フィールドに「Travel ADK AI Agent」と入力します。
    2. [アバターの URL] フィールドに「https://goo.gle/3SfMkjb」と入力します。
    3. [説明] フィールドに「Travel ADK AI Agent」と入力します。
    4. [接続設定] で [Apps Script] を選択します。
    5. [デプロイ ID] フィールドに、前にコピーしたヘッド デプロイ ID を貼り付けます。
    6. 完全に実装された Chat 用アプリが使用するクイック コマンドを登録します。
      1. [コマンド] で、[コマンドを追加] をクリックします。
      2. [コマンド ID] に「1」と入力します。
      3. [説明] に「Reset session」と入力します。
      4. [コマンドの種類] で [クイック コマンド] を選択します。
      5. [名前] に「Reset session」と入力します。
      6. [完了] をクリックします。クイック コマンドが登録され、一覧表示されます。
    7. [公開設定] で、[Workspace ドメイン内の特定のユーザーおよびグループにこの Chat 用アプリの利用を許可する] を選択し、メールアドレスを入力します。
    8. [ログ] で、[エラーを Logging にロギング] を選択します。
    9. [保存] をクリックします。

これで、Google Chat からアプリにアクセスできるようになりました。

  1. Google Chat を開きます。

    Google Chat に移動

  2. Chat の DM スペースを作成します。

    1. [ 新しいチャット] をクリックします。
    2. 検索でアプリ Travel ADK AI Agent を入力して選択します。
    3. [Install app] ダイアログで、[アプリをインストール] をクリックします。
    4. Install app ダイアログが閉じ、新しく作成された Chat の DM スペースが選択されます。

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

エージェントをテストする

  1. Gmail を起動します。

    Gmail に移動

  2. 次のメールを自分宛てに送信します。

    • 件名: You need to travel to Paris
    • 本文: Please be there between 11/25/2025 and 11/30/2025!
  3. サイドバーから Travel ADK AI Agent アドオンを開きます。

  4. [権限を付与] をクリックして、アドオンの設定を完了します。

  5. エージェントへのリクエストを次のように設定してから、[送信] をクリックします。

    • メッセージ: Please help me plan this travel!
    • コンテキスト: [Current email](現在のメール)を選択します。

    サイドバーがエージェントの回答で更新されます。

    Gmail から旅行を計画する

  6. [Open Chat] をクリックすると、Chat の DM スペースにリダイレクトされます。

  7. [+] > [セッションをリセット] をクリックします。

    完了を確認する新しいメッセージが届きます。 OK, let's start from the beginning, what can I help you with?

  8. メッセージを送信します Give me ideas

    エージェントの返信を含む新しいメッセージが届きます。

    Chat からブレインストーミングを開始する

  9. エッフェル塔などの場所の写真をアップロードしてから、メッセージ I want to go there! を送信します。

    エージェントの返信を含む新しいメッセージが届きます。

    Chat の添付ファイルから位置情報の詳細を取得する

制限事項

HTTP

Chat 以外の Google Workspace アプリケーションでは、AI エージェントには次の制限があります。

  • 同期型: サイドバーはユーザー操作に応じてのみ更新できるため、AI エージェントのレスポンスは完全に完了した後にのみ表示されます(ストリーミングは行われません)。

  • タイムアウトすることがある: サイドバーの更新が完了するまでに数分以上かかると、タイムアウトします。

Chat にはこのような制限はありません。

Apps Script

すべての Google Workspace アプリケーションで、AI エージェントは UrlFetchApp を使用して Vertex AI REST API を呼び出します。これにより、次の制限が発生します。

  • 同期: AI エージェントのレスポンスは、完全に完了した後にのみ返されます(ストリーミングなし)。

  • タイムアウトする可能性がある: AI エージェントのリクエストは、完了までに 1 分以上かかるとタイムアウトします。

カスタマイズ

このソリューションは、Vertex AI Agent Engine でホストされている ADK AI エージェント、Google Workspace アプリケーション UI のサブセット、Travel Concierge サンプルのレスポンスに固有のレスポンス レンダリングをサポートしています。このソリューションは拡張可能なフレームワークを使用しているため、次のファイルを変更してカスタマイズできます。

Python

  • main.py: メイン UI とユーザー インタラクションのロジック(Google Workspace イベント ハンドラ)を定義します。一般的な拡張機能としては、Gmail アプリケーションの Gmail メッセージと同様に、ドライブ アプリケーションのコンテキスト機能としてドライブ ドキュメントを有効にするものがあります。

  • vertex_ai.py: AI エージェントのセッション、レスポンス、エラーを管理し、エージェントのインタラクションとレスポンスのレンダリングをサポートするために実装する Vertex AI 固有のインターフェースを定義します。一般的な拡張機能としては、個別のユーザー会話や他の AI エージェント管理プラットフォームのマルチセッションのサポートを追加することが挙げられます。

  • agent_handler.py: Chat アプリケーションと Chat 以外のアプリケーションの特定のケースで、vertex_ai.py で定義された Vertex AI 固有のインターフェースを実装します。一般的な拡張機能としては、ユーザーが AI エージェントの回答に関するフィードバックを送信するためのボタンを追加することが考えられます。

  • google_workspace.py: API 呼び出しを使用して、AI 以外のエージェント管理プラットフォームのインタラクションを実装します。このサンプルでは、Google Workspace API のみを使用してコンテキストの詳細を収集し、アクションを実行します。一般的な拡張機能としては、Google カレンダーや顧客管理(CRM)からビジネスデータを取得する関数を追加するものが挙げられます。

  • travel_agent_ui_render.gs: サブエージェントと Workspace アプリケーションの Travel Concierge 固有のレスポンス レンダリングを実装します。一般的な拡張機能としては、新しいレスポンス レンダリングのサポートを追加して、フライト オプションや他の AI エージェントをグラフィカルに表示する機能などがあります。

Apps Script

  • Code.gs: メインの UI とユーザー操作のロジック(Google Workspace イベント ハンドラ)を定義します。一般的な拡張機能としては、Gmail アプリケーションの Gmail メッセージと同様に、ドライブ アプリケーションのコンテキスト機能としてドライブ ドキュメントを有効にするものがあります。

  • VertexAi.gs: AI エージェントのセッション、レスポンス、エラーを管理し、エージェントのインタラクションとレスポンスのレンダリングをサポートするために実装する Vertex AI 固有のインターフェースを定義します。一般的な拡張機能としては、個別のユーザー会話や他の AI エージェント管理プラットフォームのマルチセッションのサポートを追加することが挙げられます。

  • AgentHandler.gs: Chat アプリケーションと Chat 以外のアプリケーションの特定のケースで、VertexAi.gs で定義された Vertex AI 固有のインターフェースを実装します。一般的な拡張機能としては、ユーザーが AI エージェントの回答に関するフィードバックを送信するためのボタンを追加することが考えられます。

  • GoogleWorkspace.gs: API 呼び出しを使用して、AI 以外のエージェント管理プラットフォームのインタラクションを実装します。このサンプルでは、Google Workspace API のみを使用してコンテキストの詳細を収集し、アクションを実行します。一般的な拡張機能としては、Google カレンダーや顧客管理(CRM)からビジネスデータを取得する関数を追加するものが挙げられます。

  • TravelAgentUiRender.gs: サブエージェントと Workspace アプリケーションの Travel Concierge 固有のレスポンス レンダリングを実装します。一般的な拡張機能としては、新しいレスポンス レンダリングのサポートを追加して、フライト オプションや他の AI エージェントをグラフィカルに表示する機能などがあります。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。

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

    Resource Manager に移動

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