1. Avant de commencer
Bienvenue dans la deuxième partie de la série "Créer des agents IA avec ADK" ! Dans cet atelier de programmation pratique, vous allez équiper un agent IA de base avec différents outils.
Pour commencer, ce guide propose deux parcours : l'un pour ceux qui poursuivent l'atelier de programmation Créer des agents IA avec ADK : les bases, et l'autre pour ceux qui débutent. Les deux parcours vous permettront de disposer du code d'agent de base nécessaire pour commencer.
À la fin de cet atelier de programmation, vous aurez équipé votre agent assistant personnel d'outils à diverses fins, ce qui vous permettra de le développer dans les parties suivantes de cette série pour le transformer en un système multi-agent (SMA) sophistiqué.
Vous pouvez également accéder à cet atelier de programmation via l'URL raccourcie suivante : goo.gle/adk-using-tools.
Prérequis
- Comprendre les concepts de l'IA générative
- Avoir des connaissances de base en programmation Python
- Avoir suivi l'atelier de programmation Créer des agents IA avec ADK : les bases ou un atelier similaire
Points abordés
- Donner de nouvelles compétences à votre agent en créant des fonctions Python personnalisées en tant qu'outils
- Connecter votre agent à des informations en temps réel à l'aide d'outils intégrés tels que la recherche Google
- Structurer un agent multi-outils en créant des sous-agents spécialisés pour les tâches complexes
- Intégrer des outils provenant de frameworks d'IA populaires comme LangChain pour étendre rapidement les capacités
Prérequis
- Un ordinateur qui fonctionne et un réseau Wi-Fi fiable
- Un navigateur, tel que Chrome, pour accéder à Google Cloud Console
- Un esprit curieux et l'envie d'apprendre
2. Introduction
Un agent de base créé avec ADK dispose d'un puissant cerveau LLM, mais il présente également des limites : il ne peut pas accéder aux informations créées après sa date d'entraînement et ne peut pas interagir avec des services externes. C'est comme un assistant brillant et érudit enfermé dans une bibliothèque sans téléphone ni Internet. Pour qu'un agent soit vraiment utile, nous devons lui fournir des outils.
Considérez les outils comme un moyen de donner à cet assistant IA un accès au monde extérieur : une calculatrice, un navigateur Web ou un accès à une base de données d'entreprise spécifique. Dans ADK, un outil est un élément de code modulaire qui permet à l'agent d'effectuer des actions spécifiques, comme rechercher des données en temps réel ou appeler une API externe. L'utilisation d'outils étend ses capacités bien au-delà d'une simple conversation.
ADK propose trois catégories d'outils :
- Outils de fonction : outils personnalisés que vous développez pour répondre aux exigences uniques de votre application, tels que des fonctions et des agents prédéfinis.
- Outils intégrés : outils prêts à l'emploi fournis par le framework pour les opérations courantes, comme la recherche Google et l'exécution de code.
- Outils tiers : bibliothèques externes populaires telles que Serper et outils de LangChain et CrewAI.
Pour en savoir plus sur l'utilisation d'outils avec les agents ADK, consultez la documentation officielle. Dans cet atelier de programmation, nous allons ajouter des outils pour transformer notre agent simple en un assistant de voyage personnel compétent. C'est parti !
3. Premiers pas : votre agent de base
Avant de pouvoir équiper un agent avec des outils, vous avez besoin d'un agent de base avec lequel travailler. Choisissez le parcours qui correspond le mieux à votre progression.
Parcours A : poursuivre l'atelier de programmation sur les bases
Si vous venez de terminer l'atelier de programmation Créer des agents IA avec ADK : les bases, vous êtes prêt. Vous pouvez continuer à travailler dans votre répertoire de projet ai-agents-adk existant.
Si vous ne voyez pas (ai-agents-adk) dans l'invite Cloud Shell, exécutez ces commandes pour activer l'environnement virtuel Python :
cd ~/ai-agents-adk
source .venv/bin/activate
Parcours B : commencer à zéro
Si vous commencez cet atelier de programmation directement, suivez ces quatre étapes pour configurer votre environnement et créer l'agent de démarrage nécessaire.
- Configurer les services Google Cloud
- Créer un environnement virtuel Python
- Créer un agent
- Exécuter l'agent dans l'UI de développement
Une fois ces étapes terminées, vous pouvez commencer votre parcours d'apprentissage.
4. Créer un outil personnalisé pour le change de devises
À ce stade, vous devriez déjà savoir comment créer un agent IA simple à l'aide d'ADK et l'exécuter dans l'UI de développement.
Imaginez que vous préparez un voyage au Japon le mois prochain et que vous devez vérifier le taux de change actuel. Posez la question suivante à l'agent : "Quel est le taux de change entre le dollar singapourien et le yen japonais ?"

