GENAI105

Présentation
Cet atelier porte sur l'utilisation d'outils avec les agents Agent Development Kit.
Des outils puissants fournis par Google, comme la recherche Google et Vertex AI Search, à la grande variété d'outils disponibles dans les écosystèmes LangChain et CrewAI, vous avez l'embarras du choix pour vous lancer.
De plus, pour créer votre propre outil à partir d'une fonction, il vous suffit d'écrire une bonne docstring.
Dans cet atelier, nous partons du principe que vous maîtrisez les bases d'ADK, telles qu'elles sont présentées dans l'atelier Premiers pas avec Agent Development Kit (ADK).
Objectif
Dans cet atelier, vous allez découvrir l'écosystème d'outils à la disposition des agents ADK. Vous apprendrez également comment fournir une fonction à un agent sous la forme d'un outil personnalisé.
À la fin de cet atelier, vous saurez :
- Fournir des outils prédéfinis Google, LangChain ou CrewAI à un agent
- Discuter de l'importance des docstrings structurées et du typage lors de l'écriture de fonctions pour les outils d'agent
- Écrire vos propres fonctions d'outil pour un agent
Préparation
Avant de cliquer sur le bouton Start Lab (Démarrer l'atelier)
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur le bouton "Start Lab" (Démarrer l'atelier), indique combien de temps les ressources cloud resteront accessibles.
Cet atelier pratique Qwiklabs vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud Platform le temps de l'atelier.
Conditions requises
Pour réaliser cet atelier, vous devez remplir les conditions suivantes :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
- Vous devez disposer de suffisamment de temps pour réaliser l'atelier en une fois.
Remarque : Si vous possédez déjà un compte ou un projet GCP, veillez à ne pas l'utiliser pour réaliser cet atelier.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Utilisation d'outils avec l'Agent Developer Kit
L'utilisation efficace des outils est ce qui distingue véritablement les agents intelligents des modèles de base. Un outil est un bloc de code, comme une fonction ou une méthode, qui exécute des actions spécifiques (comme interagir avec des bases de données, envoyer des requêtes API ou appeler des services externes).
Les outils permettent aux agents d'interagir avec d'autres systèmes et d'effectuer des actions qui dépassent leurs capacités de raisonnement et de génération de base. Il est important de noter que ces outils fonctionnent indépendamment du LLM de l'agent, ce qui signifie qu'ils ne possèdent pas automatiquement leurs propres capacités de raisonnement.
Agent Development Kit offre aux développeurs un large éventail d'outils :
-
Outils prédéfinis : fonctionnalités prêtes à l'emploi telles que la recherche Google, l'exécution de code et les outils de génération augmentée par récupération (RAG).
-
Outils tiers : intégration fluide d'outils provenant de bibliothèques externes comme LangChain et CrewAI.
-
Outils personnalisés : possibilité de créer des outils personnalisés adaptés à des exigences spécifiques, en utilisant des constructions spécifiques au langage et des agents en tant qu'outils. Le SDK fournit également des fonctionnalités asynchrones via les outils de fonction à exécution longue.
Dans cet atelier, vous allez explorer ces catégories et implémenter un exemple de chaque type.
Outils prédéfinis disponibles de Google
Google fournit plusieurs outils utiles à vos agents, dont les suivants :
Recherche Google (google_search) : permet à l'agent d'effectuer des recherches sur le Web à l'aide de la recherche Google. Il vous suffit d'ajouter google_search aux outils de l'agent.
Exécution de code (built_in_code_execution) : cet outil permet à l'agent d'exécuter du code, d'effectuer des calculs, de manipuler des données ou d'interagir avec d'autres systèmes par programmation. Vous pouvez utiliser VertexCodeInterpreter, qui est prédéfini, ou n'importe quel exécuteur de code qui implémente l'interface BaseCodeExecutor.
Récupération (retrieval) : ensemble d'outils conçus pour extraire des informations de diverses sources.
Outil Vertex AI Search (VertexAiSearchTool) : cet outil s'intègre au service Vertex AI Search de Google Cloud pour permettre à l'agent de rechercher dans les datastores de vos applications d'IA.
Tâche 1 : Installer l'ADK et configurer votre environnement
Remarque : Nous vous recommandons d'utiliser une fenêtre de navigation privée pour la plupart des activités Qwiklabs afin d'éviter toute confusion entre votre compte participant Qwiklabs et d'autres comptes connectés à Google Cloud. Si vous utilisez Chrome, fermez toutes les fenêtres de navigation privée, effectuez un clic droit sur le bouton "Open Google Cloud console" (Ouvrir la console Google Cloud) en haut de cet atelier et sélectionnez "Ouvrir le lien dans la fenêtre de navigation privée".
Activer les API Vertex AI recommandées
- Dans cet environnement d'atelier, l'API Vertex AI a été activée pour vous. Si vous deviez suivre ces étapes dans votre propre projet, vous pourriez l'activer en accédant à Vertex AI et en suivant l'invite.
Préparer un onglet dans l'éditeur Cloud Shell
-
Dans la fenêtre de la console Google Cloud, ouvrez Cloud Shell en appuyant sur les touches G, puis S de votre clavier. Vous pouvez également cliquer sur le bouton Activer Cloud Shell (
) en haut à droite de la console Cloud.
-
Cliquez sur Continuer.
-
Si vous êtes invité à autoriser Cloud Shell, cliquez sur Autoriser.
-
En haut à droite du panneau du terminal Cloud Shell, cliquez sur le bouton Ouvrir dans une nouvelle fenêtre
.
-
Dans le terminal Cloud Shell, saisissez la commande suivante pour ouvrir l'éditeur Cloud Shell dans votre répertoire d'accueil :
cloudshell workspace ~
- Fermez les éventuels tutoriels ou panneaux Gemini qui s'affichent sur le côté droit de l'écran pour donner plus de place à l'éditeur de code.
- Pour le reste de cet atelier, vous pouvez utiliser cette fenêtre comme IDE avec l'éditeur Cloud Shell et le terminal Cloud Shell.
Télécharger et installer ADK et les exemples de code pour cet atelier
-
Collez les commandes suivantes dans le terminal Cloud Shell pour télécharger le code de cet atelier depuis un bucket Cloud Storage :
gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/adk_tools .
-
Mettez à jour votre variable d'environnement PATH, installez ADK et installez quelques prérequis supplémentaires pour cet atelier en exécutant les commandes suivantes dans le terminal Cloud Shell.
export PATH=$PATH:"/home/${USER}/.local/bin"
python3 -m pip install google-adk[extensions] -r adk_tools/requirements.txt
Remarque : google-adk[extensions] permet d'installer les dépendances supplémentaires requises pour les outils Crew AI.
Tâche 2 : Créer une application de recherche qui sera utilisée pour ancrer les réponses sur vos propres données
Dans une tâche ultérieure, vous utiliserez l'outil Vertex AI Search fourni par Google pour ancrer les réponses sur vos propres données dans un datastore "AI Applications". Comme le datastore de l'application a besoin d'un peu de temps pour ingérer les données, vous allez le configurer maintenant. Vous l'utiliserez pour ancrer les réponses sur vos données dans une tâche ultérieure.
-
Dans l'onglet de votre navigateur où la console Cloud est toujours ouverte, cherchez AI Applications en haut de la console.
-
Cochez la case des conditions d'utilisation, puis cliquez sur Continuer et activer l'API.
-
Dans le menu de navigation de gauche, sélectionnez Datastores.
-
Sélectionnez Créer un datastore.
-
Recherchez la fiche Cloud Storage et cliquez sur Sélectionner.
-
Sélectionnez Documents non structurés (PDF, HTML, TXT, etc.)
-
Des exemples de documents ont été importés dans Cloud Storage pour vous. Ces documents portent sur la découverte fictive d'une nouvelle planète nommée Persephone. Dans ce cas, une planète fictive est utilisée afin que le modèle n'ait rien pu apprendre à son sujet pendant son entraînement.
Pour un chemin d'accès GCS, saisissez -bucket/planet-search-docs.
-
Cliquez sur Continuer.
-
Gardez le champ Emplacement défini sur mondial.
-
Pour le nom du datastore, saisissez : Planet Search
-
Cliquez sur Créer.
-
Cliquez sur Applications dans le menu de gauche.
-
Cliquez sur Créer une application.
-
Recherchez la fiche Recherche personnalisée (général) et cliquez sur Créer.
-
Nommez l'application Planet Search
-
Indiquez le Nom de l'entreprise : Planet Conferences
-
Cliquez sur Continuer.
-
Cochez la case à côté du datastore Planet Search.
-
Sélectionnez Créer.
-
Une fois votre application créée, cliquez sur le logo AI Applications en haut à gauche pour revenir au tableau de bord de votre application.
-
Copiez l'ID de votre application affiché dans la table "Applications". Enregistrez-le dans un document texte, car vous en aurez besoin ultérieurement.
-
Pour l'instant, vous allez laisser le temps au datastore d'ingérer ses données. Vous le fournirez plus tard à un agent pour ancrer ses réponses.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un datastore et une application de recherche
Outils tiers
ADK vous permet d'utiliser des outils disponibles dans des bibliothèques d'IA tierces comme LangChain et CrewAI.
Tâche 3 : Utiliser un outil LangChain
La communauté LangChain a créé un grand nombre d'intégrations d'outils pour accéder à de nombreuses sources de données, s'intégrer à divers produits Web et accomplir de nombreuses tâches. Les outils de la communauté dans ADK vous évitent de réécrire un outil déjà créé par quelqu'un d'autre.
-
Dans l'onglet de votre navigateur affichant l'éditeur Cloud Shell, utilisez l'explorateur de fichiers sur la gauche pour accéder au répertoire adk_tools/langchain_tool_agent.
-
Écrivez un fichier .env pour fournir les détails d'authentification de ce répertoire d'agent en exécutant la commande suivante dans le terminal Cloud Shell :
cd ~/adk_tools
cat << EOF > langchain_tool_agent/.env
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}
GOOGLE_CLOUD_LOCATION={{{project_0.default_region| GCP_LOCATION}}}
MODEL=gemini-2.5-flash
EOF
-
Copiez le fichier .env dans les autres répertoires d'agents que vous utiliserez dans cet atelier en exécutant la commande suivante :
cp langchain_tool_agent/.env crewai_tool_agent/.env
cp langchain_tool_agent/.env function_tool_agent/.env
cp langchain_tool_agent/.env vertexai_search_tool_agent/.env
-
Cliquez sur le fichier agent.py dans le répertoire langchain_tool_agent.
-
Notez l'importation de la classe LangchainTool. Il s'agit d'une classe wrapper qui vous permet d'utiliser les outils LangChain dans Agent Development Kit.
-
Ajoutez le code suivant à l'endroit indiqué dans le fichier agent.py pour ajouter l'outil Wikipédia de LangChain à votre agent. Cela permettra à votre agent de rechercher des informations sur Wikipédia :
tools = [
# Use the LangchainTool wrapper...
LangchainTool(
# to pass in a LangChain tool.
# In this case, the WikipediaQueryRun tool,
# which requires the WikipediaAPIWrapper as
# part of the tool.
tool=WikipediaQueryRun(
api_wrapper=WikipediaAPIWrapper()
)
)
]
-
Enregistrez le fichier.
-
Dans le terminal Cloud Shell, à partir du répertoire du projet adk_tools, lancez l'UI de développement d'Agent Development Kit à l'aide des commandes suivantes :
adk web
Résultat
INFO: Started server process [2434]
INFO: Waiting for application startup.
+-------------------------------------------------------+
| ADK Web Server started |
| |
| For local testing, access at http://localhost:8000. |
+-------------------------------------------------------+
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
-
Pour afficher l'interface Web dans un nouvel onglet, cliquez sur le lien http://127.0.0.1:8000 dans la sortie du terminal.
-
L'UI de développement d'ADK s'ouvre dans un nouvel onglet du navigateur.
-
Dans le menu déroulant Sélectionner un agent à gauche, sélectionnez langchain_tool_agent.
-
Interrogez l'agent avec la requête suivante :
Who was Grace Hopper?
Résultat :

-
Cliquez sur l'icône d'agent
à côté de la bulle de chat de l'agent indiquant l'utilisation de l'outil wikipedia.
-
Notez que le contenu inclut un functionCall avec la requête envoyée à Wikipédia.
-
En haut de l'onglet, cliquez sur le bouton "Suivant" pour passer à l'événement suivant.
-
En explorant cet événement, vous pouvez voir le résultat récupéré sur Wikipédia et utilisé pour générer la réponse du modèle.
-
Lorsque vous avez terminé de poser des questions à cet agent, fermez l'onglet du navigateur de l'UI de développement.
-
Sélectionnez le panneau du terminal Cloud Shell et appuyez sur CTRL+C pour arrêter le serveur.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser un outil LangChain
Tâche 4 : Utiliser un outil CrewAI
Vous pouvez utiliser CrewAI Tools de la même manière avec un wrapper CrewaiTool.
-
Pour cela, dans l'explorateur de fichiers de l'éditeur Cloud Shell, accédez au répertoire adk_tools/crewai_tool_agent.
-
Cliquez sur le fichier agent.py dans le répertoire crewai_tool_agent.
-
Notez l'importation de la classe CrewaiTool depuis ADK et de ScrapeWebsiteTool depuis crewai_tools.
-
Ajoutez le code suivant à l'endroit indiqué dans le fichier agent.py pour ajouter l'outil CrewAI Scrape Website à votre agent, ainsi qu'un nom et une description :
tools = [
CrewaiTool(
name="scrape_apnews",
description=(
"""Scrapes the latest news content from
the Associated Press (AP) News website."""
),
tool=ScrapeWebsiteTool("https://apnews.com/")
)
]
L'outil ScrapeWebsiteTool va charger le contenu du site Web d'actualités Associated Press, apnews.com.
-
Enregistrez le fichier.
-
Vous exécuterez cet agent à l'aide de l'interface de ligne de commande pour vous familiariser avec cette méthode pratique de test rapide d'un agent. Dans le terminal Cloud Shell, à partir du répertoire du projet adk_tools, lancez l'agent avec l'UI de ligne de commande ADK à l'aide de la commande suivante :
adk run crewai_tool_agent
-
Pendant le chargement de l'agent, des avertissements peuvent s'afficher. Vous pouvez les ignorer. Lorsque l'invite user: s'affiche, saisissez :
Get 10 of the latest headlines from AP News.
Résultat :
Using Tool: Read website content
[crewai_tool_agent]: Here are the latest headlines from AP News:
...
-
Notez que l'interface de ligne de commande vous indique également quand un outil est utilisé.
-
Dans le terminal, répondez à l'invite user: en saisissant exit pour quitter l'interface de ligne de commande.
-
Faites défiler l'historique de votre terminal jusqu'à l'endroit où vous avez exécuté adk run crewai_tool_agent. Vous remarquerez que l'interface de ligne de commande vous a fourni un fichier journal à suivre. Copiez et exécutez cette commande pour afficher plus de détails sur l'exécution :
tail -F /tmp/agents_log/agent.latest.log
-
Appuyez sur CTRL+C pour arrêter le suivi du fichier journal et revenir à l'invite de commande.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser un outil CrewAI
Tâche 5 : Utiliser une fonction comme outil personnalisé
Lorsque les outils prédéfinis ne répondent pas entièrement à des exigences spécifiques, vous pouvez créer vos propres outils. Cela permet de personnaliser les fonctionnalités, par exemple en se connectant à des bases de données propriétaires ou en implémentant des algorithmes uniques.
La façon la plus simple de créer un outil consiste à écrire une fonction Python standard avec une docstring au format standard et à la transmettre à votre modèle en tant qu'outil. Cette approche offre flexibilité et intégration rapide.
Lorsque vous écrivez une fonction à utiliser comme outil, vous devez garder à l'esprit quelques points importants :
-
Paramètres : votre fonction peut accepter un nombre quelconque de paramètres, chacun pouvant être d'un type sérialisable au format JSON (par exemple, chaîne, entier, liste, dictionnaire). Il est important d'éviter de définir des valeurs par défaut pour les paramètres, car le grand modèle de langage (LLM) ne peut pas les interpréter pour le moment.
-
Type renvoyé : le dictionnaire est le format de retour recommandé pour un outil de fonction Python. Cela vous permet de structurer la réponse avec des paires clé-valeur, ce qui fournit un contexte et de la clarté au LLM. Par exemple, au lieu de renvoyer un code d'erreur numérique, renvoyez un dictionnaire avec une clé
"error_message" contenant une explication lisible par un humain. Il est recommandé d'inclure une clé "status" dans le dictionnaire renvoyé pour indiquer le résultat global (par exemple, "success", "error", "pending"), ce qui fournit au LLM un signal clair sur l'état de l'opération.
-
Docstring : la docstring de votre fonction sert de description à l'outil et est envoyée au LLM. Par conséquent, une docstring bien rédigée et complète est essentielle pour que le LLM comprenne comment utiliser l'outil efficacement. Expliquez clairement l'objectif de la fonction, la signification de ses paramètres et les valeurs renvoyées attendues.
Définissez une fonction et utilisez-la comme outil en procédant comme suit :
-
Dans l'explorateur de fichiers de l'éditeur Cloud Shell, accédez au répertoire adk_tools/function_tool_agent.
-
Dans le répertoire function_tool_agent, cliquez sur le fichier agent.py.
-
Notez que les fonctions get_date() et write_journal_entry() contiennent des docstrings correctement formatées pour qu'un agent ADK sache quand et comment les utiliser. Elles incluent :
- une description claire de ce que fait chaque fonction ;
- une section
Args: décrivant les paramètres d'entrée de la fonction avec des types sérialisables en JSON ;
- une section
Returns: décrivant ce que la fonction renvoie, avec le type de réponse préféré dict.
-
Pour transmettre la fonction à votre agent afin qu'il l'utilise comme outil, ajoutez le code suivant à l'endroit indiqué dans le fichier agent.py :
tools=[get_date, write_journal_entry]
-
Enregistrez le fichier.
-
Vous allez exécuter cet agent à l'aide de l'UI de développement pour voir comment ses outils vous permettent de visualiser facilement les requêtes et les réponses des outils. Dans le terminal Cloud Shell, à partir du répertoire du projet adk_tools, exécutez à nouveau l'UI de développement avec la commande suivante (si le serveur est toujours en cours d'exécution, arrêtez-le d'abord avec CTRL+C, puis exécutez la commande suivante pour le redémarrer) :
adk web
-
Cliquez sur le lien http://127.0.0.1:8000 dans le résultat du terminal.
-
L'UI de développement d'ADK s'ouvre dans un nouvel onglet du navigateur.
-
Dans le menu déroulant Sélectionner un agent à gauche, sélectionnez function_tool_agent.
-
Lancez une conversation avec l'agent en saisissant :
hello
-
L'agent doit vous demander comment s'est passée votre journée. Répondez en une phrase pour décrire votre journée (par exemple, It's been a good day. I did a cool ADK lab.), et l'agent rédigera une entrée de journal pour vous.
Exemple de résultat :

-
Notez que votre agent affiche des boutons pour la requête et la réponse de votre outil personnalisé. Vous pouvez cliquer sur chacun d'eux pour obtenir plus d'informations.
-
Fermez l'onglet de l'UI de développement.
-
Dans l'éditeur Cloud Shell, vous trouverez votre entrée de journal datée dans le répertoire adk_tools. (Vous pouvez utiliser le menu de l'éditeur Cloud Shell pour activer Affichage > Retour automatique à la ligne afin de voir l'intégralité du texte sans avoir à faire défiler la page horizontalement.)
-
Arrêtez le serveur en cliquant sur le panneau du terminal Cloud Shell et en appuyant sur Ctrl+C.
Voici quelques bonnes pratiques pour écrire des fonctions à utiliser comme outils :
-
Limitez le nombre de paramètres : vous réduirez ainsi la complexité.
-
Utilisez des types de données simples : privilégiez les types de données primitifs comme
str et int par rapport aux classes personnalisées, lorsque cela est possible.
-
Utilisez des noms explicites : le nom de la fonction et les noms des paramètres ont une incidence significative sur la façon dont le LLM interprète et utilise l'outil. Choisissez des noms qui reflètent clairement l'objectif de la fonction et la signification de ses entrées.
-
Décomposez les fonctions complexes : au lieu d'une seule fonction
update_profile(profile: Profile), créez des fonctions distinctes comme update_name(name: str), update_age(age: int), etc.
-
État renvoyé : incluez une clé
"status" dans votre dictionnaire renvoyé pour indiquer le résultat global (par exemple, "success", "error", "pending") et fournir au LLM un signal clair sur l'état de l'opération.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser une fonction comme outil personnalisé
Tâche 6 : Utiliser Vertex AI Search comme outil pour ancrer vos réponses sur vos propres données.
Dans cette tâche, vous allez découvrir à quel point il est facile de déployer une application RAG à l'aide d'un agent ADK avec l'outil Vertex AI Search intégré de Google et le datastore AI Applications que vous avez créé précédemment.
-
Revenez à l'onglet Éditeur Cloud Shell et sélectionnez le répertoire adk_tools/vertexai_search_tool_agent.
-
Cliquez sur le fichier agent.py dans le répertoire vertexai_search_tool_agent.
-
Ajoutez une importation de la classe VertexAiSearchTool à l'endroit indiqué en bas des importations :
from google.adk.tools import VertexAiSearchTool
-
Mettez à jour le code dans lequel l'objet VertexAiSearchTool est instancié. Dans le chemin transmis à data_store_id, remplacez YOUR_PROJECT_ID par et YOUR_SEARCH_APP_ID par l'ID d'application de recherche que vous avez copié dans la tâche précédente.
-
Ajoutez la ligne suivante à l'endroit indiqué dans la définition de l'agent pour lui fournir l'outil :
tools=[vertexai_search_tool]
-
Enregistrez le fichier agents.py.
Pour vérifier que votre datastore est prêt à être utilisé, sélectionnez son nom sur la page AI Applications > Datastores de la console.
Les onglets ACTIVITÉ et DOCUMENTS indiquent l'état de l'importation et de l'indexation de vos documents. Lorsque l'onglet ACTIVITÉ indique "Importation terminée", votre datastore doit être prêt à recevoir des requêtes.
-
Dans le terminal Cloud Shell, à partir du répertoire du projet adk_tools, lancez l'interface de ligne de commande avec la commande suivante. Vous allez inclure le flag --reload_agents pour que l'UI de développement recharge votre agent lorsque vous apportez des modifications.
adk web --reload_agents
Remarque : Si vous n'avez pas arrêté votre session adk web précédente, sélectionnez le panneau de terminal Cloud Shell dans lequel elle s'exécute et appuyez sur CTRL+C. Si vous ne trouvez pas l'onglet "Terminal Cloud Shell" que vous avez utilisé précédemment, le port par défaut 8000 sera bloqué, mais vous pouvez lancer l'UI de développement avec un nouveau port en utilisant la commande adk web --port 8001.
-
Cliquez sur http://127.0.0.1:8000 pour ouvrir l'UI de développement ADK.
-
Dans le menu déroulant Sélectionner un agent à gauche, sélectionnez vertexai_search_tool_agent.
-
Interrogez l'agent sur la planète fictive décrite dans vos documents Cloud Storage avec la requête suivante :
Is the new planet Persephone suitable for habitation?
Exemple de résultat (le vôtre peut être légèrement différent)
Based on the "Persephone Survey: What we Know So Far" document, Persephone exhibits several characteristics that suggest it could be habitable:
- Location: It orbits within the habitable zone of its star.
- Temperature: The average surface temperature is estimated to be around 18°C (64°F).
...
Utiliser AgentTool pour intégrer des outils de recherche à d'autres outils
Les outils de recherche présentent une limite d'implémentation : vous ne pouvez pas combiner des outils de recherche et des outils non axés sur la recherche dans le même agent. Pour contourner ce problème, vous pouvez encapsuler un agent dans un outil de recherche à l'aide d'un AgentTool, puis utiliser cet agent comme outil pour effectuer des recherches en parallèle d'autres outils.
Pour voir une démonstration :
-
Assurez-vous que le fichier adk_tools/vertexai_search_tool_agent/agent.py est ouvert.
-
Mettez à jour le paramètre tools de root_agent pour inclure l'outil de fonction get_date :
tools=[vertexai_search_tool, get_date]
-
Enregistrez le fichier.
-
Dans l'UI de développement ADK, posez la question suivante à l'agent :
What is today's date?
Résultat attendu :
-
De retour dans le fichier adk_tools/vertexai_search_tool_agent/agent.py, collez le code suivant au-dessus de votre root_agent. Cet agent est dédié à l'utilisation de l'outil de recherche et contient à la fois l'outil de recherche et les instructions pour l'utiliser :
vertexai_search_agent = Agent(
name="vertexai_search_agent",
model=os.getenv("MODEL"),
instruction="Use your search tool to look up facts.",
tools=[vertexai_search_tool]
)
-
Remplacez ensuite le paramètre tools de root_agent par le code suivant pour encapsuler l'agent créé à l'étape précédente dans AgentTool :
tools=[
AgentTool(vertexai_search_agent, skip_summarization=False),
get_date
]
-
Vous pouvez désormais interroger votre agent et recevoir des résultats de recherche ainsi qu'utiliser la fonction get_date().
Dans l'onglet du navigateur de l'UI de développement ADK, cliquez sur + Nouvelle session.
-
Posez à nouveau la question :
What is today's date?
L'agent doit répondre en indiquant la date correcte.
-
Pour appeler l'outil de recherche, demandez :
When is the PlanetCon conference?
Résultat attendu :
The PlanetCon: Persephone conference is scheduled for October 26th - 28th, 2028.
-
N'hésitez pas à poser d'autres questions à l'agent sur cette nouvelle planète et sur la conférence durant laquelle sa découverte sera annoncée. Lorsque vous êtes satisfait du résultat, fermez l'onglet de l'UI de développement.
-
Lorsque vous avez terminé de poser des questions à cet agent, fermez l'onglet du navigateur, sélectionnez la fenêtre de terminal Cloud Shell dans laquelle le serveur s'exécute et appuyez sur CTRL+C pour arrêter le serveur.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Utiliser un outil fourni par Google
Encore plus de types d'outils !
Il est utile de connaître les types d'outils suivants, mais vous ne les implémenterez pas dans cet atelier.
Classe LongRunningFunctionTool
Cet outil est une sous-classe de FunctionTool. Il est conçu pour les tâches qui nécessitent un temps de traitement important et qui doivent être appelées sans bloquer l'exécution de l'agent.
Lorsque vous utilisez un LongRunningFunctionTool, votre fonction Python peut lancer l'opération de longue durée et, si vous le souhaitez, renvoyer un résultat intermédiaire pour informer le modèle et l'utilisateur de l'avancement (par exemple, des mises à jour de l'état ou une estimation du temps nécessaire pour terminer l'opération). L'agent peut ensuite passer à d'autres tâches.
Par exemple, dans un scénario human-in-the-loop (avec intervention humaine), l'agent a besoin de l'approbation d'un humain avant de poursuivre une tâche.
Workflows Application Integration en tant qu'outils
Avec Application Integration, vous pouvez utiliser une interface de type glisser-déposer dans la console Google Cloud pour créer des outils, des connexions de données et des transformations de données à l'aide des plus de 100 connecteurs prédéfinis d'Integration Connectors pour les produits Google Cloud et les systèmes tiers tels que Salesforce, ServiceNow, JIRA, SAP et bien d'autres. Vous pouvez ensuite utiliser un ADK ApplicationIntegrationToolset pour permettre à vos agents de se connecter à ces sources ou d'appeler vos workflows.
Outils MCP (Model Context Protocol)
Le Model Context Protocol (MCP) est une norme ouverte conçue pour standardiser la façon dont les grands modèles de langage (LLM) comme Gemini et Claude communiquent avec des applications, des sources de données et des outils externes. ADK vous aide à utiliser et à exploiter les outils MCP dans vos agents, que vous cherchiez à créer un outil pour appeler un service MCP ou à exposer un serveur MCP pour que d'autres développeurs ou agents puissent interagir avec vos outils.
Consultez la documentation sur les outils MCP pour obtenir des exemples de code et des modèles de conception qui vous aideront à utiliser ADK avec les serveurs MCP, y compris :
-
Utiliser des serveurs MCP existants dans ADK : un agent ADK peut faire office de client MCP et utiliser les outils fournis par des serveurs MCP externes.
-
Exposer des outils ADK via un serveur MCP : comment créer un serveur MCP qui encapsule des outils ADK pour les rendre accessibles à n'importe quel client MCP.
Pour en savoir plus sur l'utilisation de MCP avec les agents ADK, consultez l'atelier Utiliser les outils MCP (Model Context Protocol) avec les agents ADK.
Félicitations !
Dans cet atelier, vous avez appris à :
- fournir des outils prédéfinis Google, LangChain ou CrewAI à un agent ;
- écrire vos propres fonctions d'outil pour un agent ;
- discuter de l'importance des docstrings structurées et du typage lors de l'écriture de fonctions pour les outils d'agent.
Étapes suivantes
Pour en savoir plus sur la création et le déploiement d'agents à l'aide de Agent Development Kit, consultez ces ateliers :
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 22 septembre 2025
Dernier test de l'atelier : 22 septembre 2025
Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.