Application multi-agent avec ADK, Agent Engine et AlloyDB

Application multi-agent avec ADK, Agent Engine et AlloyDB

À propos de cet atelier de programmation

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

1. Présentation

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é.

Lorsque votre application comporte plusieurs agents qui travaillent ensemble de manière autonome et conjointe pour répondre à son objectif global, et que chacun de ses agents est indépendant, compétent et responsable d'un domaine spécifique, votre application devient un système multi-agent.

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.

À retenir pour un système multi-agent

Tout d'abord, il est important de bien comprendre et de raisonner sur la spécialisation de chaque agent. — "Savez-vous pourquoi vous avez besoin d'un sous-agent spécifique pour quelque chose ?", commencez par cela.

Deuxièmement, comment les rassembler avec un agent racine pour acheminer et interpréter chacune des réponses.

Troisièmement, vous trouverez dans cette documentation plusieurs types d'acheminement des agents. Choisissez celle qui convient le mieux au flux de votre application. Indiquez également les différents contextes et états dont vous avez besoin pour la gestion des flux de votre système multi-agent.

Ce que vous allez faire

Créons un système multi-agent pour gérer les rénovations de cuisine. C'est ce que nous allons faire. Nous allons créer un système avec trois agents.

  1. Agent de proposition de rénovation
  2. Agent de vérification des autorisations et de la conformité
  3. Agent de vérification de l'état de la commande

Agent de proposition de rénovation, pour générer le document de proposition de rénovation de cuisine.

Agent chargé des autorisations et de la conformité, pour s'occuper des autorisations et des tâches liées à la conformité.

L'agent de vérification de l'état des commandes permet de vérifier l'état des commandes de matériaux en travaillant sur la base de données de gestion des commandes que nous avons configurée dans AlloyDB.

Un agent racine orchestre ces agents en fonction des exigences.

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 .

Si vous lisez cet article et que vous souhaitez obtenir des crédits pour vous aider à démarrer avec Google Cloud et à utiliser ADK, utilisez ce lien pour les utiliser. Pour l'utiliser, suivez les instructions disponibles ici. Veuillez noter que ce lien n'est valable que jusqu'à la fin du mois de mai.

  1. 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.
  2. 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.
  2. Activez les API suivantes en exécutant les commandes suivantes:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. Consultez la documentation pour connaître les commandes gcloud ainsi que leur utilisation.

3. Prototype

Vous pouvez ignorer cette étape si vous choisissez le modèle Gemini 2.5 Pro pour le projet.

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 !

Répétez l'opération avec différents choix de modèles jusqu'à ce que le résultat vous convienne. Mais pourquoi passer par tout cela alors que vous avez Gemini 2.5 ?

Essayons maintenant de donner vie à cette idée avec une autre requête:

Add flat and circular light accessories above the island area for my current kitchen in the attached image.

Joignez un lien vers l'image de votre cuisine actuelle (ou toute image d'exemple de cuisine). 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

  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 à l'emplacement souhaité pour votre projet.
mkdir agentic-apps
cd agentic
-apps
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
       
.env
        requirements
.txt

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-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 orchestre les trois sous-agents que nous nous proposons de créer dans cette application. Plusieurs outils aident à gérer les fonctions principales et secondaires de ces sous-agents.

  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 fournissez-lui un accès afin que le système multi-agents créé 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 multi-agent

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éfinitions des agents

RenovationProposalAgent

Cet agent est chargé de créer le document de proposition de rénovation de la cuisine. Il peut prendre en entrée des paramètres tels que la taille de la cuisine, le style souhaité, le budget et les préférences du client. Sur la base de ces informations, il utilise un grand modèle de langage (LLM) Gemini 2.5 pour générer une proposition détaillée. La proposition générée est ensuite stockée dans un bucket Google Cloud Storage.

PermitsAndComplianceCheckAgent

Son rôle est de s'assurer que le projet de rénovation respecte les codes et règlements locaux en matière de construction. Il reçoit des informations sur la rénovation proposée (par exemple, les modifications structurelles, les travaux électriques et les modifications de plomberie) et utilise le LLM pour vérifier les exigences liées aux permis et les règles de conformité. L'agent utilise les informations d'une base de connaissances (que vous pouvez personnaliser pour accéder à des API externes afin de collecter les réglementations pertinentes).

OrderingAgent

