Des prototypes aux agents avec l'ADK

Des prototypes aux agents avec ADK

À propos de cet atelier de programmation

subjectDernière mise à jour : juin 12, 2025
account_circleRédigé par Author: Abirami Sukumaran

1. Présentation

Par où commencer à créer des applications avec l'IA ? Pour la plupart d'entre nous, cela commence souvent par une question simple : "Le modèle peut-il réellement aider à résoudre le problème auquel je pense ?". C'est là qu'intervient Google AI Studio. C'est un endroit où vous pouvez rapidement créer des prototypes de tout. Je souhaite rénover ma cuisine, et je suis sûr que Gemini peut m'aider. Mais je suis ingénieur, pas entrepreneur général. Je ne sais même pas quoi demander. Il y a tellement de choses à prendre en compte: les réglementations, les installations, etc. Alors, commençons par demander à Gemini de générer une requête très détaillée, puis un plan de rénovation complet et une visualisation de la rénovation. Mais attendez. Comment puis-je aider les entreprises à se développer ? Saisissez AGENTS!!!

Un agent est un programme autonome qui communique avec un modèle d'IA pour effectuer une opération basée sur un objectif à l'aide des outils et du contexte dont il dispose. Il est capable de prendre des décisions autonomes basées sur la vérité.

Agent Development Kit (ADK)

L'Agent Development Kit (ADK) est un framework flexible et modulaire permettant de développer et de déployer des agents d'IA. L'ADK permet de créer des applications sophistiquées en composant plusieurs instances d'agents distinctes dans un système multi-agents (MAS).

Dans ADK, un système multi-agent est une application dans laquelle différents agents, formant souvent une hiérarchie, collaborent ou se coordonnent pour atteindre un objectif plus vaste. Structurer votre application de cette manière offre des avantages importants, y compris une modularité, une spécialisation, une réutilisation et une facilité de maintenance améliorées, ainsi que la possibilité de définir des flux de contrôle structurés à l'aide d'agents de workflow dédiés.

Ce que vous allez faire

Prêt à passer de notre prototype PROMPT à la création d'un agent ? Nous allons créer un agent pour vous aider à générer le document de proposition pour le projet de rénovation de cuisine. Au cours de cet atelier, vous allez:

  1. Créer un agent simple pour générer un document de proposition de rénovation avec ADK
  2. Stocker le document de proposition de rénovation généré dans un bucket Cloud Storage
  3. Tester l'agent dans Cloud Shell et dans la sortie Web de l'agent

Conditions requises

  • Un navigateur tel que Chrome ou Firefox
  • Un projet Google Cloud avec facturation activée.

2. Avant de commencer

Créer un projet

  1. Dans la console Google Cloud, sur la page du sélecteur de projet, sélectionnez ou créez un projet Google Cloud.
  2. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet .
  3. Si vous lisez cet article et que vous souhaitez obtenir des crédits pour vous aider à démarrer avec Google Cloud et à utiliser ADK, cliquez ici pour les utiliser.
  4. Pour l'utiliser, suivez les instructions ici. Veuillez noter que ce lien n'est valable que jusqu'au 15 juillet 2025.
  5. Activez Cloud Shell en cliquant sur ce lien. Vous pouvez basculer entre le terminal Cloud Shell (pour exécuter des commandes cloud) et l'éditeur (pour créer des projets) en cliquant sur le bouton correspondant dans Cloud Shell.
  6. Une fois connecté à Cloud Shell, vérifiez que vous êtes déjà authentifié et que le projet est défini avec votre ID de projet à l'aide de la commande suivante:
gcloud auth list
  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet.
gcloud config list project
  1. Si votre projet n'est pas défini, utilisez la commande suivante pour le définir :
gcloud config set project <YOUR_PROJECT_ID>
  1. Assurez-vous d'avoir installé Python 3.9 ou une version ultérieure.

Consultez la documentation pour connaître les autres commandes gcloud ainsi que leur utilisation.

3. Prototype

Accédez à Google AI Studio. Commencez à saisir votre requête. Voici ma requête:

I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.

Ajustez et configurez les paramètres à droite pour obtenir une réponse optimale.

Sur la base de cette description simple, Gemini m'a proposé une requête incroyablement détaillée pour lancer ma rénovation. En effet, nous utilisons Gemini pour obtenir des réponses encore meilleures d'AI Studio et de nos modèles. Vous pouvez également sélectionner différents modèles à utiliser en fonction de votre cas d'utilisation.

Nous avons choisi Gemini 2.5 Pro. Il s'agit d'un modèle de réflexion, ce qui signifie que nous obtenons encore plus de jetons de sortie, dans ce cas jusqu'à 65 000 jetons, pour les analyses longues et les documents détaillés. La boîte de réflexion Gemini s'affiche lorsque vous activez Gemini 2.5 Pro, qui dispose de capacités de raisonnement natives et peut accepter des requêtes de contexte longues.

