Multi-Agent-App mit ADK, Agent Engine und AlloyDB

Multi-Agent-App mit ADK, Agent Engine und AlloyDB

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juni 16, 2025
account_circleVerfasst von Author: Abirami Sukumaran

1. Übersicht

Ein Agent ist ein autonomes Programm, das mit einem KI-Modell kommuniziert, um mit den vorhandenen Tools und im vorhandenen Kontext eine zielbasierte Operation auszuführen. Außerdem ist er in der Lage, fundierte Entscheidungen zu treffen.

Wenn Ihre Anwendung mehrere Agenten hat, die autonom und gemeinsam zusammenarbeiten, um den übergeordneten Zweck zu erfüllen, wobei jeder Agent unabhängig voneinander kenntnisreich ist und für einen bestimmten Schwerpunktbereich verantwortlich ist, wird Ihre Anwendung zu einem Multi-Agenten-System.

Agent Development Kit (ADK)

Das Agent Development Kit (ADK) ist ein flexibles und modulares Framework für die Entwicklung und Bereitstellung von KI-Agenten. Mit ADK können Sie komplexe Anwendungen erstellen, indem Sie mehrere unterschiedliche Agentinstanzen in einem Multi-Agent-System (MAS) zusammenstellen.

In ADK ist ein Multiagentensystem eine Anwendung, in der verschiedene Agenten, die oft eine Hierarchie bilden, zusammenarbeiten oder sich koordinieren, um ein größeres Ziel zu erreichen. Diese Strukturierung Ihrer Anwendung bietet erhebliche Vorteile, darunter eine verbesserte Modularität, Spezialisierung, Wiederverwendbarkeit, Wartbarkeit und die Möglichkeit, strukturierte Kontrollabläufe mithilfe spezieller Workflow-Agents zu definieren.

Hinweise für ein Multi-Agenten-System

Zuerst: Es ist wichtig, die Spezialisierung der einzelnen Kundenservicemitarbeiter zu kennen und zu verstehen. – „Wissen Sie, warum Sie für etwas einen bestimmten Unterhändler benötigen?“, klären Sie das zuerst.

Zweitens: Wie sie mit einem Root-Agenten zusammengeführt werden, um die einzelnen Antworten weiterzuleiten und zu verstehen.

Drittens: Es gibt mehrere Arten der Kundenservicemitarbeiter-Weiterleitung, die Sie in dieser Dokumentation finden. Überlegen Sie, welche der beiden Optionen am besten zum Ablauf Ihrer Anwendung passt. Außerdem sollten Sie wissen, welche verschiedenen Kontexte und Status Sie für die Ablaufsteuerung Ihres Multi-Agenten-Systems benötigen.

Aufgaben

Erstellen wir ein Multi-Agent-System für Küchenrenovierungen. Genau das werden wir tun. Wir erstellen ein System mit drei Kundenservicemitarbeitern.

  1. Renovierungsvorschlag
  2. Agent für Genehmigungen und Compliance-Prüfung
  3. Kundenservicemitarbeiter für die Prüfung des Bestellstatus

Renovation Proposal Agent, um das Angebotsdokument für die Küchenrenovierung zu generieren.

„Genehmigungs- und Compliance-Agent“ für Genehmigungen und aufgaben im Zusammenhang mit der Einhaltung von Vorschriften

Order Status Check Agent: Prüft den Bestellstatus von Materialien anhand der Bestellverwaltungsdatenbank, die wir in AlloyDB eingerichtet haben.

Es gibt einen Root-Agenten, der diese Agenten je nach Anforderung orchestriert.

Voraussetzungen

  • Ein Browser, z. B. Chrome oder Firefox
  • Google Cloud-Projekt mit aktivierter Abrechnungsfunktion.

2. Hinweis

Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