Vous verrez que l'agent ne peut pas récupérer les taux de change en temps réel. En effet, l'agent n'a actuellement pas accès à Internet ni à la connectivité du système externe. Même si l'agent répond avec une valeur, il est difficile de lui faire confiance, car il s'agit probablement d'une hallucination.
Pour résoudre ce problème, nous allons implémenter une fonction Python pour récupérer les taux de change via une API REST et l'intégrer en tant qu'outil de fonction pour l'agent.
Arrêtez le processus d'agent en cours d'exécution à l'aide du raccourci clavier Ctrl+C dans la fenêtre de terminal.
Créer le fichier custom_functions.py
Exécutez cette commande dans le terminal pour créer un fichier Python nommé custom_functions.py dans le dossier personal_assistant et l'ouvrir dans l'éditeur de code.
cloudshell edit personal_assistant/custom_functions.py
Voici à quoi doit maintenant ressembler la structure de votre dossier :
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
└── custom_functions.py
Ce fichier custom_functions.py contient la fonction Python chargée de récupérer les données de taux de change à partir d'une API externe. Copiez et collez le code suivant dans le fichier :
import requests
# define a function to get exchange rate
def get_fx_rate(base: str, target: str):
"""
Fetches the current exchange rate between two currencies.
Args:
base: The base currency (e.g., "SGD").
target: The target currency (e.g., "JPY").
Returns:
The exchange rate information as a json response,
or None if the rate could not be fetched.
"""
base_url = "https://hexarate.paikama.co/api/rates/latest"
api_url = f"{base_url}/{base}?target={target}"
response = requests.get(api_url)
if response.status_code == 200:
return response.json()
Modifiez maintenant le fichier agent.py : importez la fonction get_fx_rate et attribuez-la en tant que FunctionTool.
Mettre à jour le fichier agent.py
Copiez ce bloc de code et remplacez le contenu existant du fichier agent.py :
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from .custom_functions import get_fx_rate
root_agent = Agent(
model='gemini-3.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
tools=[FunctionTool(get_fx_rate)]
)
Après les modifications, redémarrez l'agent en saisissant :
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Lorsque l'agent est opérationnel, posez à nouveau la même question : "Quel est le taux de change entre le dollar singapourien et le yen japonais ?"
Cette fois-ci, vous devriez voir le taux de change réel fourni par l'outil get_fx_rate.

N'hésitez pas à poser toutes les questions que vous souhaitez sur le change de devises.
5. Intégrer l'outil de recherche Google intégré
L'agent étant désormais en mesure de fournir des taux de change, la tâche suivante consiste à obtenir les prévisions météorologiques du mois prochain. Posez la question suivante à l'agent : "Quelles sont les prévisions météorologiques à Tokyo, au Japon, pour le mois prochain ?"