Cet agent (que vous pouvez commenter si vous ne souhaitez pas l'implémenter maintenant) permet de vérifier l'état de la commande des matériaux et équipements nécessaires à la rénovation. Pour l'activer, vous devez créer une fonction Cloud Run, comme décrit dans les étapes de configuration. L'agent appelle ensuite cette fonction Cloud Run, qui interagit avec une base de données AlloyDB contenant des informations sur la commande. Cela illustre l'intégration à un système de base de données pour suivre les données en temps réel.

Agent racine (orchestrateur)

root_agent agit comme l'orchestrateur central du système multi-agent. Il reçoit la demande de rénovation initiale et détermine les sous-agents à appeler en fonction des besoins de la demande. Par exemple, si la requête nécessite de vérifier les exigences liées aux autorisations, elle appelle PermitsAndComplianceCheckAgent. Si l'utilisateur souhaite vérifier l'état de la commande, il appelle OrderingAgent (s'il est activé).

L'agent racine collecte ensuite les réponses des sous-agents et les combine pour fournir une réponse complète à l'utilisateur. Il peut s'agir de résumer la proposition, de lister les autorisations requises et de fournir des informations sur l'état de la commande.

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 les sous-agents appropriés.
  3. Les sous-agents utilisent des LLM, des bases de connaissances, des API et des bases de données pour traiter la requête et générer des réponses.
  4. Les sous-agents renvoient leurs réponses à 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. Nous en parlerons plus en détail dans la section suivante intitulée "Configuration de la base de données".

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 ;

7. Configuration de la base de données

Dans l'un des outils utilisés par l'agent de commande, appelé "check_status", nous accédons à la base de données des commandes AlloyDB pour obtenir l'état des commandes. Dans cette section, nous allons configurer le cluster et l'instance de base de données AlloyDB.

Créer un cluster et une instance

  1. Accédez à la page AlloyDB dans Cloud Console. Pour trouver facilement la plupart des pages de la console Cloud, recherchez-les à l'aide de la barre de recherche de la console.
  2. Sélectionnez CRÉER UN CLUSTER sur cette page:

f76ff480c8c889aa.png

  1. Un écran semblable à celui-ci s'affiche : Créez un cluster et une instance avec les valeurs suivantes (assurez-vous que les valeurs correspondent au cas où vous cloneriez le code de l'application à partir du dépôt):
  • ID de cluster: "vector-cluster"
  • password : alloydb
  • PostgreSQL 15 / dernière version recommandée
  • Région: "us-central1"
  • Networking (Réseau) : "default"

538dba58908162fb.png

  1. Lorsque vous sélectionnez le réseau par défaut, un écran semblable à celui-ci s'affiche.

Sélectionnez CONFIGURER LA CONNEXION.
7939bbb6802a91bf.png

  1. Sélectionnez ensuite Utiliser une plage d'adresses IP automatiquement allouée, puis cliquez sur "Continuer". Après avoir examiné les informations, sélectionnez "CRÉER UNE CONNEXION". 768ff5210e79676f.png
  2. Une fois votre réseau configuré, vous pouvez continuer à créer votre cluster. Cliquez sur CRÉER UN CLUSTER pour terminer la configuration du cluster, comme illustré ci-dessous:

e06623e55195e16e.png