Wenn Sie Google Cloud und ADK ausprobieren möchten und dafür Guthaben benötigen, können Sie über diesen Link Guthaben einlösen. Folgen Sie dieser Anleitung, um das Angebot einzulösen. Hinweis: Dieser Link ist nur bis Ende Mai gültig.

  1. Klicken Sie auf diesen Link, um Cloud Shell zu aktivieren. Sie können zwischen dem Cloud Shell-Terminal (zum Ausführen von Cloud-Befehlen) und dem Editor (zum Erstellen von Projekten) wechseln, indem Sie in Cloud Shell auf die entsprechende Schaltfläche klicken.
  2. Nachdem Sie eine Verbindung zu Cloud Shell hergestellt haben, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und das Projekt auf Ihre Projekt-ID festgelegt ist:
gcloud auth list
  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
  1. Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
  1. Python 3.9 oder höher
  2. Aktivieren Sie die folgenden APIs mit den folgenden Befehlen:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. Weitere Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.

3. Prototyp

Sie können diesen Schritt überspringen, wenn Sie sich für das Modell Gemini 2.5 Pro für das Projekt entscheiden.

Rufen Sie Google AI Studio auf. Geben Sie den Prompt ein. Hier ist mein Prompt:

I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.

Passen Sie die Parameter auf der rechten Seite an und konfigurieren Sie sie, um eine optimale Antwort zu erhalten.

Anhand dieser einfachen Beschreibung hat mir Gemini einen unglaublich detaillierten Prompt für den Start meiner Renovierung erstellt. Mit Gemini können wir noch bessere Antworten von AI Studio und unseren Modellen erhalten. Je nach Anwendungsfall können Sie auch verschiedene Modelle auswählen.

Wir haben uns für Gemini 2.5 Pro entschieden. Dies ist ein Thinking-Modell. Das bedeutet, dass wir für Analysen im Langformat und detaillierte Dokumente noch mehr Ausgabetokens erhalten, in diesem Fall bis zu 65.000 Tokens. Das Gemini-Denken-Symbol wird angezeigt, wenn Sie Gemini 2.5 Pro aktivieren, das native Inferenzfunktionen hat und lange Kontextanfragen verarbeiten kann.

Unten siehst du ein Snippet der Antwort:

a80d4bad4b3864f7.png

AI Studio hat meine Daten analysiert und alle diese Dinge wie Schränke, Arbeitsplatten, Rückwand, Fußboden, Spüle, Einheitlichkeit, Farbpalette und Materialauswahl erstellt. Gemini zitiert sogar Quellen.

Wiederholen Sie den Vorgang mit verschiedenen Modelloptionen, bis Sie mit dem Ergebnis zufrieden sind. Aber warum all das durchgehen, wenn Sie Gemini 2.5 haben? :)

Versuchen Sie jetzt, die Idee mit einem anderen Prompt zum Leben zu erwecken:

Add flat and circular light accessories above the island area for my current kitchen in the attached image.

Hängen Sie einen Link zum Bild Ihrer aktuellen Küche (oder zu einem Beispielbild für eine Küche) an. Ändern Sie das Modell in „Gemini 2.0 Flash Preview Image Generation“, damit Sie Bilder generieren können.

Ich erhalte folgende Ausgabe:

b5b1e83fcada28f5.png

Das ist die Stärke von Gemini.

Von der Videoerkennung über die native Bildgenerierung bis hin zur Verknüpfung echter Informationen mit der Google Suche – es gibt Dinge, die nur mit Gemini möglich sind.

In AI Studio können Sie diesen Prototyp mit dem API-Schlüssel abrufen und mithilfe des Vertex AI ADK zu einer vollständigen KI-Agent-Anwendung skalieren.

4. ADK einrichten

  1. Virtuelle Umgebung erstellen und aktivieren (empfohlen)

Erstellen Sie über Ihr Cloud Shell-Terminal eine virtuelle Umgebung:

python -m venv .venv

Aktivieren Sie die virtuelle Umgebung:

source .venv/bin/activate
  1. ADK installieren
pip install google-adk