Comme vous pouvez vous y attendre, les prévisions météorologiques nécessitent des informations en temps réel que notre agent ne possède pas. Bien que nous puissions coder de nouvelles fonctions Python pour chaque cas d'utilisation nécessitant des données en temps réel, l'ajout d'un nombre croissant d'outils personnalisés rend rapidement l'agent trop complexe et difficile à gérer.
Heureusement, Agent Development Kit (ADK) fournit une suite d'outils intégrés, y compris la recherche Google, qui sont prêts à l'emploi et simplifient l'interaction de notre agent avec le monde extérieur.
Pour équiper l'agent avec l'outil de recherche Google, vous devez implémenter un modèle multi-agents. Tout d'abord, vous créez un agent spécialisé dont la seule tâche consiste à effectuer des recherches Google. Ensuite, vous attribuez ce nouvel agent de recherche Google à notre personal_assistant principal en tant qu'outil. Procédez comme suit :
Créer le fichier custom_agents.py
Exécutez cette commande dans le terminal pour créer un fichier Python nommé custom_agents.py dans le dossier personal_assistant et l'ouvrir dans l'éditeur de code :
cloudshell edit personal_assistant/custom_agents.py
Voici à quoi doit maintenant ressembler la structure de votre dossier :
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
└── custom_agents.py
Ce fichier custom_agents.py contient le code du google_search_agent spécialisé. Copiez le code suivant dans le fichier custom_agents.py :
from google.adk.agents import Agent
from google.adk.tools import google_search
# Create an agent with google search tool as a search specialist
google_search_agent = Agent(
model='gemini-3.5-flash',
name='google_search_agent',
description='A search agent that uses google search to get latest information about current events, weather, or business hours.',
instruction='Use google search to answer user questions about real-time, logistical information.',
tools=[google_search],
)
Une fois le fichier créé, mettez à jour le fichier agent.py comme indiqué ci-dessous.
Mettre à jour le fichier agent.py
Copiez ce bloc de code et remplacez le contenu existant du fichier agent.py :
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
root_agent = Agent(
model='gemini-3.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
]
)
Examinons le nouveau modèle puissant du code :
- Un nouvel agent spécialisé : nous avons défini un agent entièrement nouveau,
google_search_agent. Notez sa description spécifique et le fait que son seul outil estgoogle_search. Il s'agit d'un spécialiste de la recherche. agent_tool.AgentTool: il s'agit d'un wrapper spécial d'ADK. Il prend un agent entier (notre google_search_agent) et l'empaquète pour qu'il ressemble et agisse comme un outil standard.- Un
root_agentplus intelligent : notreroot_agentdispose désormais d'un nouvel outil :AgentTool(agent=google_search_agent). Il ne sait pas comment effectuer des recherches sur le Web, mais il sait qu'il dispose d'un outil auquel il peut déléguer des tâches de recherche.
Notez que le champ d'instruction a disparu de root_agent. Ses instructions sont désormais implicitement définies par les outils dont il dispose.
Le root_agent est devenu un orchestrateur ou un routeur, dont la tâche principale consiste à comprendre la requête d'un utilisateur et à la transmettre à l'outil approprié, soit la fonction get_fx_rate, soit le google_search_agent. Cette conception décentralisée est essentielle pour créer des systèmes d'agents complexes et faciles à gérer.
Saisissez maintenant cette commande dans le terminal pour démarrer l'instance :
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Une fois l'agent en cours d'exécution, posez à nouveau la question suivante : "Quelles sont les prévisions météorologiques à Tokyo, au Japon, pour le mois prochain ?"

L'agent utilise désormais google_search_agent pour obtenir les dernières informations.
Vous pouvez également essayer de poser une question sur le taux de change actuel. L'agent devrait maintenant être en mesure d'utiliser l'outil approprié pour la question correspondante.

