Pour déployer un agent sur Agent Engine:
- (Facultatif) Définir les exigences du package
- (Facultatif) Définir les fichiers sources
- (Facultatif) Organiser le répertoire Cloud Storage
- (Facultatif) Définir les métadonnées de la ressource
- Créer une instance
AgentEngine
Avant de commencer
Avant de déployer un agent, assurez-vous d'avoir effectué les tâches suivantes:
Étape 1: Définir les exigences du package
Fournissez l'ensemble de packages requis par l'agent pour son déploiement. Il peut s'agir d'une liste d'éléments à installer par pip ou du chemin d'accès à un fichier qui suit le format de fichier d'exigences.
Si l'agent n'a aucune dépendance, vous pouvez le définir sur "Aucune" :
requirements = None
Si l'agent utilise un modèle spécifique au framework, vous devez spécifier la version du SDK importée (par exemple, 1.77.0
) lors du développement de l'agent.
LangChain
requirements = [
"google-cloud-aiplatform[agent_engines,langchain]",
# any other dependencies
]
LangGraph
requirements = [
"google-cloud-aiplatform[agent_engines,langgraph]",
# any other dependencies
]
[Facultatif] Contraintes de version
Si vous souhaitez ou devez définir une limite supérieure ou épingler la version d'un package donné (par exemple, google-cloud-aiplatform
):
requirements = [
# See https://pypi.org/project/google-cloud-aiplatform for the latest version.
"google-cloud-aiplatform[agent_engines,langgraph]==1.77.0",
]
Vous pouvez ajouter des packages et des contraintes supplémentaires à la liste:
requirements = [
"google-cloud-aiplatform[agent,langgraph]==1.75.0",
"cloudpickle==3.0", # new
]
[Facultatif] Branche de développement
Vous pouvez faire référence à la version d'un package qui se trouve sur une branche GitHub ou dans une demande d'extraction, par exemple:
requirements = [
"google-cloud-aiplatform[agent_engines,langchain] @ git+https://github.com/googleapis/python-aiplatform.git@BRANCH_NAME", # new
"cloudpickle==3.0",
]
[Facultatif] Format du fichier d'exigences
Vous pouvez gérer la liste des exigences dans un fichier (par exemple, path/to/requirements.txt
):
requirements = "path/to/requirements.txt"
où path/to/requirements.txt
est un fichier texte conforme au format de fichier de spécifications, par exemple:
google-cloud-aiplatform[agent_engines,langchain]
cloudpickle==3.0
Étape 2: Packages supplémentaires
Vous pouvez inclure des fichiers ou des répertoires locaux contenant les fichiers sources Python locaux requis. Par rapport aux exigences concernant les packages, cela vous permet d'utiliser des utilitaires privés que vous avez développés qui ne sont pas disponibles sur PyPI ou GitHub.
Si l'agent ne nécessite aucun paquet supplémentaire, vous pouvez le définir sur None
:
extra_packages = None
[Facultatif] Fichiers et répertoires
Pour inclure un seul fichier (par exemple, agents/agent.py
), vous pouvez l'ajouter à la liste:
extra_packages = ["agents/agent.py"]
Pour inclure l'ensemble de fichiers d'un répertoire entier (par exemple, agents/
), vous pouvez spécifier le répertoire:
extra_packages = ["agents"] # directory that includes agents/agent.py
[Facultatif] Binaires de la roue
Vous pouvez inclure des binaires de paquets Python (par exemple, path/to/python_package.whl
) et les spécifier dans les exigences du package:
requirements = [
"google-cloud-aiplatform[agent,langgraph]",
"cloudpickle==3.0",
"python_package.whl", # install from the whl file that was uploaded
]
extra_packages = ["path/to/python_package.whl"] # bundle the whl file for uploading
Étape 3: Annuaire Cloud Storage
Les artefacts de préproduction seront écrasés s'ils correspondent à un sous-bucket existant (un dossier dans un bucket Cloud Storage). Si nécessaire, vous pouvez spécifier le sous-bucket pour les artefacts de préproduction. Cette étape est facultative. Vous pouvez la définir sur None
si vous n'avez pas d'objection à remplacer les fichiers du sous-bucket par défaut:
gcs_dir_name = None
Pour éviter d'écraser les fichiers (par exemple, pour différents environnements tels que dev, staging et prod), vous pouvez configurer les sous-buckets correspondants et spécifier le sous-bucket sous lequel mettre en scène l'artefact, par exemple:
gcs_dir_name = "dev" # or "staging" or "prod"
Si vous souhaitez ou devez éviter les collisions, vous pouvez générer un UUID aléatoire, par exemple:
import uuid
gcs_dir_name = str(uuid.uuid4())
Étape 4: Métadonnées de ressources
Vous pouvez définir des métadonnées sur la ressource ReasoningEngine
créée dans Vertex AI, par exemple:
display_name = "Currency Exchange Rate Agent (Staging)"
description = """
An agent that has access to tools for looking up the exchange rate.
If you run into any issues, please contact the dev team.
"""
Pour obtenir la liste complète des paramètres, consultez la documentation de référence de l'API.
Étape 5: Créez une instance AgentEngine
Pour déployer l'application sur Vertex AI, utilisez agent_engines.create
et transmettez l'objet en tant que paramètre:
remote_agent = agent_engines.create(
local_agent, # Required.
requirements=requirements, # Optional.
extra_packages=extra_packages, # Optional.
gcs_dir_name=gcs_dir_name, # Optional.
display_name=display_name, # Optional.
description=description, # Optional.
)
Le déploiement prend quelques minutes. Lors du déploiement de l'agent,
- Un lot d'artefacts est généré localement, comprenant les éléments suivants :
*.pkl
: fichier pickle correspondant à local_agent.requirements.txt
: fichier texte contenant les conditions requises pour le package.dependencies.tar.gz
: fichier tar contenant les packages supplémentaires.
- Le bundle est importé dans Cloud Storage (sous le sous-bucket correspondant) pour mettre en scène les artefacts.
- Les URI Cloud Storage des artefacts respectifs sont spécifiés dans PackageSpec.
- Le service Agent Engine reçoit la requête, crée des conteneurs et active les serveurs HTTP sur le backend.
La latence de déploiement dépend du temps total nécessaire pour installer les packages requis. Une fois déployé, remote_agent
correspond à une instance de local_agent
qui s'exécute sur Vertex AI et peut être interrogée ou supprimée. Il est distinct des instances locales de l'agent.
Chaque agent déployé possède un identifiant unique. Vous pouvez exécuter la commande suivante pour obtenir l'identifiant resource_name
de votre agent déployé:
remote_agent.resource_name
Bonnes pratiques
- Épinglez vos versions de package (pour les builds reproductibles). Les packages courants à suivre sont les suivants :
google-cloud-aiplatform
,cloudpickle
,langchain
,langchain-core
,langchain-google-vertexai
etpydantic
. - Minimisez le nombre de dépendances dans votre application. Cela réduit le nombre de modifications destructives lors de la mise à jour de vos dépendances et facilite la mise à jour de votre application au fil du temps pour ajouter de nouvelles fonctionnalités.
Déployer en production avec le pack de démarrage de l'agent
Le pack de démarrage pour les agents est un ensemble de modèles d'agents d'IA générative prêts à la production conçus pour le moteur d'agent Vertex AI. Il accélère le déploiement en fournissant:
- Modèles d'agent prédéfinis:ReAct, RAG, multi-agent, etc.
- Playground interactif: testez et interagissez avec votre agent.
- Infrastructure automatisée: utilise Terraform pour simplifier la gestion des ressources.
- Pipelines CI/CD: workflows de déploiement automatisés utilisant Cloud Build.
- Observabilité: inclut la compatibilité intégrée avec Cloud Trace et Cloud Logging.
Premiers pas:guide de démarrage rapide