5. Projektstruktur

  1. Erstellen Sie im Cloud Shell-Terminal ein Verzeichnis an dem gewünschten Projektspeicherort.
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. Rufen Sie den Cloud Shell-Editor auf und erstellen Sie die folgende Projektstruktur, indem Sie die Dateien erstellen (zuerst leer):
renovation-agent/
        __init__
.py
        agent
.py
       
.env
        requirements
.txt

6. Quellcode

  1. Gehen Sie zu „init.py“ und ersetzen Sie den Inhalt durch Folgendes:
from . import agent
  1. Rufen Sie „agent.py“ auf und aktualisieren Sie die Datei mit dem folgenden Inhalt aus dem folgenden Pfad:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

In agent.py importieren wir die erforderlichen Abhängigkeiten, rufen Konfigurationsparameter aus der .env-Datei ab und definieren den root_agent, der die drei untergeordneten Agenten orchestriert, die wir in dieser Anwendung erstellen möchten. Es gibt mehrere Tools, die bei den Haupt- und unterstützenden Funktionen dieser Unteragenten helfen.

  1. Cloud Storage-Bucket prüfen

Hier wird das vom Kundenservicemitarbeiter erstellte Angebotsdokument gespeichert. Erstellen Sie sie und gewähren Sie Zugriff, damit das mit Vertex AI erstellte Multi-Agent-System darauf zugreifen kann. So gehts:

https://cloud.google.com/storage/docs/creating-buckets#console

Geben Sie als Namen für den Bucket „next-demo-store“ ein. Wenn Sie einen anderen Namen verwenden, denken Sie daran, den Wert für STORAGE_BUCKET in der .env-Datei (im Schritt zur Einrichtung der Umgebungsvariablen) zu aktualisieren.

  1. Rufen Sie die Cloud Storage Console auf und rufen Sie dann Ihren Storage Bucket auf. In unserem Fall lautet der Bucket-Name „next-demo-storage“: https://console.cloud.google.com/storage/browser/next-demo-storage.

Gehen Sie zu „Berechtigungen“ -> „Hauptkonten ansehen“ -> „Zugriff gewähren“. Wählen Sie als „Principals“ (Berechtigte) „allUsers“ (alle Nutzer) und als „Role“ (Rolle) „Storage Object User“ (Storage-Objekt-Nutzer) aus.

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
  1. Liste der Abhängigkeiten erstellen

Listen Sie alle Abhängigkeiten in requirements.txt auf. Sie können diesen Code aus dem Repository kopieren.

Erklärung zum Quellcode des Multi-Agenten-Systems

In der Datei „agent.py“ wird die Struktur und das Verhalten unseres Multi-Agenten-Systems für die Küchenrenovierung mit dem Agent Development Kit (ADK) definiert. Sehen wir uns die wichtigsten Komponenten an:

Agent-Definitionen

RenovationProposalAgent

Dieser Kundenservicemitarbeiter ist für die Erstellung des Angebotsdokuments für die Küchenrenovierung verantwortlich. Optional werden Eingabeparameter wie Küchengröße, gewünschter Stil, Budget und Kundenpräferenzen berücksichtigt. Anhand dieser Informationen wird mit dem Large Language Model (LLM) Gemini 2.5 ein detaillierter Vorschlag generiert. Der generierte Vorschlag wird dann in einem Google Cloud Storage-Bucket gespeichert.

PermitsAndComplianceCheckAgent

Dieser Sachverständige achtet darauf, dass das Renovierungsprojekt den lokalen Bauvorschriften und Bestimmungen entspricht. Es erhält Informationen zur geplanten Renovierung (z.B. bauliche Änderungen, Elektroarbeiten, Änderungen an der Sanitärinstallation) und prüft mithilfe des LLM die Genehmigungsanforderungen und Compliance-Regeln. Der Kundenservicemitarbeiter verwendet Informationen aus einer Wissensdatenbank, die Sie so anpassen können, dass er auf externe APIs zugreift, um relevante Vorschriften zu erhalten.