N'hésitez pas à poser à l'agent d'autres questions nécessitant des informations en temps réel et à observer comment il gère les requêtes à l'aide des outils dont il dispose.
6. Exploiter l'outil Wikipédia de LangChain
Notre agent est en train de devenir un excellent assistant de voyage. Il peut gérer le change de devises avec son outil get_fx_rate et gérer la logistique avec son outil google_search_agent. Mais un voyage réussi ne se limite pas à la logistique. Il s'agit également de comprendre la culture et l'histoire de votre destination.
Bien que le google_search_agent puisse trouver des faits culturels et historiques, les informations provenant d'une source dédiée comme Wikipédia sont souvent plus structurées et fiables.
Heureusement, ADK est conçu pour être hautement extensible, ce qui vous permet d'intégrer facilement des outils provenant d'autres frameworks d'agents IA comme CrewAI et LangChain. Cette interopérabilité est essentielle, car elle permet de réduire le temps de développement et de réutiliser les outils existants. Pour ce cas d'utilisation, nous allons exploiter les outils Wikipédia de LangChain.
Tout d'abord, arrêtez le processus d'agent en cours d'exécution (Ctrl+C) et installez des bibliothèques supplémentaires dans l'environnement virtuel Python actuel en saisissant les commandes suivantes dans le terminal.
uv pip install langchain-community wikipedia
Créer le fichier third_party_tools.py
La commande suivante crée un fichier Python nommé third_party_tools.py dans le dossier personal_assistant et l'ouvre dans l'éditeur Cloud :
cloudshell edit personal_assistant/third_party_tools.py
Voici à quoi doit maintenant ressembler la structure de votre dossier :
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
├── custom_agents.py
└── third_party_tools.py
Ce fichier contient l'implémentation de l'outil Wikipédia de LangChain. Copiez le code suivant dans le fichier third_party_tools.py :
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
# Configure the Wikipedia LangChain tool to act as our cultural guide
langchain_wikipedia_tool = WikipediaQueryRun(
api_wrapper=WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=3000)
)
# Give the tool a more specific description for our agent
langchain_wikipedia_tool.description = (
"Provides deep historical and cultural information on landmarks, concepts, and places."
"Use this for 'tell me about' or 'what is the history of' type questions."
)
Mettre à jour le fichier agent.py
Mettez maintenant à jour le fichier agent.py avec le contenu ci-dessous :
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from google.adk.tools.langchain_tool import LangchainTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
from .third_party_tools import langchain_wikipedia_tool
root_agent = Agent(
model='gemini-3.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
LangchainTool(langchain_wikipedia_tool),
]
)
Saisissez maintenant cette commande dans le terminal pour démarrer l'instance :
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Lorsque l'agent est prêt, posez-lui la question suivante : "Parle-moi de l'histoire de Kyoto".

L'agent identifie correctement qu'il s'agit d'une requête historique et utilise son nouvel outil Wikipédia. En intégrant un outil tiers et en lui attribuant un rôle spécifique, vous avez rendu votre agent beaucoup plus intelligent et utile pour la planification de voyages.
Pour voir exactement comment l'agent a fait ce choix, vous pouvez utiliser l'inspecteur d'événements dans l'UI adk web. Cliquez sur l'onglet "Événements", puis sur l'événement functionCall le plus récent.

L'inspecteur affiche la liste de tous les outils disponibles et met en évidence le tool_code de celui qui a été exécuté par l'agent.

7. Nettoyer (facultatif)
Étant donné que cet atelier de programmation n'implique aucun produit à longue durée d'exécution, il suffit d'arrêter vos sessions d'agent actives (par exemple, l'instance adk web dans votre terminal) en appuyant sur Ctrl+C dans le terminal.
Supprimer les dossiers et les fichiers du projet d'agent
Si vous ne souhaitez supprimer le code que de votre environnement Cloud Shell, utilisez les commandes suivantes :
cd ~
rm -rf ai-agents-adk
Désactiver l'API Vertex AI
Pour désactiver l'API Vertex AI qui a été activée précédemment, exécutez cette commande :
gcloud services disable aiplatform.googleapis.com
Arrêter l'ensemble du projet Google Cloud
Si vous souhaitez arrêter complètement votre projet Google Cloud, consultez le guide officiel pour obtenir des instructions détaillées.
8. Conclusion
Félicitations ! Vous avez équipé l'agent assistant personnel avec des fonctions personnalisées et un accès en temps réel à la recherche Google. Consultez cette documentation officielle sur l'utilisation d'outils avec Google ADK.
Plus important encore, vous avez appris le modèle architectural fondamental pour créer des agents compétents : utiliser des agents spécialisés comme outils. En créant un google_search_agent dédié et en le donnant à votre root_agent, vous avez fait le premier pas pour passer de la création d'un seul agent à l'orchestration d'un système multi-agents simple, mais puissant.
Vous êtes maintenant parfaitement préparé pour le prochain atelier de programmation (à venir) de la série, dans lequel nous examinerons plus en détail l'orchestration de plusieurs agents et workflows. J'espère vous y retrouver !