(Optional) Agent für die Bereitstellung konfigurieren
Sie können die folgenden optionalen Konfigurationen für Ihren Agent vornehmen:
Paketanforderungen definieren
Geben Sie die Menge der Pakete 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 auch folgende Möglichkeiten:
Eine 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
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].
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: Gleichzeitigkeit für jeden Container und Agent-Server. 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})
Build-Optionen definieren
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())
Ressourcenmetadaten konfigurieren
Sie können Metadaten für die ReasoningEngine-Ressource festlegen:
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."""
Eine vollständige Liste der Parameter finden Sie in der API-Referenz.
Benutzerdefiniertes Dienstkonto konfigurieren
Sie können ein benutzerdefiniertes Dienstkonto als Identität Ihres bereitgestellten Agents konfigurieren, anstatt die 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 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 übergeben.
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.
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.
Vom Kunden verwaltete Verschlüsselungsschlüssel konfigurieren
Wenn Sie den benutzerdefinierten Schlüssel (CMEK) für Ihren Agent konfigurieren möchten, müssen Sie beim Erstellen der Agent Engine-Instanz den Schlüsselressourcennamen 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},)
AgentEngine-Instanz erstellen
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 Bundle wird in Cloud Storage (im 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.
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. Es ist von lokalen Instanzen des Agents getrennt.
Optional: Berechtigungen für den bereitgestellten Agent erteilen
Jeder bereitgestellte Agent hat eine eindeutige Kennung. Führen Sie den folgenden Befehl aus, um die resource_name-ID für Ihren bereitgestellten Agent abzurufen:
[[["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: 2025-10-13 (UTC)."],[],[]]