OrderingAgent

Dieser Agent (den Sie auskommentieren können, wenn Sie ihn jetzt nicht implementieren möchten) prüft den Bestellstatus der für die Renovierung benötigten Materialien und Geräte. Wenn Sie die Funktion aktivieren möchten, müssen Sie wie in den Einrichtungsschritten beschrieben eine Cloud Run-Funktion erstellen. Der Kundenservicemitarbeiter ruft dann diese Cloud Run-Funktion auf, die mit einer AlloyDB-Datenbank mit Bestellinformationen interagiert. Hier sehen Sie die Einbindung in ein Datenbanksystem zum Erfassen von Echtzeitdaten.

Root-Agent (Orchestrator)

Der root_agent fungiert als zentraler Orchestrator des Multi-Agenten-Systems. Er empfängt die erste Anfrage zur Renovierung und bestimmt anhand der Anforderungen der Anfrage, welche untergeordneten Kundenservicemitarbeiter aufgerufen werden sollen. Wenn für die Anfrage beispielsweise die Genehmigungsanforderungen geprüft werden müssen, wird der PermitsAndComplianceCheckAgent aufgerufen. Wenn der Nutzer den Bestellstatus prüfen möchte, wird der OrderingAgent aufgerufen (falls aktiviert).

Der root_agent sammelt dann die Antworten der untergeordneten Agenten und kombiniert sie, um dem Nutzer eine umfassende Antwort zu geben. Dazu kann es gehören, den Vorschlag zusammenzufassen, erforderliche Genehmigungen aufzulisten und aktuelle Informationen zum Bestellstatus bereitzustellen.

Datenfluss und wichtige Konzepte

Der Nutzer sendet eine Anfrage über die ADK-Benutzeroberfläche (entweder das Terminal oder die Web-Benutzeroberfläche).

  1. Die Anfrage wird vom root_agent empfangen.
  2. Der root_agent analysiert die Anfrage und leitet sie an die entsprechenden untergeordneten Kundenservicemitarbeiter weiter.
  3. Die Sub-Agents verwenden LLMs, Wissensdatenbanken, APIs und Datenbanken, um die Anfrage zu verarbeiten und Antworten zu generieren.
  4. Die untergeordneten Agenten geben ihre Antworten an den root_agent zurück.
  5. Der root_agent kombiniert die Antworten und stellt dem Nutzer eine endgültige Ausgabe zur Verfügung.

Large Language Models (LLMs)

Die Chatbots nutzen LLMs in großem Umfang, um Text zu generieren, Fragen zu beantworten und Aufgaben zur Logik auszuführen. Die LLMs sind das „Gehirn“ hinter der Fähigkeit der Kundenservicemitarbeiter, Nutzeranfragen zu verstehen und zu beantworten. In dieser Anwendung verwenden wir Gemini 2.5.

Google Cloud Storage

Hier werden die generierten Dokumente für den Renovierungsvorschlag gespeichert. Sie müssen einen Bucket erstellen und den Kundenservicemitarbeitern die erforderlichen Berechtigungen für den Zugriff darauf gewähren.

Cloud Run (optional)

Der OrderingAgent verwendet eine Cloud Run-Funktion, um mit AlloyDB zu kommunizieren. Cloud Run bietet eine serverlose Umgebung, in der Code als Reaktion auf HTTP-Anfragen ausgeführt werden kann.

AlloyDB

Wenn Sie den OrderingAgent verwenden, müssen Sie eine AlloyDB-Datenbank einrichten, um Bestellinformationen zu speichern. Im nächsten Abschnitt „Datenbankeinrichtung“ gehen wir näher darauf ein.

.env-Datei