Assurez-vous de remplacer l'ID d'instance (que vous pouvez trouver au moment de la configuration du cluster / de l'instance) par

vector-instance. Si vous ne pouvez pas le modifier, n'oubliez pas d'utiliser votre ID d'instance dans toutes les références à venir.

Notez que la création du cluster prendra environ 10 minutes. Une fois l'opération terminée, un écran présentant une vue d'ensemble du cluster que vous venez de créer devrait s'afficher.

Ingestion de données

Il est maintenant temps d'ajouter un tableau contenant les données sur le magasin. Accédez à AlloyDB, sélectionnez le cluster principal, puis AlloyDB Studio:

847e35f1bf8a8bd8.png

Vous devrez peut-être attendre que la création de votre instance soit terminée. Connectez-vous à AlloyDB avec les identifiants que vous avez créés lors de la création du cluster. Utilisez les données suivantes pour vous authentifier auprès de PostgreSQL:

  • Nom d'utilisateur : "postgres"
  • Base de données : "postgres"
  • Mot de passe : "alloydb"

Une fois que vous vous êtes authentifié dans AlloyDB Studio, vous pouvez saisir des commandes SQL dans l'éditeur. Vous pouvez ajouter plusieurs fenêtres de l'éditeur à l'aide du signe plus à droite de la dernière fenêtre.

91a86d9469d499c4.png

Vous allez saisir des commandes pour AlloyDB dans les fenêtres d'éditeur, en utilisant les options "Run" (Exécuter), "Format" (Mettre en forme) et "Clear" (Effacer) si nécessaire.

Créer une table

Vous pouvez créer une table à l'aide de l'instruction LDD ci-dessous dans AlloyDB Studio:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

Insérer des enregistrements

Copiez l'instruction de requête insert du script database_script.sql mentionné ci-dessus dans l'éditeur.

Cliquez sur Exécuter.

Maintenant que le jeu de données est prêt, créons une application Java Cloud Run Functions pour extraire l'état.

Créer une fonction Cloud Run en Java pour extraire des informations sur l'état des commandes

  1. Créez une fonction Cloud Run à l'adresse https://console.cloud.google.com/run/create?deploymentType=function.
  2. Définissez le nom de la fonction sur check-status et choisissez Java 17 comme environnement d'exécution.
  3. Vous pouvez définir l'authentification sur Allow unauthenticated invocations (Autoriser les appels non authentifiés), car il s'agit d'une application de démonstration.
  4. Choisissez Java 17 comme environnement d'exécution et l'éditeur intégré pour le code source.
  5. À ce stade, le code d'espace réservé est chargé dans l'éditeur.

Remplacer le code d'espace réservé

  1. Remplacez le nom du fichier Java par ProposalOrdersTool.java et le nom de la classe par ProposalOrdersTool.
  2. Remplacez le code d'espace réservé dans ProposalOrdersTool.java et pom.xml par le code des fichiers respectifs dans le dossier "Cloud Run Function" de ce dépôt.
  3. Dans ProposalOrdersTool.java, recherchez la ligne de code suivante, puis remplacez les valeurs d'espace réservé par celles de votre configuration:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
  1. Cliquez sur Créer.
  2. La fonction Cloud Run sera créée et déployée.

ÉTAPE IMPORTANTE:

Une fois déployée, afin d'autoriser la fonction Cloud à accéder à notre instance de base de données AlloyDB, nous créerons le connecteur VPC.

Une fois le déploiement effectué, vous devriez pouvoir voir les fonctions dans la console Google Cloud Run Functions. Recherchez la fonction nouvellement créée (check-status), cliquez dessus, puis sur MODIFIER ET DÉPLOYER LA NOUVELLE RÉVISION (identifié par l'icône MODIFIER (stylo) en haut de la console Cloud Run Functions), puis modifiez les éléments suivants:

  1. Accédez à l'onglet "Networking" (Réseau) :

828cd861864d99ea.png

  1. Sélectionnez Se connecter à un VPC pour le trafic sortant, puis Utiliser des connecteurs d'accès au VPC sans serveur.
  2. Dans les paramètres du menu déroulant "Network" (Réseau), cliquez sur le menu déroulant "Network" (Réseau), puis sélectionnez l'option Add New VPC Connector (Ajouter un connecteur VPC) (si vous n'avez pas encore configuré le connecteur par défaut), puis suivez les instructions qui s'affichent dans la boîte de dialogue qui s'affiche:

6559ccfd10e597f2.png

  1. Attribuez un nom au connecteur VPC et assurez-vous que la région est la même que celle de votre instance. Laissez la valeur "Network" (Réseau) définie par défaut et définissez "Subnet" (Sous-réseau) sur "Custom IP Range" (Plage d'adresses IP personnalisée) avec la plage d'adresses IP 10.8.0.0 ou une autre plage disponible.
  2. Développez "Afficher les paramètres de mise à l'échelle" et assurez-vous que la configuration est exactement la suivante:

199b0ccd80215004.png

  1. Cliquez sur CRÉER. Ce connecteur devrait maintenant figurer dans les paramètres de sortie.
  2. Sélectionnez le connecteur que vous venez de créer.
  3. Choisissez d'acheminer tout le trafic via ce connecteur VPC.
  4. Cliquez sur SUIVANT, puis sur DÉPLOYER.
  5. Une fois la fonction Cloud mise à jour déployée, le point de terminaison devrait être généré.
  6. Vous devriez pouvoir la tester en cliquant sur le bouton TEST en haut de la console des fonctions Cloud Run et en exécutant la commande générée dans le terminal Cloud Shell.
  7. Le point de terminaison déployé est l'URL que vous devez mettre à jour dans la variable .env CHECK_ORDER_STATUS_ENDPOINT.

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>>
CHECK_ORDER_STATUS_ENDPOINT=<<YOUR_ENDPOINT_TO_CLOUD FUNCTION_TO_READ_ORDER_DATA_FROM_ALLOYDB>>

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 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. I have no other specification.

12. Déploiement dans Agent Engine

Maintenant que vous avez vérifié que le système multi-agent fonctionne correctement, faisons-le fonctionner sans serveur et disponible dans le cloud pour que n'importe qui / n'importe quelle application puisse l'utiliser. Décommentez l'extrait de code ci-dessous dans agent.py du dépôt, et vous pouvez déployer votre système multi-agent:

# Agent Engine Deployment:
# Create a remote app for our multiagent with agent Engine.
# This may take 1-2 minutes to finish.
# Uncomment the below segment when you're ready to deploy.

app = AdkApp(
    agent=root_agent,
    enable_tracing=True,
)

vertexai.init(
    project=PROJECT_ID,
    location=GOOGLE_CLOUD_LOCATION,
    staging_bucket=STAGING_BUCKET,
)

remote_app = agent_engines.create(
    app,
    requirements=[
        "google-cloud-aiplatform[agent_engines,adk]>=1.88",
        "google-adk",
        "pysqlite3-binary",
        "toolbox-langchain==0.1.0",
        "pdfplumber",
        "google-cloud-aiplatform",
        "cloudpickle==3.1.1",
        "pydantic==2.10.6",
        "pytest",
        "overrides",
        "scikit-learn",
        "reportlab",
        "google-auth",
        "google-cloud-storage",
    ],
)
# Deployment to Agent Engine related code ends

Exécutez à nouveau ce fichier agent.py à partir du dossier du projet avec la commande suivante:

>> cd adk-renovation-agent

>> python agent.py

L'exécution de ce code prend quelques minutes. Une fois l'opération terminée, vous recevrez un point de terminaison qui se présente comme suit:

'projects/123456789/locations/us-central1/reasoningEngines/123456'

Vous pouvez tester votre agent déployé avec le code suivant en ajoutant un nouveau fichier test.py.

import vertexai
from vertexai.preview import reasoning_engines
from vertexai import agent_engines
import os
import warnings
from dotenv import load_dotenv
load_dotenv()


GOOGLE_CLOUD_PROJECT = os.environ["GOOGLE_CLOUD_PROJECT"]
GOOGLE_CLOUD_LOCATION = os.environ["GOOGLE_CLOUD_LOCATION"]
GOOGLE_API_KEY = os.environ["GOOGLE_API_KEY"]
GOOGLE_GENAI_USE_VERTEXAI=os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
AGENT_NAME = "adk_renovation_agent"
MODEL_NAME = "gemini-2.5-pro-preview-03-25"
warnings.filterwarnings("ignore")
PROJECT_ID = GOOGLE_CLOUD_PROJECT

reasoning_engine_id = "<<YOUR_DEPLOYED_ENGINE_ID>>"

vertexai.init(project=PROJECT_ID, location="us-central1")
agent = agent_engines.get(reasoning_engine_id)
print("**********************")
print(agent)
print("**********************")


for event in agent.stream_query(
   
user_id="test_user",
   
message="I want you to check order status.",
):
   
print(event)

Dans le code ci-dessus, remplacez la valeur de l'espace réservé <<YOUR_DEPLOYED_ENGINE_ID>> et exécutez la commande python test.py. Vous êtes maintenant prêt à interagir avec un système multi-agent déployé Agent Engine et prêt à rénover votre cuisine.

13. Options de déploiement en une ligne

Maintenant que vous avez testé le système multi-agent déployé, découvrons des méthodes plus simples qui abstraient l'étape de déploiement que nous avons effectuée à l'étape précédente: OPTIONS DE DÉPLOIEMENT EN UNE LIGNE:

  1. Pour Cloud Run:

Syntaxe :

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=<<YOUR_SERVICE_NAME>> \
--app_name=<<YOUR_APP_NAME>> \
--with_ui \
./<<YOUR_AGENT_PROJECT_NAME>>

Dans ce cas :

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=renovation-agent \
--app_name=renovation-app \
--with_ui \
./renovation-agent

Vous pouvez utiliser le point de terminaison déployé pour les intégrations en aval.

  1. Pour Agent Engine:

Syntaxe :

adk deploy agent_engine \
  --project <your-project-id> \
  --region us-central1 \
  --staging_bucket gs://<your-google-cloud-storage-bucket> \
  --trace_to_cloud \
  path/to/agent/folder

Dans ce cas :

adk deploy agent_engine --project <<YOUR_PROJECT_ID>> --region us-central1 --staging_bucket gs://<<YOUR_BUCKET_NAME>> --trace_to_cloud renovation-agent

Un nouvel agent devrait s'afficher dans l'interface utilisateur du moteur d'agent de la console Google Cloud. Pour en savoir plus, consultez cet article de blog.

14. 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.

15. Félicitations

Félicitations ! Vous avez créé et interagi avec votre premier agent à l'aide d'ADK.