1. Introduction
Dans cet atelier de programmation, vous allez apprendre à créer un agent d'IA pro-code à l'aide de l'Agent Development Kit (ADK), qui se connecte directement aux serveurs MCP Google Workspace officiels.
Le protocole MCP (Model Context Protocol) est une norme ouverte qui permet aux modèles d'IA d'utiliser de manière sécurisée les outils fournis par des serveurs distants. ADK est le framework pro-code de Google permettant de créer des agents autonomes. En les combinant, vous pouvez créer des agents hautement personnalisés basés sur vos données Gmail, Google Drive, Google Agenda, Google Chat et Contacts.
Pour obtenir une documentation complète sur les outils et la configuration disponibles, consultez Configurer les serveurs MCP Google Workspace.
Objectifs de l'atelier
- Activez les services Google Workspace MCP dans votre projet Google Cloud.
- Configurez le consentement OAuth et créez des identifiants pour les tests locaux et le déploiement en production.
- Créez un agent ADK local qui se connecte aux cinq serveurs MCP Workspace à l'aide de jetons statiques.
- Créez et déployez un agent ADK prêt pour la production sur Gemini Enterprise Agent Platform (GEAP) Agent Runtime qui utilise l'injection dynamique de jetons.
- Enregistrez et testez votre agent personnalisé de manière native dans Gemini Enterprise.
Prérequis
- Un navigateur Web (Chrome, par exemple).
- Un projet Google Cloud avec facturation activée.
- Un compte Google Workspace (avec les fonctionnalités intelligentes activées).
- Python 3.11 ou version ultérieure installé sur votre ordinateur local.
- Google Cloud CLI (
gcloud) est installé et initialisé.
2. Avant de commencer
Créer ou sélectionner un projet Google Cloud
Option de la console
Dans la console Google Cloud, sélectionnez ou créez un projet Google Cloud.
Option CLI
Créez un projet et définissez-le comme actif :
gcloud projects create YOUR_PROJECT_ID
gcloud config set project YOUR_PROJECT_ID
Activer les API
Pour utiliser les serveurs MCP Google Workspace, vous devez activer à la fois les API Google Workspace standards et les services MCP dédiés.
Option de la console
Cliquez sur les boutons suivants pour les activer à l'aide du navigateur Web :
Option CLI : exécutez ces commandes de terminal :
# Enable standard GWS APIs
gcloud services enable chat.googleapis.com \
drive.googleapis.com \
calendar-json.googleapis.com \
people.googleapis.com \
gmail.googleapis.com
# Enable dedicated MCP services
gcloud services enable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
Configurer l'application Chat
Pour utiliser le serveur MCP Google Chat, vous devez configurer une application Chat dans votre projet Google Cloud.
- Accédez à API Google Chat > Gérer > Configuration.
- Configurez l'application Chat :
- Nom de l'application :
ADK Workspace Agent - URL de l'avatar :
https://developers.google.com/chat/images/quickstart-app-avatar.png - Description :
MCP server connection for ADK Agent - Sous Fonctionnalités, désactivez l'option Activer les fonctionnalités interactives.
- Sous Journaux, sélectionnez Enregistrer les erreurs dans Logging.
- Nom de l'application :
- Cliquez sur Enregistrer.
3. Configurer le consentement et les clients OAuth
Les serveurs MCP Google Workspace utilisent OAuth 2.0 pour une authentification sécurisée. Vous devez configurer l'écran de consentement OAuth et créer deux ID client distincts : un pour le développement local et un pour l'agent déployé.
Configurer l'écran de consentement OAuth
- Dans la console Google Cloud, cliquez sur le menu de navigation (icône en forme de hamburger) en haut à gauche. Sélectionnez Google Auth Platform > Branding (ou API et services > Écran de consentement OAuth si Google Auth Platform n'est pas visible).
- Configurez Informations sur l'application :
- Nom de l'application :
Workspace ADK Agent - Adresse e-mail d'assistance utilisateur : sélectionnez votre adresse e-mail.
- Nom de l'application :
- Configurez l'audience : sélectionnez Interne.
- Configurez les coordonnées : saisissez votre adresse e-mail, puis cliquez sur Créer.
- Accédez à Accès aux données > Ajouter ou supprimer des niveaux d'accès. Sous Ajouter manuellement des niveaux d'accès, ajoutez les niveaux d'accès suivants pour accorder l'accès aux cinq services :
https://www.googleapis.com/auth/calendar.calendarlist.readonly https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar.calendars https://www.googleapis.com/auth/chat.spaces https://www.googleapis.com/auth/chat.messages https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/gmail.readonly https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.send https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/contacts.readonly https://www.googleapis.com/auth/cloud-platform - Cliquez sur Ajouter au tableau, puis sur Mettre à jour et enfin sur Enregistrer.
Créer un ID client pour le développement local (application de bureau)
- Dans la console Google Cloud, accédez à Plate-forme d'authentification Google > Clients (ou API et services > Identifiants). Cliquez sur Créer des identifiants (ou Créer un client), puis sélectionnez ID client OAuth.
- Sélectionnez Application de bureau comme type d'application.
- Nommez-le
Workspace Agent Local. - Cliquez sur Créer et téléchargez le fichier JSON. Enregistrez-le en local sous le nom
client_secret.json.
4. Développement et tests d'agents
Cette section explique comment créer l'environnement de l'agent. Nous utiliserons une approche de jeton statique pour les tests, où nous récupérons un jeton OAuth à l'aide de gcloud et le transmettons à McpToolset de l'ADK. Vous pouvez suivre ces étapes à l'aide de votre machine locale ou de Google Cloud Shell.
Choisissez votre environnement : Machine locale ou Google Cloud Shell pour configurer votre environnement de développement. Les deux méthodes utiliseront un script Python partagé pour l'authentification afin d'assurer la cohérence entre les plates-formes.
1. Configurer le répertoire de l'environnement
Exécutez les commandes suivantes dans votre terminal pour créer un répertoire de projet et installer les packages requis.
- Pour Google Cloud Shell : commencez par cliquer sur l'icône Activer Cloud Shell (
>_) dans la barre d'outils en haut à droite de la console Google Cloud. - Pour une machine locale : ouvrez votre terminal standard.
mkdir -p gws-adk-agent/workspace_agent
cd gws-adk-agent
python3 -m venv .venv
source .venv/bin/activate
pip install google-adk poetry google-auth-oauthlib
2. Préparer le fichier d'identifiants
Vous devez placer le fichier client_secret.json que vous avez téléchargé à l'étape précédente à la racine de votre répertoire gws-adk-agent.
- Machine locale : déplacez ou copiez le fichier
client_secret.jsontéléchargé dans le répertoiregws-adk-agent. - Google Cloud Shell : créez le fichier en exécutant la commande suivante dans Cloud Shell (remplacez
[PASTE_JSON_HERE]par votre contenu JSON) :
cat << 'EOF' > client_secret.json
[PASTE_JSON_HERE]
EOF
3. S'authentifier et générer .env (auth.py)
Pour gérer l'authentification de manière cohérente et éviter les problèmes de routage CLI spécifiques à l'environnement, nous utilisons un script Python personnalisé basé sur les bibliothèques d'authentification Google officielles. Ce script gère le flux OAuth, enregistre les identifiants par défaut de l'application (ADC) en local et génère le fichier .env requis.
Créez un fichier nommé auth.py dans le répertoire gws-adk-agent et ajoutez le code suivant :
import json
import os
from urllib.parse import urlparse, parse_qs
import google.auth
from google_auth_oauthlib.flow import InstalledAppFlow
CLIENT_SECRET_FILE = 'client_secret.json'
SCOPES = [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/chat.spaces.readonly",
"https://www.googleapis.com/auth/chat.messages",
"https://www.googleapis.com/auth/drive.readonly",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.compose",
"https://www.googleapis.com/auth/directory.readonly",
"https://www.googleapis.com/auth/contacts.readonly"
]
# Initialize the flow from the client secrets JSON
flow = InstalledAppFlow.from_client_secrets_file(
CLIENT_SECRET_FILE,
scopes=SCOPES,
redirect_uri='http://localhost:8085/'
)
# Generate the Auth URL
auth_url, expected_state = flow.authorization_url(prompt='consent', access_type='offline')
print("\n=== GOOGLE OAUTH OFFICIAL LIBRARY FLOW ===")
print("1. Copy the following link and paste it into your browser (or click it if supported):\n")
print(auth_url)
print("\n2. Authorize the application.")
print("3. Your browser will redirect to a 'localhost' page (it will show a 'Site can't be reached' error, which is EXPECTED and normal).")
print("4. Copy the ENTIRE URL from your browser's address bar (including the http://localhost:8085/ part).\n")
# Get the redirected URL from the user
redirected_url = input("Paste the full localhost URL here: ").strip()
# Exchange the redirect URL for tokens
print("\nExchanging code for tokens...")
try:
parsed_url = urlparse(redirected_url)
query_params = parse_qs(parsed_url.query)
returned_state = query_params.get('state', [None])[0]
code = query_params.get('code', [None])[0]
if not code:
raise ValueError("No 'code' parameter found in the URL.")
if returned_state != expected_state:
raise ValueError("CSRF Warning! State mismatch.")
flow.fetch_token(code=code)
creds = flow.credentials
except Exception as e:
print(f"Authentication failed: {e}")
exit(1)
if not creds.refresh_token:
print("\nError: No refresh token returned. You may need to revoke access and try again.")
exit(1)
# Save Application Default Credentials
adc_data = {
"client_id": creds.client_id,
"client_secret": creds.client_secret,
"refresh_token": creds.refresh_token,
"type": "authorized_user"
}
adc_dir = os.path.expanduser("~/.config/gcloud")
os.makedirs(adc_dir, exist_ok=True)
adc_path = os.path.join(adc_dir, "application_default_credentials.json")
with open(adc_path, "w") as f:
json.dump(adc_data, f, indent=2)
# Detect Project ID
try:
_, project_id = google.auth.default()
except Exception:
project_id = None
project_id = project_id or os.environ.get("GOOGLE_CLOUD_PROJECT", "YOUR_PROJECT_ID")
# Save to .env for local development (relative to project root)
env_dir = "workspace_agent"
os.makedirs(env_dir, exist_ok=True)
env_path = os.path.join(env_dir, ".env")
with open(env_path, "w") as f:
f.write("GOOGLE_GENAI_USE_VERTEXAI=1\n")
f.write(f"GOOGLE_CLOUD_PROJECT={project_id}\n")
f.write("GOOGLE_CLOUD_LOCATION=us-central1\n")
print(f"\nSuccess! Application Default Credentials saved to: {adc_path}")
print(f"Environment variables saved to: {env_path}")
if project_id == "YOUR_PROJECT_ID":
print("NOTE: Could not automatically detect Project ID. Please update it manually in .env")
Exécutez le script dans votre terminal :
python3 auth.py
Créer le code de l'agent
Quel que soit l'environnement que vous avez choisi à l'étape précédente, le code de l'agent reste exactement le même. Créez un fichier nommé agent.py dans le sous-répertoire workspace_agent que vous avez créé précédemment, puis ajoutez le code suivant. Ce script utilise les identifiants par défaut de l'application (ADC) pour fournir une autorisation, en validant et en actualisant automatiquement les identifiants en mémoire via un fournisseur d'en-tête dynamique.
import datetime
import google.auth
from google.auth.transport.requests import Request
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
MODEL = "gemini-2.5-flash"
# Load credentials from Application Default Credentials (ADC) saved by auth.py
creds, _ = google.auth.default()
# 1. STARTUP SAFETY: Ensure valid token at import time for static tool discovery (e.g. adk web UI load)
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Startup] Access token refreshed from ADC.")
def auth_header_provider(tool_context=None) -> dict[str, str]:
"""2. RUNTIME SAFETY: Dynamically provides auth headers, refreshing if expired during the session."""
if not creds.valid:
creds.refresh(Request())
print("\n[Agent Runtime] Access token refreshed from ADC.")
return {"Authorization": f"Bearer {creds.token}"}
# Initialize the 5 GWS MCP servers with combined startup headers and dynamic runtime provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://calendarmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://chatmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://drivemcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://gmailmcp.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://people.googleapis.com/mcp/v1",
headers={"Authorization": f"Bearer {creds.token}"}
),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
# Define the agent and attach all 5 toolsets
root_agent = LlmAgent(
model=MODEL,
name='gws_adk_agent',
instruction=f"""You are a helpful assistant grounded in the user's Google Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Use the provided MCP tools to answer questions about their Calendar, Chat, Drive, Gmail, and Contacts.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
Exécuter et tester votre agent
Vous pouvez interagir avec votre agent à l'aide de l'UI Web interactive ou directement dans votre terminal/shell.
Option 1 : Interface utilisateur Web interactive
Si vous utilisez une machine locale :
- À partir du répertoire racine du projet
gws-adk-agent, démarrez l'interface Web ADK :adk web - Ouvrez
http://localhost:8000dans votre navigateur pour discuter avec votre agent.
Si vous êtes dans Google Cloud Shell :
- Depuis le répertoire racine de votre projet
gws-adk-agent, démarrez l'interface Web ADK en forçant explicitement le port 8080 :adk web --port 8080 --allow_origins=* - Cliquez sur le bouton Aperçu sur le Web en haut à droite de la barre d'outils Cloud Shell, puis sélectionnez Prévisualiser sur le port 8080 pour ouvrir l'interface dans un nouvel onglet.
Option 2 : Mode CLI du terminal (alternative)
Si vous préférez rester dans le terminal ou éviter de configurer des aperçus de navigateur Web, ADK fournit un mode chat REPL interactif natif.
À partir du répertoire racine de votre projet gws-adk-agent, exécutez la commande suivante (elle fonctionne de la même manière sur une machine locale et dans Google Cloud Shell) :
adk run workspace_agent
Vous serez redirigé vers une session de chat interactive directement dans votre shell :
Running agent gws_adk_agent, type exit to exit.
[user]:
Essayer d'écrire un prompt pour votre agent
Quelle que soit l'interface choisie, essayez de tester l'agent avec des requêtes qui utilisent les outils MCP Workspace :
What are my upcoming meetings this week?Summarize the last 3 unread emails in my Gmail.
5. Déploiement en production
Pour déployer l'agent en production, nous ne pouvons pas utiliser de jeton local codé en dur. Au lieu de cela, nous utilisons header_provider de l'ADK pour extraire dynamiquement le jeton d'accès OAuth injecté par la plate-forme Gemini Enterprise lorsqu'un utilisateur interagit avec l'agent.
Créer le code de l'agent de production
Créez un package de répertoire nommé enterprise_ai et créez un fichier agent.py à l'intérieur :
mkdir -p enterprise_ai
Écrivez le contenu suivant dans enterprise_ai/agent.py :
import datetime
import os
import re
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
from google.adk.tools.tool_context import ToolContext
MODEL = "gemini-2.5-flash"
# This name MUST match the Authorization Name used during Gemini Enterprise registration
CLIENT_AUTH_NAME = "workspace-adk-auth"
def _get_access_token_from_context(tool_context: ToolContext) -> str:
"""Dynamically parses the user bearer token injected into the ToolContext state."""
escaped_name = re.escape(CLIENT_AUTH_NAME)
pattern = re.compile(fr"^{escaped_name}_\d+$")
state_dict = tool_context.state.to_dict() if hasattr(tool_context.state, 'to_dict') else tool_context.state
matching_keys = [k for k in state_dict.keys() if pattern.match(k)]
if matching_keys:
return state_dict.get(matching_keys[0])
raise Exception(f"No bearer token found in ToolContext state matching pattern {pattern.pattern}")
def auth_header_provider(tool_context: ToolContext) -> dict[str, str]:
"""Provides the dynamic Authorization header for MCP requests."""
token = _get_access_token_from_context(tool_context)
return {"Authorization": f"Bearer {token}"}
# Initialize toolsets using the dynamic header_provider
calendar_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://calendarmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
chat_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://chatmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
drive_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://drivemcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
gmail_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://gmailmcp.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
people_mcp = McpToolset(
connection_params=StreamableHTTPConnectionParams(url="https://people.googleapis.com/mcp/v1"),
header_provider=auth_header_provider
)
current_date = datetime.datetime.now().strftime("%Y-%m-%d")
root_agent = LlmAgent(
model=MODEL,
name='enterprise_ai',
instruction=f"""You are an enterprise assistant grounded securely in the user's Workspace data.
Today's current date is {current_date}. Always calculate relative dates (like 'this week' or 'upcoming meetings') using this reference.
Always use the provided MCP tools to fetch context from Calendar, Chat, Drive, Gmail, and People.""",
tools=[calendar_mcp, chat_mcp, drive_mcp, gmail_mcp, people_mcp]
)
Déployer sur GEAP Agent Runtime
Déployez votre agent pro-code à l'aide de la CLI ADK :
adk deploy agent_engine \
--project=$(gcloud config get-value project) \
--region=us-central1 \
--display_name="Workspace ADK Agent" \
enterprise_ai
Attendez que le déploiement soit terminé, puis copiez le nom de ressource Reasoning Engine généré à partir de la sortie du terminal (par exemple, projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID).
6. S'inscrire à Gemini Enterprise
Nous allons maintenant intégrer l'agent ADK personnalisé à Gemini Enterprise pour que les utilisateurs puissent discuter avec lui de manière native.
Créer un ID client pour la production (application Web)
Pour déployer votre agent en production, vous devez créer un ID client d'application Web. Contrairement au client de bureau utilisé pour les tests locaux, un client d'application Web permet un flux OAuth sécurisé côté serveur. Cela permet à l'agent hébergé sur GEAP Agent Runtime de recevoir de manière sécurisée les jetons d'authentification de l'utilisateur transmis par Gemini Enterprise, à l'aide de l'URI de redirection spécifiée. Cette configuration est nécessaire pour que l'agent puisse accéder de manière sécurisée aux données Google Workspace pour le compte de l'utilisateur dans un environnement de production.
- Dans la console Google Cloud, cliquez sur le menu de navigation (icône en forme de hamburger) en haut à gauche. Sélectionnez Google Auth Platform > Clients (ou APIs & Services > Credentials si Google Auth Platform n'est pas visible). Cliquez sur Créer des identifiants (ou Créer un client), puis sélectionnez ID client OAuth.
- Sélectionnez Application Web comme type d'application.
- Nommez-le
Workspace Agent Production. - Dans la section URI de redirection autorisés, ajoutez les URI suivants :
- Cliquez sur Ajouter un URI, puis saisissez
https://vertexaisearch.cloud.google.com/oauth-redirect. - Cliquez à nouveau sur Ajouter un URI et saisissez
https://vertexaisearch.cloud.google.com/static/oauth/oauth.html.
- Cliquez sur Ajouter un URI, puis saisissez
- Cliquez sur Créer. Dans le pop-up "Client OAuth créé" (ou dans la liste Clients), copiez l'ID client et le code secret du client. Vous en aurez besoin pour enregistrer l'agent dans Gemini Enterprise.
Créer une application Gemini Enterprise
- Dans la console Google Cloud, accédez à la page Gemini Enterprise :
- Sous la fiche Gemini Enterprise, cliquez sur Gérer.
- Cliquez sur Créer l'application.
- Dans la section Gemini Enterprise, cliquez sur Créer.
- Dans le champ Nom de votre application, saisissez le nom de votre application. L'identifiant de l'application figure sous son nom.
- Dans le champ Nom externe de votre entreprise ou organisation, saisissez le nom de l'entreprise ou de l'organisation. Pour ce tutoriel, vous pouvez utiliser
Cymbal Bank. - Sélectionnez Global comme emplacement pour votre application.
- Cliquez sur Continuer.
Enregistrer l'agent personnalisé
- Ouvrez la console Gemini Enterprise :
- Sélectionnez votre application active, accédez à Agents, puis cliquez sur + Ajouter un agent > Ajouter un agent personnalisé via Agent Runtime.
- Dans la section Autorisations, cliquez sur Ajouter une autorisation :
- Nom de l'autorisation :
workspace-adk-auth(doit correspondre exactement à CLIENT_AUTH_NAME dans votre code Python) - ID client : collez l'ID client de l'application Web de production créé ci-dessus.
- Code secret du client : collez le code secret du client Production Web Application créé ci-dessus.
- URI du jeton :
https://oauth2.googleapis.com/token - URI d'autorisation : créez l'URI en remplaçant
YOUR_CLIENT_IDpar l'ID client que vous avez copié à l'étape 5 ci-dessus :https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.send%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.spaces%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fchat.messages%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdirectory.readonly&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
- Nom de l'autorisation :
- Cliquez sur OK, puis sur Suivant.
- Dans la section Configuration :
- Nom de l'agent :
Workspace Pro Agent - Description :
Use this agent to answer questions about your Google Workspace data, including Gmail, Google Drive, Google Calendar, Google Chat, and Contacts. It can find files, summarize emails, check your schedule, and look up contact information. - Moteur de raisonnement de l'environnement d'exécution de l'agent : collez le nom de ressource du moteur que vous avez copié à partir de la sortie
adk deploy.
- Nom de l'agent :
- Cliquez sur Créer.
Essayer l'agent dans Gemini Enterprise
Vous pouvez interagir avec votre agent à l'aide de l'aperçu de la console Google Cloud (le plus rapide pour les développeurs) ou de l'application Web Gemini Enterprise (expérience utilisateur final).
Option 1 : Aperçu de la console Google Cloud
- Dans la console Google Cloud, accédez à la page Gemini Enterprise :
- Dans le menu de navigation, cliquez sur Applications, puis sélectionnez l'application que vous venez de créer.
- Cliquez sur Prévisualiser ou sur Ouvrir l'aperçu en haut à droite.
- Dans la barre de recherche, saisissez la requête suivante :
Search for files in Drive related to 'Project Milestone', summarize them, and tell me if I have any meetings with the project owner today. - Appuyez sur Entrée pour envoyer la requête et afficher les résultats directement dans la console.
Option 2 : Application Web Gemini Enterprise
- Ouvrez l'interface de votre application Web Gemini Enterprise.
- Accédez à Menu ☰ > Agents, puis sélectionnez Agent Workspace Pro sous De votre organisation.
- Saisissez la même requête que dans l'option d'aperçu de la console Google Cloud.
- Cliquez sur Autoriser lorsque vous êtes invité à suivre le flux de consentement utilisateur OAuth.
- L'agent exécutera les tâches de manière fluide sur plusieurs services à l'aide du protocole MCP.
7. Effectuer un nettoyage
Pour éviter des frais inutiles, nettoyez vos ressources :
Option de la console
Accédez au tableau de bord API et services, sélectionnez les services MCP que vous avez activés (par exemple, Calendar MCP, Gmail MCP), puis cliquez sur Désactiver l'API. Supprimez les ID client OAuth sous Google Auth Platform > Clients, puis supprimez le déploiement Reasoning Engine depuis la console Gemini Enterprise.
Option CLI
Exécutez les commandes de terminal suivantes pour désactiver les services MCP :
# Disable Workspace MCP services
gcloud services disable calendarmcp.googleapis.com \
chatmcp.googleapis.com \
drivemcp.googleapis.com \
gmailmcp.googleapis.com
8. Félicitations
Félicitations ! Vous avez créé, testé et déployé un agent IA ADK pro-code connecté directement aux serveurs MCP officiels de Google Workspace.
Connaissances acquises
- Découvrez comment activer les services MCP Google Workspace dans Google Cloud.
- Gérer les identifiants OAuth pour les tests ADK locaux à l'aide d'en-têtes statiques
- Découvrez comment implémenter l'injection de jetons dynamiques à l'aide de
header_providerpour les agents de production. - Déployer un agent ADK sur GEAP Agent Runtime et l'enregistrer dans Gemini Enterprise