In der .env-Datei werden vertrauliche Informationen wie API-Schlüssel, Datenbankanmeldedaten und Bucket-Namen gespeichert. Bewahren Sie diese Datei unbedingt sicher auf und committen Sie sie nicht in Ihr Repository. Außerdem werden dort Konfigurationseinstellungen für die Kundenservicemitarbeiter und Ihr Google Cloud-Projekt gespeichert. Normalerweise werden Werte aus dieser Datei vom root_agent oder von unterstützenden Funktionen gelesen. Prüfen Sie, ob alle erforderlichen Variablen in der .env-Datei richtig festgelegt sind. Dazu gehört auch der Name des Cloud Storage-Buckets.

7. Datenbankeinrichtung

In einem der vom ordering_agent verwendeten Tools namens „check_status“ greifen wir auf die AlloyDB-Bestelldatenbank zu, um den Status der Bestellungen abzurufen. In diesem Abschnitt richten wir den Datenbankcluster und die Datenbankinstanz AlloyDB ein.

Cluster und Instanz erstellen

  1. Rufen Sie in der Cloud Console die Seite „AlloyDB“ auf. Die meisten Seiten in der Cloud Console lassen sich ganz einfach über die Suchleiste der Console finden.
  2. Wählen Sie auf dieser Seite CLUSTER ERSTELLEN aus:

f76ff480c8c889aa.png

  1. Daraufhin wird ein Bildschirm wie der unten gezeigte angezeigt. Erstellen Sie einen Cluster und eine Instanz mit den folgenden Werten. Achten Sie darauf, dass die Werte übereinstimmen, falls Sie den Anwendungscode aus dem Repository klonen:
  • Cluster-ID: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 15 / neueste empfohlene Version
  • Region: "us-central1"
  • Netzwerk: „default

538dba58908162fb.png

  1. Wenn Sie das Standardnetzwerk auswählen, wird ein Bildschirm wie der unten angezeigt.

Wählen Sie VERKNÜPFUNG EINRICHTEN aus.
7939bbb6802a91bf.png

  1. Wählen Sie dort Automatisch zugewiesenen IP-Bereich verwenden aus und klicken Sie auf „Weiter“. Nachdem Sie sich die Informationen angesehen haben, wählen Sie VERBINDUNG ERSTELLEN aus. 768ff5210e79676f.png
  2. Sobald Ihr Netzwerk eingerichtet ist, können Sie mit dem Erstellen des Clusters fortfahren. Klicken Sie auf CLUSTER ERSTEHEN, um die Einrichtung des Clusters abzuschließen (siehe unten):

e06623e55195e16e.png

Ändern Sie die Instanz-ID (die Sie bei der Konfiguration des Clusters / der Instanz finden) in

vector-instance. Wenn Sie sie nicht ändern können, denken Sie daran, in allen nachfolgenden Verweisen Ihre Instanz-ID zu verwenden.

Die Clustererstellung dauert etwa 10 Minuten. Wenn der Vorgang erfolgreich war, sollte ein Bildschirm mit einer Übersicht über den gerade erstellten Cluster angezeigt werden.

Datenaufnahme

Jetzt fügen Sie eine Tabelle mit den Daten zum Geschäft hinzu. Rufen Sie AlloyDB auf, wählen Sie den primären Cluster und dann AlloyDB Studio aus:

847e35f1bf8a8bd8.png

Möglicherweise müssen Sie warten, bis die Instanz erstellt wurde. Melden Sie sich dann mit den Anmeldedaten an, die Sie beim Erstellen des Clusters erstellt haben. Verwenden Sie die folgenden Daten für die Authentifizierung bei PostgreSQL:

  • Nutzername: „postgres
  • Datenbank: „postgres
  • Passwort: „alloydb

Nachdem Sie sich in AlloyDB Studio authentifiziert haben, werden SQL-Befehle in den Editor eingegeben. Über das Pluszeichen rechts neben dem letzten Fenster können Sie weitere Editorfenster hinzufügen.

91a86d9469d499c4.png

Sie geben Befehle für AlloyDB in Editorfenstern ein und verwenden nach Bedarf die Optionen „Ausführen“, „Formatieren“ und „Löschen“.