Consultez l'extrait de la réponse ci-dessous:

a80d4bad4b3864f7.png

AI Studio a analysé mes données et a produit tous ces éléments, comme les armoires, les plans de travail, le dosseret, le revêtement de sol, l'évier, la cohésion, la palette de couleurs et la sélection de matériaux. Gemini cite même des sources !

Essayez maintenant de donner vie à l'idée avec une autre requête.

  1. Copiez cette invite et collez-la dans l'éditeur d'invites:
Add flat and circular light accessories above the island area for my current kitchen in the attached image.
  1. Joignez une image de votre cuisine actuelle (ou vous pouvez utiliser mon exemple d'image de cuisine).
  2. Définissez le modèle sur "Gemini 2.0 Flash Preview Image Generation" (Génération d'images Preview Gemini 2.0 Flash) pour pouvoir générer des images.

J'ai obtenu le résultat suivant:

b5b1e83fcada28f5.png

C'est là l'intérêt de Gemini !

De la compréhension des vidéos à la génération d'images natives en passant par l'ancrage d'informations réelles avec la recherche Google, il existe des fonctionnalités qui ne peuvent être créées qu'avec Gemini.

Dans AI Studio, vous pouvez prendre ce prototype, récupérer la clé API et l'étendre en une application agentique complète à l'aide de la puissance du SDK Vertex AI.

4. Configuration de l&#39;ADK

Passons maintenant au terminal Cloud Shell que nous avons activé dans la section "Avant de commencer" :

  1. Créer et activer un environnement virtuel (recommandé)

Dans le terminal Cloud Shell, créez un environnement virtuel:

python -m venv .venv

Activez l'environnement virtuel:

source .venv/bin/activate
  1. Installer l'ADK
pip install google-adk

5. Structure du projet

  1. Dans le terminal Cloud Shell, créez un répertoire racine pour vos applications agentiques à l'emplacement de votre projet souhaité:
mkdir agentic-apps
  1. Dans le répertoire principal, créez un dossier spécifique à notre projet actuel:
mkdir renovation-agent
  1. Accédez à l'éditeur Cloud Shell et créez la structure de projet suivante en créant les fichiers (vides au départ):
renovation-agent/
        __init__
.py
        agent
.py
        requirements
.txt
       
.env

6. Code source

  1. Accédez à init.py et remplacez son contenu par le suivant:
from . import agent
  1. Accédez à agent.py et remplacez le contenu du fichier par le contenu suivant à partir du chemin d'accès suivant:
https://github.com/AbiramiSukumaran/adk-renovation-single-agent/blob/main/agent.py

Dans agent.py, nous importons les dépendances nécessaires, récupérons les paramètres de configuration à partir du fichier .env et définissons le root_agent, qui génère un document de proposition et le stocke dans un bucket Cloud Storage. Pour effectuer l'étape Cloud Storage, nous utilisons un outil appelé store_pdf.

  1. Vérifier que vous disposez d'un bucket Cloud Storage

Il s'agit de stocker le document de proposition généré par l'agent. Créez-le et provisionnez l'accès afin que le système agentique que nous créons avec Vertex AI puisse y accéder. Pour ce faire, procédez comme suit:

https://cloud.google.com/storage/docs/creating-buckets#console

Nommez votre bucket "next-demo-store". Si vous lui donnez un autre nom, n'oubliez pas de modifier la valeur de STORAGE_BUCKET dans le fichier .env (à l'étape de configuration des variables ENV).

  1. Pour configurer l'accès au bucket, accédez à la console Cloud Storage et à votre bucket de stockage (dans notre cas, le nom du bucket est "next-demo-storage": https://console.cloud.google.com/storage/browser/next-demo-storage).

Accédez à Autorisations -> Afficher les comptes principaux -> Accorder l'accès. Sélectionnez "allUsers" comme principal et "Storage Object User" comme rôle.

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
  1. Créer une liste de dépendances

Listez toutes les dépendances dans requirements.txt. Vous pouvez le copier à partir du dépôt.

Explication du code source du système à agent unique

Le fichier agent.py définit la structure et le comportement de notre système multi-agent de rénovation de cuisine à l'aide de l'Agent Development Kit (ADK). Passons en revue les principaux composants:

Définition de l'agent

Agent racine (Orchestrator): proposal_agent

root_agent sert d'orchestrateur de ce système à agent unique. Il reçoit la demande de rénovation initiale et détermine les outils à appeler en fonction des besoins de la demande.

Le root_agent collecte ensuite les réponses des outils et les combine pour fournir une réponse complète à l'utilisateur. Dans ce cas, nous n'avons qu'un seul outil, "store_pdf".

7. Flux de données et concepts clés

L'utilisateur envoie une requête via l'interface ADK (terminal ou UI Web).

  1. La requête est reçue par root_agent.
  2. root_agent analyse la requête et l'achemine vers l'outil au besoin.
  3. L'outil "store_pdf" est conçu pour écrire le contenu textuel rénové dans un fichier PDF, puis l'importer dans Google Cloud Storage.
  4. La réponse est ensuite renvoyée à root_agent.
  5. root_agent combine les réponses et fournit une sortie finale à l'utilisateur.

Grands modèles de langage (LLM)

Les agents s'appuient fortement sur les LLM pour générer du texte, répondre aux questions et effectuer des tâches de raisonnement. Les LLM sont le "cerveau" qui permet aux agents de comprendre et de répondre aux requêtes des utilisateurs. Nous utilisons Gemini 2.5 dans cette application.

Google Cloud Storage

Permet de stocker les documents de proposition de rénovation générés. Vous devez créer un bucket et accorder les autorisations nécessaires aux agents pour qu'ils y aient accès.

Cloud Run (facultatif)

OrderingAgent utilise une fonction Cloud Run pour interagir avec AlloyDB. Cloud Run fournit un environnement sans serveur pour exécuter du code en réponse à des requêtes HTTP.

AlloyDB

Si vous utilisez OrderingAgent, vous devez configurer une base de données AlloyDB pour stocker les informations sur les commandes.

Fichier.env

Le fichier .env stocke des informations sensibles telles que des clés API, des identifiants de base de données et des noms de buckets. Il est essentiel de sécuriser ce fichier et de ne pas le valider dans votre dépôt. Il stocke également les paramètres de configuration des agents et de votre projet Google Cloud. Le root_agent ou les fonctions d'assistance lisent généralement les valeurs de ce fichier. Assurez-vous que toutes les variables requises sont correctement définies dans le fichier .env. y compris le nom du bucket Cloud Storage ;

8. Configuration du modèle

La capacité de votre agent à comprendre les requêtes des utilisateurs et à générer des réponses est assurée par un grand modèle de langage (LLM). Votre agent doit effectuer des appels sécurisés à ce service LLM externe, qui nécessite des identifiants d'authentification. Sans authentification valide, le service LLM refusera les requêtes de l'agent, qui ne pourra plus fonctionner.

  1. Obtenez une clé API depuis Google AI Studio.
  2. À l'étape suivante, lorsque vous configurerez le fichier .env, remplacez <<your API KEY>> par la valeur de votre clé API.

9. Configuration des variables d&#39;environnement

  1. Définissez les valeurs des paramètres dans le fichier .env du modèle dans ce dépôt. Dans mon cas, le fichier .env contient les variables suivantes:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION = us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT = <<your project id>>
PROJECT_ID = <<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET = next-demo-store <<or your storage bucket name>>

Remplacez les espaces réservés par vos valeurs.

10. Exécuter votre agent

  1. Dans le terminal, accédez au répertoire parent de votre projet d'agent:
cd agentic-apps/renovation-agent
  1. Installer toutes les dépendances
pip install -r requirements.txt
  1. Vous pouvez exécuter la commande suivante dans votre terminal Cloud Shell pour exécuter l'agent:
adk run .
  1. Vous pouvez exécuter la commande suivante pour l'exécuter dans une UI Web provisionnée par l'ADK:
adk web
  1. Testez avec les requêtes suivantes:
user>> 

Hello. Generate Proposal Document for the kitchen remodel requirement in a proper format that applies to a renovation contract. Remember this text will eventually be stored as a pdf file so make sure to have the formatting appropriate. I have no other specification.

11. Résultat

Pour la commande adk run . Le résultat est le suivant"

ae50e6f6b2bab0a0.png

38a2c34667a8fd05.png

a8a39e8323d3ceb9.png

Vous pouvez vérifier si le document "Proposition de rénovation" est créé dans le bucket Cloud Storage.

12. Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cet article soient facturées sur votre compte Google Cloud, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.
  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

13. Félicitations

Félicitations ! Vous avez créé et interagi avec votre application multi-agent à l'aide de l'ADK. Le système multi-agent est conçu pour simplifier le processus de rénovation de cuisine en automatisant des tâches telles que la génération de propositions, la vérification des autorisations et le suivi de l'état des commandes. Chaque agent a un rôle spécifique, et l'agent root_agent coordonne leurs activités pour fournir une solution complète. Pour assurer son fonctionnement, le système s'appuie sur des LLM, des services Google Cloud et des API externes. Cliquez ici pour accéder à la documentation du produit.