Résoudre les problèmes de déploiement d'un agent

Ce document explique comment résoudre les erreurs que vous pouvez rencontrer lors du déploiement d'un agent.

Erreurs de modèle prédéfini

Si vous rencontrez des problèmes avec le modèle LangchainAgent lors du déploiement, cela peut être dû à l'un des problèmes décrits dans cette section.

Erreurs internes du serveur

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

Malheureusement, il s'agit d'une erreur généralisée pour tout problème lié au conteneur au moment de l'exécution. La cause possible est l'une des nombreuses erreurs pouvant se produire.

Causes possibles :

  • État modifié sur LangchainAgent. Cela peut se produire si .set_up() a été appelé sur un LangchainAgent avant le déploiement de l'agent.
  • Versions de package incohérentes. Cela peut se produire si les packages installés dans l'environnement de développement sont différents de ceux installés dans l'environnement distant de Vertex AI Agent Engine.

Solutions recommandées :

  • État modifié sur LangchainAgent. Instanciez une nouvelle instance de LangchainAgent ou supprimez agent.set_up() du code avant de déployer l'agent.
  • Spécifications de package incohérentes. Consultez la section sur le dépannage des erreurs de sérialisation.

Erreurs de sérialisation

En général, il est important de s'assurer que les environnements "local" et "distant" sont synchronisés lors du déploiement de l'agent. Pour ce faire, spécifiez requirements= lorsque vous déployez l'agent.