Tabelle erstellen

Sie können eine Tabelle mit der folgenden DDL-Anweisung in AlloyDB Studio erstellen:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

Einträge einfügen

Kopieren Sie die insert-Abfrage aus dem oben genannten Script database_script.sql in den Editor.

Klicken Sie auf Ausführen.

Jetzt, da der Datensatz bereit ist, erstellen wir eine Java Cloud Run Functions-Anwendung, um den Status zu extrahieren.

Cloud Run-Funktion in Java erstellen, um Informationen zum Bestellstatus zu extrahieren

  1. Cloud Run-Funktion hier erstellen: https://console.cloud.google.com/run/create?deploymentType=function
  2. Legen Sie den Namen der Funktion auf „check-status“ fest und wählen Sie „Java 17“ als Laufzeit aus.
  3. Da es sich um eine Demoanwendung handelt, können Sie die Authentifizierung auf Nicht authentifizierte Aufrufe zulassen festlegen.
  4. Wählen Sie Java 17 als Laufzeit und den Inline-Editor für den Quellcode aus.
  5. An dieser Stelle wird der Platzhaltercode in den Editor geladen.

Platzhaltercode ersetzen

  1. Ändern Sie den Namen der Java-Datei in ProposalOrdersTool.java und den Klassennamen in ProposalOrdersTool.
  2. Ersetzen Sie den Platzhaltercode in ProposalOrdersTool.java und pom.xml durch Code aus den entsprechenden Dateien im Ordner „Cloud Run Function“ in diesem Repository.
  3. Suchen Sie in „ProposalOrdersTool.java“ nach der folgenden Codezeile und ersetzen Sie die Platzhalterwerte durch Werte aus Ihrer Konfiguration:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
  1. Klicken Sie auf „Erstellen“.
  2. Die Cloud Run-Funktion wird erstellt und bereitgestellt.

WICHTIG:

Nach der Bereitstellung erstellen wir den VPC-Connector, damit die Cloud-Funktion auf unsere AlloyDB-Datenbankinstanz zugreifen kann.

Sobald die Bereitstellung abgeschlossen ist, sollten Sie die Funktionen in der Google Cloud Run Functions-Konsole sehen können. Suchen Sie nach der neu erstellten Funktion (check-status), klicken Sie darauf und dann auf NEUE ÜBERARBEITUNGEN BEARBEITEN UND ERSTELLEN (angegeben durch das Symbol „BEARBEITEN“ (Stift) oben in der Cloud Run Functions-Konsole). Ändern Sie Folgendes:

  1. Rufen Sie den Tab „Netzwerk“ auf:

828cd861864d99ea.png

  1. Wählen Sie Mit einer VPC für ausgehenden Traffic verbinden und dann Connectors für serverlosen VPC-Zugriff verwenden aus.
  2. Klicken Sie im Drop-down-Menü „Netzwerk“ auf die Option Neuen VPC-Connector hinzufügen, falls Sie den Standard-VPC-Connector noch nicht konfiguriert haben. Folgen Sie dann der Anleitung im Pop-up-Dialogfeld:

6559ccfd10e597f2.png

  1. Geben Sie einen Namen für den VPC-Connector an und achten Sie darauf, dass die Region mit der Ihrer Instanz übereinstimmt. Lassen Sie den Wert für „Netzwerk“ als Standard bei und legen Sie „Subnetz“ als benutzerdefinierten IP-Bereich mit dem IP-Bereich 10.8.0.0 oder einem ähnlichen verfügbaren Bereich fest.
  2. Maximieren Sie die Konfiguration „ANZEIGENSKALIBRIERUNGS-EINSTELLUNGEN“ und prüfen Sie, ob die folgenden Einstellungen festgelegt sind:

