Fehlerbehebung bei der Bereitstellung eines Agents

In diesem Dokument wird beschrieben, wie Sie Fehler beheben können, die beim Bereitstellen eines Bots in der Agent Runtime auftreten können. Es werden verschiedene häufige Probleme behandelt, darunter Serialisierungsfehler, Berechtigungsfehler und VPC-SC-Grenzenverletzungen.

Fehler bei vordefinierten Vorlagen

Wenn während der Bereitstellung Probleme mit der LangchainAgent-Vorlage auftreten, kann dies an einem der Probleme in diesem Abschnitt liegen.

Interne Serverfehler

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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

Leider ist dies ein Sammelfehler für alle Probleme mit dem Container zur Laufzeit. Die mögliche Ursache ist einer von vielen möglichen Fehlern.

Mögliche Ursache(n)

  • Fehlerhafter Status von LangchainAgent. Dies kann auftreten, wenn .set_up() für einen LangchainAgent aufgerufen wurde, bevor der Agent bereitgestellt wurde.
  • Inkonsistente Paketversionen. Dies kann auftreten, wenn sich die in der Entwicklungsumgebung installierten Pakete von den Paketen unterscheiden, die in der Remoteumgebung in der Agent Runtime installiert sind.

Empfohlene Lösunge(n):

  • Fehlerhafter Status von LangchainAgent. Instanziieren Sie eine neue Instanz von LangchainAgent oder entfernen Sie agent.set_up() aus dem Code, bevor Sie den Agent bereitstellen.
  • Nicht übereinstimmende Paketspezifikationen. Weitere Informationen finden Sie im Abschnitt zur Behebung von Serialisierungsfehlern.

Serialisierungsfehler

Im Allgemeinen ist es wichtig, dass die lokalen und Remoteumgebungen bei der Bereitstellung des Agents synchronisiert sind. Sie können dies sicherstellen, indem Sie requirements= beim Bereitstellen des Agents angeben.

Wenn Sie Probleme mit der Serialisierung haben (Fehler im Zusammenhang mit „pickle“ oder „Pickling“ sind Synonyme für „Serialisierung“), kann dies an einem der in diesem Abschnitt beschriebenen Probleme liegen.

Pydantic-Version

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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

Mögliche Ursache:

Dies kann auftreten, wenn Ihr pydantic-Paket älter als Version 2.6.4 ist. Führen Sie folgenden Befehl in Ihrem Terminal aus, um zu prüfen, welche Version Sie verwenden:

pip show pydantic

Empfohlene Lösung:

Aktualisieren Sie Ihr Paket, indem Sie den folgenden Befehl im Terminal ausführen:

pip install pydantic --upgrade

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu prüfen, ob Sie die Version 2.6.4 oder höher verwenden:

pip show pydantic

Wenn Sie sich in einer Notebookinstanz befinden, z. B. ein Jupyter, Colab oder Workbench, müssen Sie möglicherweise Ihre Laufzeit neu starten, um die aktualisierten Pakete verwenden zu können.

Cloudpickle-Version

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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

Mögliche Ursache:

Das kann passieren, wenn die Version Ihres cloudpickle-Pakets in Ihrer Entwicklungs- und Ihrer Bereitstellungsumgebung unterschiedlich ist. Führen Sie den folgenden Befehl in Ihrem Terminal aus, um zu prüfen, welche Version Sie in der Entwicklung verwenden:

pip show cloudpickle

Empfohlene Lösung:

Stellen Sie dieselbe Version von cloudpickle in beiden Umgebungen bereit, z. B. in Ihrer lokalen Entwicklungsumgebung und in dem aus der Ferne bereitgestellten Agent, indem Sie beim Bereitstellen des Agents requirements=angeben.

Interne Serverfehler

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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

Mögliche Ursache:

Das kann passieren, wenn sich sys_version= von der Entwicklungsumgebung unterscheidet, wenn Sie den Agent bereitstellen.

Empfohlene Lösung:

Nachdem Sie den Agent bereitgestellt haben, können Sie sys_version= aus den Eingabeargumenten entfernen. Wenn weiterhin Probleme auftreten, melden Sie den Fehler.

Cloud Storage-Bucket-Fehler

Wenn Probleme mit dem Cloud Storage-Staging-Bucket auftreten, der zum Zeitpunkt der Bereitstellung zum Erfassen und Hochladen Ihres Bots verwendet wird, kann das an einem der folgenden Probleme liegen:

Berechtigungsfehler

Empfohlene Lösung:

Wenn Sie einen bereits vorhandenen Bucket verwenden möchten, achten Sie darauf, dass das Hauptkonto, das für die Verwendung der Agent Platform authentifiziert ist (entweder Sie selbst oder ein Dienstkonto), Storage Admin Zugriff auf den Bucket hat, und gewähren Sie dem Dienstkonto Berechtigungen.

Alternativ können Sie beim Bereitstellen des Agents einen neuen Bucket angeben und das SDK erstellt den Bucket mit den erforderlichen Berechtigungen.

Wenn weiterhin Probleme auftreten, melden Sie den Fehler.

Unterverzeichnis des Cloud Storage-Buckets wird nicht erstellt

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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.

(Der 404-Fehler tritt auf, wenn das System versucht, in einen nicht vorhandenen Ordner zu kopieren.)

Mögliche Ursache:

Das liegt wahrscheinlich an einem Problem mit der Stringinterpolation in Versionen von google-cloud-aiplatform, die älter als 1.49.0 sind. Dieses Problem wurde in späteren Versionen behoben. Führen Sie in Ihrem Terminal den folgenden Befehl aus, um zu prüfen, welche Version von google-cloud-aiplatform Sie verwenden:

