Agent bereitstellen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Für die Bereitstellung eines Agenten in Vertex AI Agent Engine stehen drei primäre Methoden zur Auswahl:
Über ein Agent-Objekt bereitstellen: Ideal für die interaktive Entwicklung in Umgebungen wie Colab, da die Bereitstellung von local_agent-Objekten im Arbeitsspeicher möglich ist. Diese Methode eignet sich am besten für Agents mit Strukturen, die keine komplexen, nicht serialisierbaren Komponenten enthalten.
Aus Quelldateien bereitstellen: Diese Methode eignet sich gut für automatisierte Workflows wie CI/CD-Pipelines und Infrastruktur-als-Code-Tools wie Terraform, die vollständig deklarative und automatisierte Bereitstellungen ermöglichen. Der Agent wird direkt aus lokalem Quellcode bereitgestellt und es ist kein Cloud Storage-Bucket erforderlich.
Über Developer Connect bereitstellen: Empfohlen für Projekte, die in einem Git-Repository verwaltet werden, das über Developer Connect verknüpft ist. Diese Methode vereinfacht die Agent-Bereitstellung direkt aus Ihrem Quellcode und unterstützt nativ die Versionsverwaltung, die Zusammenarbeit im Team und CI/CD-Pipelines.
Bevor Sie diese Methode verwenden, müssen Sie Ihren Git-Repository-Link einrichten. Folgen Sie dazu der Anleitung unter Git-Repository-Link von Developer Connect einrichten.
(Optional) Agent für die Bereitstellung konfigurieren
Sie können die folgenden optionalen Konfigurationen für Ihren Agent vornehmen:
Paketanforderungen definieren
Geben Sie die Gruppe von Paketen an, die für die Bereitstellung des Agents erforderlich sind. Die Gruppe von Paketen kann entweder eine Liste von Elementen sein, die von pip installiert werden sollen, oder der Pfad zu einer Datei, die dem Format der Anforderungsdatei entspricht.
Beachten Sie die folgenden Best Practices:
Pinnen Sie Ihre Paketversionen für reproduzierbare Builds. Zu den gängigen Paketen, die Sie im Blick behalten sollten, gehören: google-cloud-aiplatform, cloudpickle, langchain, langchain-core, langchain-google-vertexai und pydantic.
Minimieren Sie die Anzahl der Abhängigkeiten in Ihrem Agent. Dadurch wird die Anzahl der funktionsgefährdenden Änderungen beim Aktualisieren Ihrer Abhängigkeiten und Ihres Agents reduziert.
Wenn der Agent keine Abhängigkeiten hat, können Sie requirements auf None setzen:
requirements=None
Wenn der Agent eine frameworkspezifische Vorlage verwendet, sollten Sie bei der Entwicklung des Agents die importierte SDK-Version angeben (z. B. 1.112.0).
Sie können lokale Dateien oder Verzeichnisse einfügen, die erforderliche lokale Python-Quelldateien enthalten. Im Vergleich zu Paketanforderungen können Sie so private Dienstprogramme verwenden, die Sie entwickelt haben und die sonst nicht auf PyPI oder GitHub verfügbar sind.
Wenn für den Agent keine zusätzlichen Pakete erforderlich sind, können Sie extra_packages auf None festlegen:
extra_packages=None
Mit extra_packages haben Sie außerdem folgende Möglichkeiten:
Einzelne Datei einfügen (z. B. agents/agent.py):
extra_packages=["agents/agent.py"]
Fügen Sie die Dateien eines gesamten Verzeichnisses ein (z. B. agents/):
extra_packages=["agents"]# directory that includes agents/agent.py
requirements=["google-cloud-aiplatform[agent_engines,adk]","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
Umgebungsvariablen definieren
Wenn Ihr Agent von Umgebungsvariablen abhängt, können Sie diese im Argument env_vars= angeben. Wenn der Agent nicht von Umgebungsvariablen abhängt, können Sie ihn auf None setzen:
env_vars=None
Wenn Sie Secrets als Umgebungsvariablen mit einem Agent verwenden, der für die Verwendung der Agent-Identität konfiguriert ist, gewähren Sie dem Vertex AI-Dienst-Agent, der das folgende Format hat, die Berechtigung secretmanager.versions.access (in der Rolle roles/secretmanager.secretAccessor enthalten):
Ihre konfigurierte Agent-Identität wird zur Laufzeit verwendet, der Vertex AI-Dienst-Agent wird jedoch zum Abrufen von Secrets während der Bereitstellung verwendet. Mit der hinzugefügten Berechtigung kann der Dienst-Agent die Secret-Werte während der Bereitstellung aus Secret Manager abrufen.
Es gibt verschiedene Möglichkeiten, die Umgebungsvariablen anzugeben:
Außerdem müssen Sie die Anleitung unter Identität und Berechtigungen für Ihren Agent einrichten befolgen, um Ihrem Agent die Berechtigung „Secret Manager Secret Accessor“ (roles/secretmanager.secretAccessor) zu erteilen.
Sie können Laufzeitressourcen für den Agenten festlegen, z. B. die Mindest- und Höchstanzahl von Anwendungsinstanzen, Ressourcenlimits für jeden Container und die Nebenläufigkeit für jeden Container.
min_instances: Die Mindestanzahl der Anwendungsinstanzen, die jederzeit ausgeführt werden sollen, mit einem Bereich von [0, 10]. Der Standardwert ist 1.
max_instances: Die maximale Anzahl von Anwendungsinstanzen, die gestartet werden können, um mehr Traffic zu bewältigen. Der Bereich liegt zwischen [1, 1000].
Der Standardwert ist 100. Wenn VPC-SC oder PSC-I aktiviert ist, liegt der zulässige Bereich bei [1, 100] pro Vertex AI Agent Engine-Ressource.
resource_limits: Ressourcenlimits für jeden Container. Es werden nur cpu- und memory-Schlüssel unterstützt. Der Standardwert ist {"cpu": "4", "memory": "4Gi"}.
Die einzigen unterstützten Werte für cpu sind 1, 2, 4, 6 und 8. Weitere Informationen finden Sie unter CPU-Zuweisung konfigurieren.
Die einzigen unterstützten Werte für memory sind 1Gi, 2Gi, ...
32Gi.
container_concurrency: Nebenläufigkeit für jeden Container und KI-Agentenserver. Der empfohlene Wert ist 2 × cpu + 1. Der Standardwert ist 9.
remote_agent=client.agent_engines.create(agent=local_agent,config={"min_instances":1,"max_instances":10,"resource_limits":{"cpu":"4","memory":"8Gi"},"container_concurrency":9,# ... other configs})
Sie können Build-Optionen für den Agent angeben, z. B. Installationsskripts, die beim Erstellen des Container-Images des Agents ausgeführt werden sollen. Das ist nützlich, um Systemabhängigkeiten (z. B. gcloud cli, npx) oder andere benutzerdefinierte Setups zu installieren. Die Skripts werden mit Root-Berechtigungen ausgeführt.
Wenn Sie Installationsskripts verwenden möchten, erstellen Sie ein Verzeichnis mit dem Namen installation_scripts und legen Sie Ihre Shell-Skripts in diesem Verzeichnis ab:
Staging-Artefakte werden überschrieben, wenn sie einem vorhandenen Ordner in einem Cloud Storage-Bucket entsprechen.
Bei Bedarf können Sie den Cloud Storage-Ordner für die Staging-Artefakte angeben. Sie können gcs_dir_name auf None festlegen, wenn Sie nichts dagegen haben, dass die Dateien im Standardordner möglicherweise überschrieben werden:
gcs_dir_name=None
Damit die Dateien nicht überschrieben werden (z. B. für verschiedene Umgebungen wie Entwicklung, Staging und Produktion), können Sie einen entsprechenden Ordner einrichten und den Ordner angeben, in dem das Artefakt bereitgestellt werden soll:
gcs_dir_name="dev"# or "staging" or "prod"
Wenn Sie Kollisionen vermeiden möchten oder müssen, können Sie eine zufällige uuid generieren:
importuuidgcs_dir_name=str(uuid.uuid4())
Anzeigenamen definieren
Sie können den Anzeigenamen für die Ressource ReasoningEngine festlegen:
Sie können die Beschreibung der ReasoningEngine-Ressource festlegen:
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."""
Labels definieren
Sie können die Labels der ReasoningEngine-Ressource als Dictionary von Schlüssel/Wert-Stringpaaren festlegen. Hier ein Beispiel:
labels={"author":"username","version":"latest"}
Standardidentität für Agent konfigurieren
Sie können Agents, die Sie in Vertex AI Agent Engine bereitstellen, beim Erstellen des Agents mit einer eindeutigen Identität bereitstellen. Die Identität ist an die Agentenressourcen-ID der Vertex AI Agent Engine gebunden und unabhängig vom Agenten-Framework, das Sie zum Entwickeln des Agenten verwendet haben:
Sie können ein benutzerdefiniertes Dienstkonto als Identität Ihres bereitgestellten Agents konfigurieren, anstatt die Agent-Identität oder Standardidentität zu verwenden.
Geben Sie dazu die E-Mail-Adresse Ihres benutzerdefinierten Dienstkontos als service_account an, wenn Sie die Agent Engine-Instanz erstellen oder aktualisieren, z. B.:
# Create a new instanceclient.agent_engines.create(agent=local_agent,config={"service_account":"my-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)# Update an existing instanceresource_name="projects/{project_id}/locations/{location}/reasoningEngines/{reasoning_engine_id}"client.agent_engines.update(name=resource_name,agent=local_agent,config={"service_account":"my-new-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)
Private Service Connect-Schnittstelle konfigurieren
NETWORK_ATTACHMENT ist der Name oder der vollständige Pfad Ihres Netzwerk-Anhangs. Wenn die Netzwerkverbindung in einem anderen Projekt als dem, in dem Sie Agent Engine verwenden, erstellt wird (z. B. im freigegebene VPC-Hostprojekt), müssen Sie den vollständigen Pfad der Netzwerkverbindung angeben.
DOMAIN_SUFFIX ist der DNS-Name der privaten Cloud DNS-Zone, die Sie beim Einrichten des privaten DNS-Peerings erstellt haben.
TARGET_PROJECT ist das Projekt, in dem das VPC-Netzwerk gehostet wird. Es kann sich vom Projekt für die Netzwerkverbindung unterscheiden.
TARGET_NETWORK ist der Name des VPC-Netzwerk.
Sie können mehrere Agents so konfigurieren, dass sie entweder einen einzelnen, freigegebenen Netzwerkanhang oder eindeutige, dedizierte Netzwerkanhänge verwenden. Wenn Sie einen freigegebenen Netzwerkanhang verwenden möchten, geben Sie für jeden erstellten Agent denselben Netzwerkanhang in psc_interface_config an.
Sie können einen benutzerdefinierten Schlüssel verwenden, um die ruhenden Daten Ihres Agenten zu verschlüsseln. Weitere Informationen finden Sie unter Agent Engine Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
Wenn Sie den benutzerdefinierten Schlüssel (CMEK) für Ihren Agent konfigurieren möchten, müssen Sie beim Erstellen der Agent Engine-Instanz den Ressourcennamen des Schlüssels für den Parameter encryption_spec angeben.
# The fully qualified key namekms_key_name="projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"remote_agent=client.agent_engines.create(agent=local_agent,config={"encryption_spec":{"kms_key_name":kms_key_name},# ... other parameters},)
Git-Repository-Link von Developer Connect einrichten
Wenn Sie die Bereitstellung über ein Git-Repository mit Developer Connect vornehmen möchten, folgen Sie der Developer Connect-Dokumentation, um eine Verbindung zu erstellen und mit dem jeweiligen Repository zu verknüpfen. Der Ressourcenname des Links wird während des Deployments als git_repository_link verwendet und hat das folgende Format:
projects/PROJECT_ID/locations/LOCATION/connections/CONNECTION_ID/gitRepositoryLinks/REPO_ID.
AgentEngine-Instanz erstellen
In diesem Abschnitt wird beschrieben, wie Sie eine AgentEngine-Instanz zum Bereitstellen eines Agents erstellen.
Sie haben folgende Möglichkeiten, einen Agenten in Vertex AI Agent Engine bereitzustellen:
Bereitstellung über ein Agent-Objekt für die interaktive Entwicklung
Bereitstellung über Developer Connect für Git-basierte Workflows.
Bereitstellung aus Quelldateien für automatisierte, dateibasierte Workflows.
Aus einem Agent-Objekt
Um den Agent in Vertex AI bereitzustellen, verwenden Sie client.agent_engines.create, um das local_agent-Objekt zusammen mit allen optionalen Konfigurationen zu übergeben:
Das Bündel wird in Cloud Storage (in den entsprechenden Ordner) hochgeladen, um die Artefakte bereitzustellen.
Die Cloud Storage-URIs für die jeweiligen Artefakte werden in der PackageSpec angegeben.
Der Vertex AI Agent Engine-Dienst empfängt die Anfrage, erstellt Container und startet HTTP-Server im Backend.
Aus Developer Connect
Wenn Sie die Bereitstellung über Developer Connect in Vertex AI vornehmen möchten, verwenden Sie client.agent_engines.create und geben Sie developer_connect_source, entrypoint_module und entrypoint_object im Konfigurations-Dictionary sowie andere optionale Konfigurationen an. Mit dieser Methode können Sie Code direkt aus einem verbundenen Git-Repository bereitstellen.
git_repository_link (Erforderlich, str): Der Ressourcenname des Developer Connect-Git-Repository-Links.
revision (erforderlich, str): Die abzurufende Revision (Branch, Tag oder Commit-SHA).
dir (erforderlich, str): Das Stammverzeichnis des Agent-Codes im Repository.
entrypoint_module (Erforderlich, str): Der Name des Python-Moduls, das den Einstiegspunkt des Agents enthält, relativ zum im developer_connect_source.dir angegebenen Verzeichnis.
entrypoint_object (erforderlich, str): Der Name des aufrufbaren Objekts in der entrypoint_module, das die Agent-Anwendung darstellt (z. B. root_agent).
requirements_file (Optional, str): Der Pfad zu einer pip-Anforderungsdatei relativ zum Quellstamm. Die Standardeinstellung ist requirements.txt.
Die Bereitstellung dauert einige Minuten. Im Hintergrund werden dabei die folgenden Schritte ausgeführt:
Der Vertex AI Agent Engine-Dienst ruft den Quellcode aus der angegebenen Git-Repository-Revision ab.
Der Dienst installiert Abhängigkeiten aus requirements_file (falls angegeben).
Der Dienst startet die Agent-Anwendung mit dem angegebenen entrypoint_module und entrypoint_object.
Aus Quelldateien
Wenn Sie Quellcode in Vertex AI bereitstellen möchten, verwenden Sie client.agent_engines.create. Geben Sie dazu source_packages, entrypoint_module, entrypoint_object und class_methods im Konfigurations-Dictionary sowie andere optionale Konfigurationen an. Bei dieser Methode müssen Sie kein Agent-Objekt oder Cloud Storage-Bucket übergeben.
Die Parameter für die Bereitstellung von Inline-Quellen sind:
source_packages (erforderlich, list[str]): Eine Liste mit lokalen Datei- oder Verzeichnispfaden, die in die Bereitstellung aufgenommen werden sollen. Die Gesamtgröße der Dateien und Verzeichnisse in source_packages darf 8 MB nicht überschreiten.
entrypoint_module (erforderlich, str): Der voll qualifizierte Python-Modulname, der den Agent-Einstiegspunkt enthält (z. B. agent_dir.agent).
entrypoint_object (erforderlich, str): Der Name des aufrufbaren Objekts in der entrypoint_module, das die Agent-Anwendung darstellt (z. B. root_agent).
class_methods (erforderlich, list[dict]): Eine Liste von Dictionaries, die die offengelegten Methoden des Agenten definieren. Jedes Wörterbuch enthält die Felder name (erforderlich), api_mode (erforderlich) und parameters. Weitere Informationen zu den Methoden für einen benutzerdefinierten Agent finden Sie unter Unterstützte Vorgänge auflisten.
Beispiel:
"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 (Optional, str): Der Pfad zu einer pip-Anforderungsdatei in den in source_packages angegebenen Pfaden. Standardmäßig ist requirements.txt im Stammverzeichnis der verpackten Quelle festgelegt.
Die Bereitstellung dauert einige Minuten. Im Hintergrund werden dabei die folgenden Schritte ausgeführt:
Das Vertex AI SDK erstellt ein tar.gz-Archiv der in source_packages angegebenen Pfade.
Dieses Archiv wird codiert und direkt an die Vertex AI API gesendet.
Der Vertex AI Agent Engine-Dienst empfängt das Archiv, extrahiert es, installiert Abhängigkeiten aus requirements_file (falls angegeben) und startet die Agent-Anwendung mit den angegebenen entrypoint_module und entrypoint_object.
Im Folgenden finden Sie ein Beispiel für die Bereitstellung eines Agents aus Quellcode-Dateien:
fromgoogle.cloud.aiplatformimportvertexai# 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": "...",})
Die Bereitstellungslatenz hängt von der Gesamtzeit ab, die für die Installation der erforderlichen Pakete benötigt wird. Nach der Bereitstellung entspricht remote_agent einer Instanz von local_agent, die auf Vertex AI ausgeführt wird und abgefragt oder gelöscht werden kann.
Das remote_agent-Objekt entspricht einer AgentEngine-Klasse, die Folgendes enthält:
remote_agent.api_resource mit Informationen zum bereitgestellten Agent.
Sie können auch remote_agent.operation_schemas() aufrufen, um die Liste der Vorgänge zurückzugeben, die von remote_agent unterstützt werden. Weitere Informationen finden Sie unter Unterstützte Vorgänge.
Jeder bereitgestellte Agent hat eine eindeutige Kennung. Sie können den folgenden Befehl ausführen, um den Ressourcennamen für Ihren bereitgestellten Agenten abzurufen:
Jeder bereitgestellte Agent hat eine Liste der unterstützten Vorgänge. Mit AgentEngine.operation_schemas können Sie die Liste der vom bereitgestellten Agent unterstützten Vorgänge abrufen:
remote_agent.operation_schemas()
Das Schema für jeden Vorgang ist ein Wörterbuch, in dem die Informationen einer Methode für den Agenten dokumentiert sind, die Sie aufrufen können. Die unterstützten Vorgänge hängen vom Framework ab, das Sie zum Entwickeln Ihres Agenten verwendet haben:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2026-02-27 (UTC)."],[],[]]