199b0ccd80215004.png

  1. Klicken Sie auf ERSTELLEN. Dieser Connector sollte jetzt in den Einstellungen für ausgehenden Traffic aufgeführt sein.
  2. Wählen Sie den neu erstellten Connector aus.
  3. Legen Sie fest, dass der gesamte Traffic über diesen VPC-Connector weitergeleitet werden soll.
  4. Klicken Sie auf WEITER und dann auf Bereitstellen.
  5. Sobald die aktualisierte Cloud-Funktion bereitgestellt wurde, sollte der generierte Endpunkt angezeigt werden.
  6. Sie sollten sie testen können, indem Sie oben in der Cloud Run Functions Console auf die Schaltfläche „TESTEN“ klicken und den resultierenden Befehl im Cloud Shell-Terminal ausführen.
  7. Der bereitgestellte Endpunkt ist die URL, die Sie in der .env-Variablen CHECK_ORDER_STATUS_ENDPOINT aktualisieren müssen.

8. Modelleinrichtung

Die Fähigkeit des Kundenservicemitarbeiters, Nutzeranfragen zu verstehen und Antworten zu generieren, wird durch ein Large Language Model (LLM) unterstützt. Ihr Kundenservicemitarbeiter muss sichere Aufrufe an diesen externen LLM-Dienst senden, für den Anmeldedaten erforderlich sind. Ohne gültige Authentifizierung lehnt der LLM-Dienst die Anfragen des Agents ab und der Agent kann nicht funktionieren.

  1. Rufen Sie einen API-Schlüssel in Google AI Studio ab.
  2. Ersetzen Sie im nächsten Schritt, in dem Sie die .env-Datei einrichten, <<your API KEY>> durch den tatsächlichen Wert Ihres API-Schlüssels.

9. Umgebungsvariablen einrichten

  1. Legen Sie die Werte für die Parameter in der .env-Datei der Vorlage in diesem Repository fest. In meinem Fall enthält die .env-Datei die folgenden Variablen:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
CHECK_ORDER_STATUS_ENDPOINT=<<YOUR_ENDPOINT_TO_CLOUD FUNCTION_TO_READ_ORDER_DATA_FROM_ALLOYDB>>

Ersetzen Sie die Platzhalter durch Ihre Werte.

10. Agent ausführen

  1. Rufen Sie im Terminal das übergeordnete Verzeichnis Ihres Kundenservicemitarbeiterprojekts auf:
cd renovation-agent
  1. Alle Abhängigkeiten installieren
pip install -r requirements.txt
  1. Sie können den folgenden Befehl in Ihrem Cloud Shell-Terminal ausführen, um den Agenten auszuführen:
adk run .
  1. Führen Sie den folgenden Befehl aus, um ihn in einer von ADK bereitgestellten Web-UI auszuführen:
adk web
  1. Testen Sie mit den folgenden Prompts:
user>> 

Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.

12. Bereitstellung in Agent Engine

Nachdem Sie das Multi-Agent-System getestet und festgestellt haben, dass es ordnungsgemäß funktioniert, machen wir es serverlos und in der Cloud verfügbar, damit es von allen und jeder Anwendung verwendet werden kann. Entfernen Sie das Kommentarzeichen vor dem folgenden Code-Snippet in agent.py aus dem Repository, um Ihr Multi-Agenten-System bereitzustellen:

# Agent Engine Deployment:
# Create a remote app for our multiagent with agent Engine.
# This may take 1-2 minutes to finish.
# Uncomment the below segment when you're ready to deploy.

app = AdkApp(
    agent=root_agent,
    enable_tracing=True,
)

vertexai.init(
    project=PROJECT_ID,
    location=GOOGLE_CLOUD_LOCATION,
    staging_bucket=STAGING_BUCKET,
)

remote_app = agent_engines.create(
    app,
    requirements=[
        "google-cloud-aiplatform[agent_engines,adk]>=1.88",
        "google-adk",
        "pysqlite3-binary",
        "toolbox-langchain==0.1.0",
        "pdfplumber",
        "google-cloud-aiplatform",
        "cloudpickle==3.1.1",
        "pydantic==2.10.6",
        "pytest",
        "overrides",
        "scikit-learn",
        "reportlab",
        "google-auth",
        "google-cloud-storage",
    ],
)
# Deployment to Agent Engine related code ends

