Déployer un agent

Pour déployer un agent sur Agent Engine:

  1. (Facultatif) Définir les exigences du package
  2. (Facultatif) Définir les fichiers sources
  3. (Facultatif) Organiser le répertoire Cloud Storage
  4. (Facultatif) Définir les métadonnées de la ressource
  5. Créer une instance AgentEngine

Avant de commencer

Avant de déployer un agent, assurez-vous d'avoir effectué les tâches suivantes:

  1. Configurez votre environnement.
  2. Développer un agent

É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"

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,

  1. Un lot d'artefacts est généré localement, comprenant les éléments suivants :
  2. Le bundle est importé dans Cloud Storage (sous le sous-bucket correspondant) pour mettre en scène les artefacts.
  3. Les URI Cloud Storage des artefacts respectifs sont spécifiés dans PackageSpec.
  4. 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

  1. É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 et pydantic.
  2. 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

Étape suivante