Pour déployer un agent sur Vertex AI Agent Engine, choisissez l'une des méthodes suivantes :
-
Déployer à partir d'un objet d'agent : idéal pour le développement interactif dans des environnements tels que Colab, permettant le déploiement d'objets
local_agenten mémoire. Cette méthode est idéale pour les agents dont les structures ne contiennent pas de composants complexes non sérialisables. - Déployer à partir de fichiers sources : cette méthode est idéale pour les workflows automatisés tels que les pipelines CI/CD et les outils Infrastructure as Code comme Terraform, car elle permet des déploiements entièrement déclaratifs et automatisés. Il déploie votre agent directement à partir du code source local et ne nécessite pas de bucket Cloud Storage.
- Déployer à partir d'un fichier Dockerfile : cette méthode est semblable à celle permettant de déployer à partir de fichiers sources. Vous déployez votre agent directement à partir du code source local. Vous n'avez pas besoin de bucket Cloud Storage. Cette méthode est appropriée si vous devez définir et contrôler le serveur d'API déployé.
- Déployer à partir d'une image de conteneur : cette méthode est semblable à celle permettant de déployer à partir d'un fichier Dockerfile. Vous déployez une image de conteneur hébergée dans Artifact Registry. Utilisez cette méthode si vous avez besoin de contrôler le processus de compilation de l'image de conteneur et de réduire la latence de déploiement.
- Déployer depuis Developer Connect : recommandé pour les projets gérés dans un dépôt Git et associés à Developer Connect. Cette méthode simplifie le déploiement des agents directement à partir de votre code source et prend en charge de manière native le contrôle des versions, la collaboration en équipe et les pipelines CI/CD. Avant d'utiliser cette méthode, configurez le lien de votre dépôt Git en suivant les instructions de la section Configurer le lien de dépôt Git Developer Connect.
Pour commencer, procédez comme suit :
- Remplissez les conditions préalables.
- (Facultatif) Configurez votre agent pour le déploiement.
- Créez une instance
AgentEngine. - (Facultatif) Obtenez l'ID de ressource de l'agent.
- (Facultatif) Listez les opérations compatibles.
- (Facultatif) Accordez les autorisations à l'agent déployé.
Vous pouvez également utiliser les modèles du pack de démarrage pour les agents pour le déploiement.
Prérequis
Avant de déployer un agent, assurez-vous d'avoir effectué les tâches suivantes :
(Facultatif) Configurer votre agent pour le déploiement
Vous pouvez effectuer les configurations facultatives suivantes pour votre agent :
Créer une instance AgentEngine
Cette section explique comment créer une instance AgentEngine pour déployer un agent.
Pour déployer un agent sur Vertex AI Agent Engine, vous pouvez choisir l'une des méthodes suivantes :
- Déployer à partir d'un objet agent pour le développement interactif.
- Déployer depuis Developer Connect pour les workflows basés sur Git.
- Déployer à partir de fichiers sources ou d'un fichier Dockerfile pour les workflows basés sur des fichiers.
Déployer à partir d'une image de conteneur pour les workflows basés sur des images.
Objet Python
Pour déployer l'agent sur Vertex AI, utilisez client.agent_engines.create pour transmettre l'objet local_agent ainsi que les configurations facultatives :
remote_agent = client.agent_engines.create(
agent=local_agent, # Optional.
config={
"requirements": requirements, # Optional.
"extra_packages": extra_packages, # Optional.
"gcs_dir_name": gcs_dir_name, # Optional.
"display_name": display_name, # Optional.
"description": description, # Optional.
"labels": labels, # Optional.
"env_vars": env_vars, # Optional.
"build_options": build_options, # Optional.
"identity_type": identity_type, # Optional.
"service_account": service_account, # Optional.
"min_instances": min_instances, # Optional.
"max_instances": max_instances, # Optional.
"resource_limits": resource_limits, # Optional.
"container_concurrency": container_concurrency, # Optional
"encryption_spec": encryption_spec, # Optional.
"agent_framework": agent_framework, # Optional.
},
)
Le déploiement prend quelques minutes, pendant lesquelles les étapes suivantes se déroulent en arrière-plan :
Un ensemble des artefacts suivants est généré localement :
*.pkl: fichier pickle correspondant à local_agent.requirements.txt, un fichier texte contenant les conditions requises pour le package.dependencies.tar.gz: fichier tar contenant les éventuels packages supplémentaires.
Le bundle est importé dans Cloud Storage (dans le dossier correspondant) pour la préproduction des artefacts.
Les URI Cloud Storage des artefacts respectifs sont spécifiés dans PackageSpec.
Le service Vertex AI Agent Engine reçoit la requête, crée des conteneurs et lance des serveurs HTTP sur le backend.
Developer Connect
Pour déployer à partir de Developer Connect sur Vertex AI, utilisez client.agent_engines.create en fournissant developer_connect_source, entrypoint_module et entrypoint_object dans le dictionnaire de configuration, ainsi que d'autres configurations facultatives. Cette méthode vous permet de déployer du code directement depuis un dépôt Git connecté.
remote_agent = client.agent_engines.create(
config={
"developer_connect_source": { # Required.
"git_repository_link": "projects/PROJECT_ID/locations/LOCATION/connections/CONNECTION_ID/gitRepositoryLinks/REPO_ID",
"revision": "main",
"dir": "path/to/dir",
},
"entrypoint_module": "agent", # Required.
"entrypoint_object": "root_agent", # Required.
"requirements_file": "requirements.txt", # Optional.
# Other optional configs:
# "env_vars": {...},
# "service_account": "...",
},
)
Voici les paramètres de déploiement de Developer Connect :
developer_connect_source(obligatoire,dict) : configuration pour l'extraction du code source. Pour en savoir plus, consultez Configurer le lien de dépôt Git Developer Connect.git_repository_link(obligatoire,str) : nom de ressource du lien vers le dépôt Git Developer Connect.revision(obligatoire,str) : révision à récupérer (branche, tag ou SHA de commit).dir(obligatoire,str) : répertoire racine du code de l'agent dans le dépôt.
entrypoint_module(obligatoire,str) : nom du module Python contenant le point d'entrée de l'agent, par rapport au répertoire spécifié dansdeveloper_connect_source.dir.entrypoint_object(obligatoire,str) : nom de l'objet appelable dans leentrypoint_modulequi représente l'application d'agent (par exemple,root_agent).requirements_file(facultatif,str) : chemin d'accès à un fichier de requirements pip par rapport à la racine source. La valeur par défaut estrequirements.txt.
Le déploiement prend quelques minutes, pendant lesquelles les étapes suivantes se déroulent en arrière-plan :
- Le service Vertex AI Agent Engine récupère le code source à partir de la révision du dépôt Git spécifiée.
- Le service installe les dépendances à partir de
requirements_file(le cas échéant). - Le service démarre l'application de l'agent à l'aide des
entrypoint_moduleetentrypoint_objectspécifiés.
Fichiers sources
Pour déployer à partir de fichiers sources sur Vertex AI, utilisez client.agent_engines.create en fournissant source_packages, entrypoint_module, entrypoint_object et class_methods dans le dictionnaire de configuration, ainsi que d'autres configurations facultatives. Avec cette méthode, vous n'avez pas besoin de transmettre d'objet agent ni de bucket Cloud Storage.
remote_agent = client.agent_engines.create(
config={
"source_packages": source_packages, # Required.
"entrypoint_module": entrypoint_module, # Required.
"entrypoint_object": entrypoint_object, # Required.
"class_methods": class_methods, # Required.
"requirements_file": requirements_file, # Optional.
"display_name": display_name, # Optional.
"description": description, # Optional.
"labels": labels, # Optional.
"env_vars": env_vars, # Optional.
"build_options": build_options, # Optional.
"identity_type": identity_type, # Optional.
"service_account": service_account, # Optional.
"min_instances": min_instances, # Optional.
"max_instances": max_instances, # Optional.
"resource_limits": resource_limits, # Optional.
"container_concurrency": container_concurrency, # Optional
"encryption_spec": encryption_spec, # Optional.
"agent_framework": agent_framework, # Optional.
},
)
Voici les paramètres pour le déploiement de source intégrée :
source_packages(obligatoire,list[str]) : liste des chemins d'accès aux fichiers ou répertoires locaux à inclure dans le déploiement. La taille totale des fichiers et des répertoires danssource_packagesne doit pas dépasser 8 Mo.entrypoint_module(obligatoire,str) : nom complet du module Python contenant le point d'entrée de l'agent (par exemple,agent_dir.agent).entrypoint_object(obligatoire,str) : nom de l'objet appelable dans leentrypoint_modulequi représente l'application d'agent (par exemple,root_agent).class_methods(obligatoire,list[dict]) : liste de dictionnaires qui définissent les méthodes exposées de l'agent. Chaque dictionnaire inclut un champname(obligatoire), un champapi_mode(obligatoire) et un champparameters. Pour en savoir plus sur les méthodes d'un agent personnalisé, consultez Lister les opérations compatibles.Exemple :
"class_methods": [ { "name": "method_name", "api_mode": "", # Possible options are: "", "async", "async_stream", "stream", "bidi_stream" "parameters": { "type": "object", "properties": { "param1": {"type": "string", "description": "Description of param1"}, "param2": {"type": "integer"} }, "required": ["param1"] } } ] ```requirements_file(facultatif,str) : chemin d'accès à un fichier de requirements pip dans les chemins d'accès spécifiés danssource_packages. La valeur par défaut estrequirements.txtdans le répertoire racine de la source empaquetée.
Le déploiement prend quelques minutes, pendant lesquelles les étapes suivantes se déroulent en arrière-plan :
- Le SDK Vertex AI crée une archive
tar.gzdes chemins d'accès spécifiés danssource_packages. - Cette archive est encodée et envoyée directement à l'API Vertex AI.
- Le service Vertex AI Agent Engine reçoit l'archive, l'extrait, installe les dépendances à partir de
requirements_file(si fourni) et démarre l'application d'agent à l'aide desentrypoint_moduleetentrypoint_objectspécifiés.
Voici un exemple de déploiement d'un agent à partir de fichiers sources :
from google.cloud.aiplatform import vertexai
# Example file structure:
# /agent_directory
# ├── agent.py
# ├── requirements.txt
# Example agent_directory/agent.py:
# class MyAgent:
# def ask(self, question: str) -> str:
# return f"Answer to {question}"
# root_agent = MyAgent()
remote_agent = client.agent_engines.create(
config={
"display_name": "My Agent",
"description": "An agent deployed from a local source.",
"source_packages": ["agent_directory"],
"entrypoint_module": "agent_directory.agent",
"entrypoint_object": "root_agent",
"requirements_file": "requirements.txt",
"class_methods": [
{"name": "ask", "api_mode": "", "parameters": {
"type": "object",
"properties": {
"question": {"type": "string"}
},
"required": ["question"]
}},
],
# Other optional configs:
# "env_vars": {...},
# "service_account": "...",
}
)
Dockerfile
Pour effectuer un déploiement à partir d'un fichier Dockerfile sur Vertex AI, l'approche est similaire à celle du déploiement à partir de fichiers sources. La seule modification à apporter lors du déploiement consiste à remplacer entrypoint_module, entrypoint_object et (facultativement) requirements_file dans la configuration par un image_spec.
Voici un exemple de déploiement d'un agent à l'aide d'un fichier Dockerfile :
from google.cloud.aiplatform import vertexai
# Example file structure:
# /current_directory
# ├── agent.py
# ├── main.py
# ├── requirements.txt
# ├── Dockerfile
remote_agent = client.agent_engines.create(
config={
"source_packages": [
"agent.py",
"main.py",
"requirements.txt",
"Dockerfile",
],
"image_spec": {}, # tells AgentEngine to use the Dockerfile
# Other optional configs
}
)
Image du conteneur
Pour effectuer un déploiement à partir d'une image de conteneur, suivez d'abord les instructions de configuration pour Apportez votre propre conteneur, en veillant à installer une version de google-cloud-aiplatform satisfaisant >=1.144. Exécutez ensuite le code suivant :
remote_agent = client.agent_engines.create(
config={
"container_spec": {
"image_uri": "CONTAINER_IMAGE_URI",
},
# Other optional configs
},
)
Où CONTAINER_IMAGE_URI correspond à l'URI de l'image de conteneur dans Artifact Registry (par exemple, us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag).
La latence de déploiement dépend du temps total nécessaire à l'installation des 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.
L'objet remote_agent correspond à une classe AgentEngine qui contient les éléments suivants :
remote_agent.api_resourcecontenant des informations sur l'agent déployé. Vous pouvez également appelerremote_agent.operation_schemas()pour renvoyer la liste des opérations compatibles avecremote_agent. Pour en savoir plus, consultez Opérations compatibles.remote_agent.api_clientqui permet des interactions de service synchronesremote_agent.async_api_clientqui permet des interactions de service asynchrones
(Facultatif) Obtenir l'ID de ressource de l'agent
Chaque agent déployé possède un identifiant unique. Vous pouvez exécuter la commande suivante pour obtenir le nom de ressource de votre agent déployé :
remote_agent.api_resource.name
La réponse doit ressembler à la chaîne suivante :
"projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/RESOURCE_ID"
Où :
PROJECT_IDcorrespond à l' Google Cloud ID du projet dans lequel l'agent déployé s'exécute.LOCATIONest la région dans laquelle l'agent déployé s'exécute.RESOURCE_IDest l'ID de l'agent déployé en tant que ressourcereasoningEngine.
(Facultatif) Lister les opérations compatibles
Chaque agent déployé dispose d'une liste d'opérations compatibles. Vous pouvez utiliser AgentEngine.operation_schemas pour obtenir la liste des opérations prises en charge par l'agent déployé :
remote_agent.operation_schemas()
Le schéma de chaque opération est un dictionnaire qui documente les informations d'une méthode pour l'agent que vous pouvez appeler. L'ensemble des opérations compatibles dépend du framework que vous avez utilisé pour développer votre agent :
(Facultatif) Accorder des autorisations à l'agent déployé
Si l'agent déployé a besoin d'autorisations supplémentaires, suivez les instructions de la section Configurer l'identité et les autorisations de votre agent.
Étapes suivantes
- Utiliser l'agent
- Gérer les agents déployés
- Résolvez les problèmes liés au déploiement d'un agent.
- Accédez à l'assistance.