Führen Sie diese Datei „agent.py“ noch einmal im Projektordner mit dem folgenden Befehl aus:

>> cd adk-renovation-agent

>> python agent.py

Die Ausführung dieses Codes kann einige Minuten dauern. Anschließend erhalten Sie einen Endpunkt, der so aussieht:

'projects/123456789/locations/us-central1/reasoningEngines/123456'

Sie können Ihren bereitgestellten Agenten mit dem folgenden Code testen, indem Sie eine neue Datei „test.py“ hinzufügen.

import vertexai
from vertexai.preview import reasoning_engines
from vertexai import agent_engines
import os
import warnings
from dotenv import load_dotenv
load_dotenv()


GOOGLE_CLOUD_PROJECT = os.environ["GOOGLE_CLOUD_PROJECT"]
GOOGLE_CLOUD_LOCATION = os.environ["GOOGLE_CLOUD_LOCATION"]
GOOGLE_API_KEY = os.environ["GOOGLE_API_KEY"]
GOOGLE_GENAI_USE_VERTEXAI=os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
AGENT_NAME = "adk_renovation_agent"
MODEL_NAME = "gemini-2.5-pro-preview-03-25"
warnings.filterwarnings("ignore")
PROJECT_ID = GOOGLE_CLOUD_PROJECT

reasoning_engine_id = "<<YOUR_DEPLOYED_ENGINE_ID>>"

vertexai.init(project=PROJECT_ID, location="us-central1")
agent = agent_engines.get(reasoning_engine_id)
print("**********************")
print(agent)
print("**********************")


for event in agent.stream_query(
   
user_id="test_user",
   
message="I want you to check order status.",
):
   
print(event)

Ersetzen Sie im obigen Code den Wert für den Platzhalter „<<YOUR_DEPLOYED_ENGINE_ID>>“ und führen Sie den Befehl „python test.py“ aus. Sie können dann mit einem Multi-Agent-System interagieren, das die Agent Engine verwendet und bereit ist, Ihre Küche zu renovieren.

13. Einzeilige Bereitstellungsoptionen

Nachdem Sie das bereitgestellte Multi-Agent-System getestet haben, lernen wir jetzt einfachere Methoden kennen, die den Bereitstellungsschritt aus dem vorherigen Schritt abstrahieren: EINZELZEILIGE BEITRAGSMÖGLICHKEITEN:

  1. Zu Cloud Run:

Syntax:

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=<<YOUR_SERVICE_NAME>> \
--app_name=<<YOUR_APP_NAME>> \
--with_ui \
./<<YOUR_AGENT_PROJECT_NAME>>

In diesem Fall gilt:

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=renovation-agent \
--app_name=renovation-app \
--with_ui \
./renovation-agent

Sie können den bereitgestellten Endpunkt für nachfolgende Integrationen verwenden.

  1. An die Agent Engine:

Syntax:

adk deploy agent_engine \
  --project <your-project-id> \
  --region us-central1 \
  --staging_bucket gs://<your-google-cloud-storage-bucket> \
  --trace_to_cloud \
  path/to/agent/folder

In diesem Fall gilt:

adk deploy agent_engine --project <<YOUR_PROJECT_ID>> --region us-central1 --staging_bucket gs://<<YOUR_BUCKET_NAME>> --trace_to_cloud renovation-agent

In der Agent Engine-Benutzeroberfläche in der Google Cloud Console sollte ein neuer Agent angezeigt werden. Weitere Informationen finden Sie in diesem Blogpost.

14. Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:

  1. Rufen Sie in der Google Cloud Console die Seite Ressourcen verwalten auf.
  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

15. Glückwunsch

Glückwunsch! Sie haben mit dem ADK Ihren ersten Agenten erstellt und mit ihm interagiert.