Si vous rencontrez des problèmes de sérialisation (les erreurs liées au "pickle" ou au "pickling" sont synonymes d'erreurs de "sérialisation"), cela peut être dû à l'un des problèmes décrits dans cette section.

Version Pydantic

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

PicklingError: Can't pickle <cyfunction str_validator at 0x7ca030133d30>: it's
not the same object as pydantic.validators.str_validator

Cause possible :

Cela peut se produire si votre package pydantic est antérieur à la version 2.6.4. Pour vérifier la version que vous utilisez, exécutez la commande suivante dans votre terminal :

pip show pydantic

Solution recommandée :

Mettez à jour votre package en exécutant la commande suivante dans le terminal :

pip install pydantic --upgrade

Exécutez la commande suivante dans votre terminal pour vérifier que vous utilisez la version 2.6.4 ou une version ultérieure :

pip show pydantic

Si vous êtes dans une instance de notebook (par exemple, Jupyter, Colab ou Workbench), vous devrez peut-être redémarrer votre environnement d'exécution pour utiliser les packages mis à jour.

Version Cloudpickle

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

AttributeError: Can't get attribute '_class_setstate' on <module 'cloudpickle.cloudpickle'
from '/usr/local/lib/python3.10/site-packages/cloudpickle/cloudpickle.py'>

Cause possible :

Cela peut se produire si la version de votre package cloudpickle est différente dans votre environnement de développement et votre environnement de déploiement. Pour vérifier quelle version vous utilisez en développement, exécutez la commande suivante dans votre terminal :

pip show cloudpickle

Solution recommandée :

Déployez la même version de Cloudpickle dans les deux environnements (votre environnement de développement local et l'agent déployé à distance) en spécifiant requirements= lors du déploiement de l'agent.

Erreurs internes du serveur

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

InternalServerError: 500 Revision XXX is not ready and cannot serve traffic.

Cause possible :

Cela peut se produire si sys_version= est différent de l'environnement de développement lors du déploiement de l'agent.

Solution recommandée :

Après avoir déployé l'agent, envisagez de supprimer sys_version= des arguments d'entrée. Si le problème persiste, envoyez un rapport de bug.

Erreurs du bucket Cloud Storage

Si vous rencontrez des problèmes avec le bucket de préproduction Cloud Storage utilisé au moment du déploiement pour collecter et importer votre agent, cela peut être dû à l'une des raisons suivantes :

Erreurs liées aux autorisations

Solution recommandée :

Si vous souhaitez utiliser un bucket préexistant, assurez-vous que le compte principal authentifié pour utiliser Vertex AI (vous-même ou un compte de service) dispose d'un accès Storage Admin au bucket, et accordez des autorisations au compte de service.

Vous pouvez également spécifier un nouveau bucket lors du déploiement de l'agent afin que le SDK crée le bucket avec les autorisations nécessaires.

Si le problème persiste, envoyez un rapport de bug.

Le sous-répertoire du bucket Cloud Storage n'est pas créé

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

NotFound: 404 Can not copy from \"gs://[LOCATION]-*/agent_engine/agent_engine.pkl\" to \"gs://*/code.pkl\", check if the source object and target bucket exist.

(L'erreur 404 se produit lorsque le système tente de copier dans un dossier qui n'existe pas.)

Cause possible :

Ce problème est probablement dû à un problème d'interpolation de chaîne dans les versions de google-cloud-aiplatform antérieures à la version 1.49.0. Ce problème est corrigé dans les versions ultérieures. Pour vérifier la version de google-cloud-aiplatform que vous utilisez, exécutez la commande suivante dans votre terminal :

pip show google-cloud-aiplatform

Solution recommandée :

Mettez à jour votre package en exécutant la commande suivante dans le terminal :

pip install google-cloud-aiplatform --upgrade

Vérifiez que vous utilisez la version 1.49.0 ou une version ultérieure de google-cloud-aiplatform en exécutant la commande suivante dans votre terminal :

pip show google-cloud-aiplatform

Si vous utilisez une instance de notebook (par exemple, Jupyter, Colab ou Workbench), vous devrez peut-être redémarrer votre environnement d'exécution avant de pouvoir utiliser les packages mis à jour.

Erreurs de non-respect de VPC-SC

Si vous rencontrez des problèmes avec VPC-SC, l'une des causes suivantes peut être à l'origine du problème :

Erreurs liées aux autorisations

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

Reasoning Engine instance REASONING_ENGINE_ID failed to start and cannot serve traffic.

ou :

Request is prohibited by organization's policy.

Cause possible :

Cela est probablement dû à l'absence de règles d'entrée requises dans le périmètre VPC-SC.

Solution recommandée :

Si vous utilisez Vertex AI Agent Engine dans un environnement VPC-SC, vous devez créer une règle d'entrée dans votre périmètre pour autoriser l'entrée de l'agent de service Reasoning Engine (service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com) dans les services storage.googleapis.com et artifactregistry.googleapis.com.

Erreurs liées aux comptes de service personnalisés

Si vous rencontrez des problèmes avec les comptes de service, l'une des causes suivantes peut être à l'origine du problème :

Agir en tant que compte de service

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

You do not have permission to act as service_account.

Cause possible :

Il est possible que vous ne disposiez pas de l'autorisation iam.serviceAccounts.actAs sur le compte de service personnalisé utilisé pour le déploiement. Notez que dans un système multi-agents où il existe plusieurs comptes de service personnalisés, un auteur ou un déployeur d'agent peut agir en tant que certains des comptes de service. Si vous utilisez le mauvais compte de service, cette erreur est le comportement attendu.

Vous pouvez également rencontrer cette erreur si le compte de service personnalisé se trouve dans un projet différent de celui dans lequel vous déployez l'agent, et si la règle d'administration iam.disableCrossProjectServiceAccountUsage est appliquée dans le projet du compte de service.

Pour obtenir la liste complète des configurations requises pour ce scénario, consultez Compte de service personnalisé inter-projets.

Solution recommandée :

Assurez-vous d'utiliser le compte de service prévu. Vérifiez si vous disposez du rôle Utilisateur du compte de service (roles/iam.serviceAccountUser) sur ce compte de service. Si ce n'est pas le cas, demandez à votre administrateur de vous attribuer le rôle sur ce compte de service.

Si vous êtes dans le scénario multiprojet, vérifiez si la règle d'administration iam.disableCrossProjectServiceAccountUsage est appliquée à votre projet de compte de service. Si tel est le cas, demandez à votre administrateur de désactiver le règlement.

Serveur de métadonnées indisponible

Problème :

Vous recevez un message d'erreur semblable à celui-ci :

ServiceUnavailable: 503 Getting metadata from plugin failed with error

ou

Compute Engine Metadata server unavailable due to : Could not fetch URI /computeMetadata/v1/instance/service-accounts/default/token

Cause possible :

Cela peut se produire si le compte de service personnalisé et votre agent se trouvent dans des projets différents, et si l'agent de service du moteur d'inférence AI Platform ne dispose pas de l'autorisation iam.serviceAccounts.getAccessToken sur le compte de service personnalisé.

Pour obtenir la liste complète des configurations requises pour ce scénario, consultez Compte de service personnalisé inter-projets.

Solution recommandée :

Demandez à votre administrateur d'attribuer le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator) à l'agent de service AI Platform Reasoning Engine du projet d'agent sur le compte de service personnalisé.

L'agent de service AI Platform Reasoning Engine doit se trouver dans le même projet que celui que vous utilisez pour déployer votre agent. La liaison IAM de l'attribution de rôle doit se trouver dans le projet où réside le compte de service personnalisé.

Ressources d'assistance

Si votre problème n'est toujours pas résolu, consultez notre guide d'assistance pour obtenir de l'aide.