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

コーディングレベル: 高度な
間隔: 45 分
プロジェクトの種類:Google Workspace アドオン延長するチャットGmailカレンダードライブドキュメント、スプレッドシート、スライド

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

概要

このチュートリアルでは、エージェント開発キット(ADK)から Travel Concierge サンプルをデプロイします。Travel Concierge は、Google Maps Platform Places API、Google Search Grounding、Model Context Protocol (MCP) サーバーなどのツールを使用する会話型マルチエージェント AI です。

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

  • 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 つに制限されています)。

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

アーキテクチャ

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

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

HTTP

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

Apps Script

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

前提条件

環境を準備する

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

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

Google Cloud コンソール

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

    プロジェクトの作成へ進む

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

    省略可: プロジェクト ID を編集するには、[編集] をクリックします。プロジェクト ID はプロジェクトの作成後に変更することはできないため、プロジェクトの有効期間中のニーズを満たす ID を選択してください。

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

gcloud CLI

次のいずれかの開発環境で、Google Cloud CLI (gcloud ):

  • Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell を有効にします。
    Cloud Shell を有効にする
  • ローカルシェル: ローカル開発環境を使用するには、gcloud CLI をインストールして初期化します。
    クラウドプロジェクトを作成するには、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. [Travel Concierge ADK AI エージェントのコピー] をクリックします。
    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の価値を持つBASE_URLエンドポイント 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

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

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

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

Chat にデプロイする

Python

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

  1. の中でコンソール、 検索するGoogle Chat API、 クリックGoogle チャット API 、 それから管理、 そして構成

    Google Chat API 設定ページに移動します

  2. チャット アプリを設定します。

    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フィールドに貼り付けますエンドポイント URL以前コピーしたものBASE_URL
    7. 完全に実装された Chat 用アプリが使用するクイック コマンドを登録します。
      1. [コマンド] で、[コマンドを追加] をクリックします。
      2. [コマンド ID] に「1」と入力します。
      3. [説明] に「Reset session」と入力します。
      4. [コマンドの種類] で [クイック コマンド] を選択します。
      5. [名前] に「Reset session」と入力します。
      6. [完了] をクリックします。クイックコマンドが登録され、リスト表示されます。
    8. [公開設定] で [この Chat アプリを Workspace ドメイン内の特定のユーザーとグループに公開する] を選択し、メールアドレスを入力します。
    9. [ログ] で、[Logging にエラーを記録する] を選択します。
    10. [保存] をクリックします。

Apps Script

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

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

  2. の中でコンソール、 検索するGoogle Chat API、 クリックGoogle チャット API 、 それから管理、 そして構成

    Google Chat API 設定ページに移動します

  3. チャット アプリを設定します。

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

アプリは Google チャットからアクセスできるようになりました。

  1. Google Chat を開きます。

    Google Chat に移動

  2. チャット DM スペースを作成します。

    1. クリック 新しいチャット
    2. 検索でアプリ Travel ADK AI Agent を入力して選択します。
    3. の中でInstall appダイアログでクリックアプリをインストール
    4. そのInstall appダイアログが閉じ、新しく作成されたチャット 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!
    • コンテキスト: [現在のメール] を選択します。

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

    Gmail から旅行を計画する

  6. [チャットを開く] をクリックすると、チャット DM スペースにリダイレクトされます。

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

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

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

    エージェントの応答を含む新しいメッセージを受信します。

    チャットからのブレインストーミング

  9. メッセージを送信I want to go there!任意の場所の写真をアップロードした後、エッフェル塔

    エージェントの応答を含む新しいメッセージを受信します。

    Chat の添付ファイルから場所の詳細を取得する

制限事項

HTTP

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

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

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

これらの制限はチャットには存在しません。

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: チャット アプリケーションとチャット以外のアプリケーションの特定のケースで、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 と管理者 > リソースの管理

    リソース マネージャーに移動

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