Agent bereitstellen

So stellen Sie einen Agenten in der Agent Engine bereit:

  1. (Optional) Paketanforderungen definieren
  2. Optional: Quelldateien definieren
  3. (Optional) Cloud Storage-Verzeichnis organisieren
  4. Optional: Ressourcenmetadaten definieren
  5. AgentEngine-Instanz erstellen

Hinweise

Bevor Sie einen Agenten bereitstellen, müssen Sie die folgenden Aufgaben erledigt haben:

  1. Richten Sie die Umgebung ein.
  2. Entwickeln Sie einen Agenten.

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:

  1. Lokal wird ein Artefakt-Bundle generiert, das Folgendes enthält:
  2. Das Bundle wird zum Staging der Artefakte in Cloud Storage (unter dem entsprechenden Unter-Bucket) hochgeladen.
  3. Die Cloud Storage-URIs für die jeweiligen Artefakte sind in der PackageSpec angegeben.
  4. 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

  1. 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 und pydantic.
  2. 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

Nächste Schritte