So stellen Sie einen Agenten in der Agent Engine bereit:
- (Optional) Paketanforderungen definieren
- Optional: Quelldateien definieren
- (Optional) Cloud Storage-Verzeichnis organisieren
- Optional: Ressourcenmetadaten definieren
AgentEngine
-Instanz erstellen
Hinweise
Bevor Sie einen Agenten bereitstellen, müssen Sie die folgenden Aufgaben erledigt haben:
Schritt 1: Paketanforderungen definieren
Geben Sie die Pakete an, die der Agent für die Bereitstellung benötigt. Es kann sich dabei entweder um eine Liste der von pip zu installierenden Elemente oder um den Pfad zu einer Datei handeln, die dem Anforderungsdateiformat entspricht.
Wenn der Agent keine Abhängigkeiten hat, können Sie „Kein“ festlegen:
requirements = None
Wenn der Agent eine frameworkspezifische Vorlage verwendet, sollten Sie beim Entwickeln des Agents die importierte SDK-Version angeben (z.B. 1.77.0
).
LangChain
requirements = [
"google-cloud-aiplatform[agent_engines,langchain]",
# any other dependencies
]
LangGraph
requirements = [
"google-cloud-aiplatform[agent_engines,langgraph]",
# any other dependencies
]
[Optional] Versionseinschränkungen
Wenn Sie die Version eines bestimmten Pakets (z.B. google-cloud-aiplatform
) auf eine Obergrenze setzen oder anpinnen möchten:
requirements = [
# See https://pypi.org/project/google-cloud-aiplatform for the latest version.
"google-cloud-aiplatform[agent_engines,langgraph]==1.77.0",
]
Sie können der Liste weitere Pakete und Einschränkungen hinzufügen:
requirements = [
"google-cloud-aiplatform[agent,langgraph]==1.75.0",
"cloudpickle==3.0", # new
]
[Optional] Entwicklungszweig
Sie können auf die Version eines Pakets verweisen, die sich in einem GitHub-Branch oder einer Pull-Anfrage befindet, z. B.:
requirements = [
"google-cloud-aiplatform[agent_engines,langchain] @ git+https://github.com/googleapis/python-aiplatform.git@BRANCH_NAME", # new
"cloudpickle==3.0",
]
[Optional] Format der Anforderungsdatei
Sie können die Liste der Anforderungen in einer Datei (z.B. path/to/requirements.txt
) verwalten:
requirements = "path/to/requirements.txt"
wobei path/to/requirements.txt
eine Textdatei ist, die dem Format für Anforderungendateien entspricht, z. B.:
google-cloud-aiplatform[agent_engines,langchain]
cloudpickle==3.0
Schritt 2: Zusätzliche Pakete
Sie können lokale Dateien oder Verzeichnisse angeben, die die erforderlichen lokalen Python-Quelldateien enthalten. Im Vergleich zu den Anforderungen an Pakete können Sie so von Ihnen entwickelte private Dienstprogramme verwenden, die sonst nicht auf PyPI oder GitHub verfügbar sind.
Wenn der Agent keine zusätzlichen Pakete benötigt, können Sie ihn auf None
festlegen:
extra_packages = None
[Optional] Dateien und Verzeichnisse
Wenn Sie eine einzelne Datei (z.B. agents/agent.py
) einbeziehen möchten, können Sie sie der Liste hinzufügen:
extra_packages = ["agents/agent.py"]
Wenn Sie alle Dateien in einem gesamten Verzeichnis (z.B. agents/
) einbeziehen möchten, können Sie das Verzeichnis angeben:
extra_packages = ["agents"] # directory that includes agents/agent.py
[Optional] Rad-Binärdateien
Sie können Python-Wheel-Binärdateien (z.B. path/to/python_package.whl
) einschließen und in den Paketanforderungen angeben:
requirements = [
"google-cloud-aiplatform[agent,langgraph]",
"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
Schritt 3: Cloud Storage-Verzeichnis
Die Staging-Artefakte werden überschrieben, wenn sie einem vorhandenen untergeordneten Bucket (einem Ordner in einem Cloud Storage-Bucket) entsprechen. Bei Bedarf können Sie den untergeordneten Bucket für die Staging-Artefakte angeben. Dieser Schritt ist optional. Sie können ihn auf None
festlegen, wenn Sie damit einverstanden sind, dass die Dateien im Standardunter-Bucket möglicherweise überschrieben werden:
gcs_dir_name = None
Um das Überschreiben der Dateien zu vermeiden (z. B. für verschiedene Umgebungen wie „dev“, „staging“ oder „prod“), können Sie die entsprechenden Unter-Buckets einrichten und das Unter-Bucket angeben, in dem das Artefakt bereitgestellt werden soll, z. B.:
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, z. B.:
import uuid
gcs_dir_name = str(uuid.uuid4())
Schritt 4: Ressourcenmetadaten
Sie können Metadaten für die ReasoningEngine
-Ressource festlegen, die in Vertex AI erstellt wird. Beispiele:
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.
Schritt 5: AgentEngine
-Instanz erstellen
Verwenden Sie zum Bereitstellen der Anwendung in Vertex AI agent_engines.create
und übergeben Sie das Objekt als Parameter:
remote_agent = agent_engines.create(
local_agent, # Required.
requirements=requirements, # Optional.
extra_packages=extra_packages, # Optional.
gcs_dir_name=gcs_dir_name, # Optional.
display_name=display_name, # Optional.
description=description, # Optional.
)
Die Bereitstellung dauert einige Minuten. Beachten Sie beim Bereitstellen des Agents Folgendes:
- Lokal wird ein Artefakt-Bundle generiert, das Folgendes enthält:
*.pkl
eine Pickle-Datei, die local_agent entspricht.requirements.txt
eine Textdatei mit den Paketanforderungen.dependencies.tar.gz
eine Tar-Datei mit allen zusätzlichen Paketen.
- Das Bundle wird zum Staging der Artefakte in Cloud Storage (unter dem entsprechenden Unter-Bucket) hochgeladen.
- Die Cloud Storage-URIs für die jeweiligen Artefakte sind in der PackageSpec angegeben.
- Der Agent Engine-Dienst empfängt die Anfrage, erstellt Container und aktiviert HTTP-Server im Back-End.
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. Sie ist von lokalen Instanzen des Agents getrennt.
Jeder bereitgestellte Agent hat eine eindeutige Kennung. Führen Sie den folgenden Befehl aus, um die resource_name
-ID für Ihren bereitgestellten Agenten abzurufen:
remote_agent.resource_name
Best Practices
- Paketversionen anpinnen (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
undpydantic
. - Minimieren Sie die Anzahl der Abhängigkeiten in Ihrer Anwendung. Dadurch wird die Anzahl der funktionsgefährdenden Änderungen beim Aktualisieren Ihrer Abhängigkeiten reduziert und es wird einfacher, Ihre Anwendung im Laufe der Zeit auf neuere Funktionen zu aktualisieren.
Mit dem Agent Starter Pack in der Produktion bereitstellen
Das Agent Starter Pack ist eine Sammlung von produktionsfertigen Vorlagen für generative KI-Agenten, die für die Vertex AI Agent Engine entwickelt wurden. Sie beschleunigt die Bereitstellung durch Folgendes:
- Vordefinierte Agent-Vorlagen:ReAct, RAG, Multi-Agent und mehr.
- Interaktiver Playground: Hier können Sie Ihren Agenten testen und mit ihm interagieren.
- Automatisierte Infrastruktur: Terraform wird für eine optimierte Ressourcenverwaltung verwendet.
- CI/CD-Pipelines: Automatisierte Bereitstellungsworkflows mit Cloud Build.
- Observability: Bietet integrierte Unterstützung für Cloud Trace und Cloud Logging.
Einstieg:Kurzanleitung