pip show google-cloud-aiplatform

Empfohlene Lösung:

Aktualisieren Sie Ihr Paket, indem Sie den folgenden Befehl im Terminal ausführen:

pip install google-cloud-aiplatform --upgrade

Prüfen Sie, ob Sie die Version 1.49.0 oder höher von google-cloud-aiplatform verwenden. Führen Sie dazu den folgenden Befehl in Ihrem Terminal aus:

pip show google-cloud-aiplatform

Wenn Sie eine Notebookinstanz nutzen, z. B. Jupyter, Colab oder Workbench, müssen Sie möglicherweise Ihre Laufzeit neu starten, bevor Sie die aktualisierten Pakete verwenden können.

VPC-SC-Verletzungsfehler

Wenn Sie Probleme mit VPC-SC haben, kann eine der folgenden Ursachen vorliegen:

Berechtigungsfehler

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

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

oder:

Request is prohibited by organization's policy.

Mögliche Ursache:

Das liegt wahrscheinlich daran, dass im VPC-SC-Perimeter erforderliche Regeln für eingehenden Traffic fehlen.

Empfohlene Lösung:

Wenn Sie die Agent Platform in einer VPC-SC-Umgebung verwenden, müssen Sie in Ihrem Perimeter eine Regel für eingehenden Traffic erstellen, um eingehenden Traffic vom Reasoning Engine-Dienst-Agent (service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com) zum storage.googleapis.com Dienst und artifactregistry.googleapis.com Dienst zuzulassen.

Fehler bei benutzerdefinierten Dienstkonten

Wenn Sie Probleme mit Dienstkonten haben, kann eine der folgenden Ursachen vorliegen:

Als Dienstkonto agieren

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

You do not have permission to act as service_account.

Mögliche Ursache:

Möglicherweise haben Sie nicht die Berechtigung iam.serviceAccounts.actAs für das benutzerdefinierte Dienstkonto, das für die Bereitstellung verwendet wird. In einem System mit mehreren Agents, in dem mehrere benutzerdefinierte Dienstkonten vorhanden sind, kann ein Agent-Autor oder -Bereitsteller als einige der Dienstkonten agieren. Wenn Sie das falsche Dienstkonto verwenden, ist dieser Fehler das erwartete Verhalten.

Außerdem kann dieser Fehler auftreten, wenn sich das benutzerdefinierte Dienstkonto in einem anderen Projekt befindet als das, in dem Sie den Agent bereitstellen, und die Organisationsrichtlinie iam.disableCrossProjectServiceAccountUsage im Dienstkontoprojekt erzwungen wird.

Eine vollständige Liste der erforderlichen Konfigurationen für dieses Szenario finden Sie unter Projektübergreifendes benutzerdefiniertes Dienst konto.

Empfohlene Lösung:

Achten Sie darauf, dass Sie das gewünschte Dienstkonto verwenden. Prüfen Sie, ob Sie die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) für dieses Dienstkonto haben. Wenn nicht, bitten Sie Ihren Administrator, Ihnen die Rolle für dieses Dienstkonto zu gewähren.

Wenn Sie sich im projektübergreifenden Szenario befinden, prüfen Sie, ob die Organisationsrichtlinie iam.disableCrossProjectServiceAccountUsage für Ihr Dienstkontoprojekt erzwungen wird. Wenn ja, bitten Sie Ihren Administrator, die Richtlinie zu deaktivieren.

Metadatenserver nicht verfügbar

Problem:

Möglicherweise erhalten Sie eine Fehlermeldung, die so aussieht:

ServiceUnavailable: 503 Getting metadata from plugin failed with error

oder

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

Mögliche Ursache:

Das kann passieren, wenn sich das benutzerdefinierte Dienstkonto und Ihr Agent in verschiedenen Projekten befinden und der Dienst-Agent der AI Platform Reasoning Engine nicht die iam.serviceAccounts.getAccessToken Berechtigung für das benutzerdefinierte Dienstkonto hat.

Eine vollständige Liste der erforderlichen Konfigurationen für dieses Szenario finden Sie unter Projektübergreifendes benutzerdefiniertes Dienst konto.

Empfohlene Lösung:

Bitten Sie Ihren Administrator, dem Dienst-Agent der AI Platform Reasoning Engine des Agent-Projekts die Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator) für das benutzerdefinierte Dienstkonto zu gewähren.

Der Dienst-Agent der AI Platform Reasoning Engine sollte sich in demselben Projekt befinden, in dem Sie Ihren Agent bereitstellen. Die IAM-Bindung der Rollenzuweisung muss sich in dem Projekt befinden, in dem sich das benutzerdefinierte Dienstkonto befindet.

Fehler vom Typ „Ressource erschöpft“ oder Ratenbegrenzungsfehler (Fehler 429)

Problem:

Die Bereitstellung schlägt mit dem Status Error 429 oder RESOURCE_EXHAUSTED fehl.

Mögliche Ursache:

Das Projekt hat die Ratenbegrenzungen für die API oder die Kontingente für gleichzeitige Anfragen überschritten.

Empfohlene Lösungen:

  • Implementieren Sie in Bereitstellungsskripten eine Strategie für exponentiellen Backoff und Wiederholungen.
  • Prüfen Sie auf der Seite Google Cloud Kontingente für die Agent Platform API, ob die aktuelle Nutzung die Grenzwerte überschreitet.
  • Reduzieren Sie die Häufigkeit gleichzeitiger Bereitstellungen.

Supportressourcen

Wenn Ihr Problem weiterhin besteht, finden Sie in unserem Supportleitfaden weitere Informationen.