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 einenLangchainAgentaufgerufen 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 vonLangchainAgentoder entfernen Sieagent.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 pydanticEmpfohlene Lösung:
Aktualisieren Sie Ihr Paket, indem Sie den folgenden Befehl im Terminal ausführen:
pip install pydantic --upgradeFü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 pydanticWenn 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 cloudpickleEmpfohlene 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-aiplatformEmpfohlene Lösung:
Aktualisieren Sie Ihr Paket, indem Sie den folgenden Befehl im Terminal ausführen:
pip install google-cloud-aiplatform --upgradePrü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-aiplatformWenn 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.