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

1. Übersicht

Ein Agent ist ein autonomes Programm, das mit einem KI-Modell kommuniziert, um eine zielbasierte Operation mit den ihm zur Verfügung stehenden Tools und dem Kontext auszuführen. Es ist in der Lage, autonome Entscheidungen auf der Grundlage von Fakten zu treffen.

Wenn in Ihrer Anwendung mehrere Agenten autonom und bei Bedarf zusammenarbeiten, um den übergeordneten Zweck zu erfüllen, und jeder Agent unabhängig über Wissen verfügt und für einen bestimmten Schwerpunktbereich verantwortlich ist, wird Ihre Anwendung zu einem Multi-Agenten-System.

Das Agent Development Kit (ADK)

Das Agent Development Kit (ADK) ist ein flexibles und modulares Framework zum Entwickeln und Bereitstellen von KI-Agenten. Das ADK unterstützt die Entwicklung komplexer Anwendungen, indem mehrere unterschiedliche Agenteninstanzen zu einem Multi-Agenten-System (MAS) kombiniert werden.

Im ADK ist ein Multi-Agenten-System eine Anwendung, in der verschiedene Agenten, die oft eine Hierarchie bilden, zusammenarbeiten oder sich koordinieren, um ein größeres Ziel zu erreichen. Die Strukturierung Ihrer Anwendung auf diese Weise bietet erhebliche Vorteile, darunter eine verbesserte Modularität, Spezialisierung, Wiederverwendbarkeit und Wartungsfreundlichkeit sowie die Möglichkeit, strukturierte Kontrollflüsse mithilfe von dedizierten Workflow-Agents zu definieren.

Wichtige Hinweise für ein Multi-Agenten-System

Erstens: Es ist wichtig, dass Sie die Spezialisierung jedes Kundenservicemitarbeiters richtig verstehen und begründen können. – „Weißt du, warum du für etwas einen bestimmten untergeordneten Agenten benötigst?“ – finde das zuerst heraus.

Zweitens: Wie Sie sie mit einem Stamm-Agenten zusammenführen, um die einzelnen Antworten weiterzuleiten und zu analysieren.

Drittens: Es gibt verschiedene Arten von Agent-Routing, die Sie in dieser Dokumentation finden. Achten Sie darauf, dass die gewählte Option zum Ablauf Ihrer Anwendung passt. Außerdem müssen Sie die verschiedenen Kontexte und Status kennen, die für die Ablaufsteuerung Ihres Multi-Agent-Systems erforderlich sind.

Aufgaben

Wir erstellen ein Multi-Agenten-System für die Küchenrenovierung. Genau das werden wir tun. Wir werden ein System mit drei Agents erstellen.

  1. Agent für Renovierungsvorschläge
  2. Agent für Genehmigungen und Compliance-Prüfung
  3. Agent für die Prüfung des Bestellstatus

„Renovation Proposal Agent“ (Agent für Renovierungsangebote), um das Angebotsdokument für die Küchenrenovierung zu erstellen.

Genehmigungs- und Compliance-Agent, der sich um Genehmigungen und Compliance-bezogene Aufgaben kümmert.

Order Status Check Agent, um den Bestellstatus von Materialien zu prüfen. Dazu wird die Datenbank zur Auftragsverwaltung verwendet, die wir in AlloyDB eingerichtet haben.

Wir haben 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 zur 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 diesen Artikel lesen und Guthaben für den Einstieg in Google Cloud und die Verwendung des ADK erhalten möchten, können Sie über diesen Link Guthaben einlösen. Folgen Sie dieser Anleitung, um das Angebot einzulösen. Bitte beachten Sie, dass dieser Link nur bis Ende Mai zum Einlösen gültig ist.

  1. Aktivieren Sie Cloud Shell, indem Sie auf diesen Link klicken. 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. Sobald die Verbindung mit der Cloud Shell hergestellt ist, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist:
gcloud auth list
  1. Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass 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 muss installiert sein.
  2. Aktivieren Sie die folgenden APIs, indem Sie die folgenden Befehle ausführen:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. 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. Beginnen Sie mit der Eingabe Ihres Prompts. 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, um eine optimale Antwort zu erhalten.

Auf Grundlage dieser einfachen Beschreibung hat Gemini einen unglaublich detaillierten Prompt für mich erstellt, mit dem ich mit der Renovierung beginnen kann. Wir verwenden Gemini, um noch bessere Antworten von AI Studio und unseren Modellen zu erhalten. Je nach Anwendungsfall können Sie auch verschiedene Modelle auswählen.

Wir haben uns für Gemini 2.5 Pro entschieden. Dieses Modell ist ein Thinking-Modell, was bedeutet, dass wir noch mehr Ausgabetokens erhalten, in diesem Fall bis zu 65.000 Tokens, für ausführliche Analysen und detaillierte Dokumente. Die Gemini-Denkbox wird angezeigt, wenn Sie Gemini 2.5 Pro aktivieren. Diese Version verfügt über integrierte Schlussfolgerungsfunktionen und kann Anfragen mit langem Kontext verarbeiten.

Hier ein Snippet der Antwort:

a80d4bad4b3864f7.png

AI Studio hat meine Daten analysiert und all diese Dinge wie Schränke, Arbeitsplatten, Rückwand, Bodenbelag, Spüle, Kohäsion, Farbpalette und Materialauswahl erstellt. Gemini zitiert sogar Quellen.

Wiederholen Sie den Vorgang mit verschiedenen Modellen, bis Sie mit dem Ergebnis zufrieden sind. Aber warum sollte man sich die Mühe machen, wenn man Gemini 2.5 hat? :)

Sehen Sie sich nun an, wie die Idee mit einem anderen Prompt zum Leben erweckt wird:

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

Fügen Sie einen Link zum Bild Ihrer aktuellen Küche (oder einem Beispielbild einer Küche) bei. Ändern Sie das Modell in „Gemini 2.0 Flash Preview Image Generation“, damit Sie Bilder generieren können.

Ich habe diese Ausgabe erhalten:

b5b1e83fcada28f5.png

Das ist die Stärke von Gemini.

Gemini kann Videos analysieren, Bilder generieren und reale Informationen mit der Google Suche verknüpfen.

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

4. ADK einrichten

  1. Virtuelle Umgebung erstellen und aktivieren (empfohlen)

Erstellen Sie im 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 Terminal von Cloud Shell ein Verzeichnis am gewünschten Speicherort für das Projekt.
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
  1. Rufen Sie den Editor von Cloud Shell auf und erstellen Sie die folgende Projektstruktur, indem Sie die Dateien erstellen (anfangs leer):
renovation-agent/
        __init__.py
        agent.py
        .env
        requirements.txt

6. Quellcode

  1. Rufen Sie „init.py“ auf und aktualisieren Sie die Datei mit folgendem Inhalt:
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 Datei „.env“ ab und definieren den „root_agent“, der die drei untergeordneten KI-Agenten orchestriert, die wir in dieser Anwendung erstellen möchten. Es gibt mehrere Tools, die bei den Kern- und Supportfunktionen dieser untergeordneten Agents helfen.

  1. Prüfen, ob Sie den Cloud Storage-Bucket haben

Hier wird das vom Agent generierte 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 Ihrem Bucket den Namen next-demo-store. Wenn Sie einen anderen Namen verwenden, müssen Sie den Wert von STORAGE_BUCKET in der Datei „.env“ (im Schritt „ENV Variables Setup“) aktualisieren.

  1. Um den Zugriff auf den Bucket einzurichten, rufen Sie die Cloud Storage-Konsole und Ihren Storage-Bucket auf. In unserem Fall lautet der Bucket-Name „next-demo-storage“: https://console.cloud.google.com/storage/browser/next-demo-storage.

Klicken Sie auf „Berechtigungen“ > „Hauptkonten ansehen“ > „Zugriff gewähren“. Wählen Sie „allUsers“ als Identitäten und „Storage-Objekt-Nutzer“ als Rolle 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 mit Abhängigkeiten erstellen

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

Erklärung des Quellcodes für Multi-Agenten-Systeme

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

Agent-Definitionen

RenovationProposalAgent

Dieser KI-Agent ist für die Erstellung des Angebotsdokuments für die Küchenrenovierung verantwortlich. Optional können Eingabeparameter wie Küchengröße, gewünschter Stil, Budget und Kundenpräferenzen angegeben werden. 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 Agent konzentriert sich darauf, dass das Renovierungsprojekt den örtlichen Bauvorschriften und ‑bestimmungen entspricht. Es erhält Informationen zur geplanten Renovierung (z.B. strukturelle Änderungen, Elektroarbeiten, Änderungen an der Sanitärinstallation) und verwendet das LLM, um Genehmigungsanforderungen und Compliance-Regeln zu prüfen. Der Agent verwendet Informationen aus einer Wissensdatenbank, die Sie anpassen können, um auf externe APIs zuzugreifen und relevante Verordnungen zu erfassen.

OrderingAgent

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

Root-Agent (Orchestrator)

Der root_agent fungiert als zentraler Orchestrator des Multi-Agent-Systems. Er empfängt die ursprüngliche Renovierungsanfrage und bestimmt anhand der Anforderungen der Anfrage, welche untergeordneten Agents aufgerufen werden sollen. Wenn für die Anfrage beispielsweise eine Überprüfung der Genehmigungsanforderungen erforderlich ist, wird der PermitsAndComplianceCheckAgent aufgerufen. Wenn der Nutzer den Bestellstatus prüfen möchte, wird der OrderingAgent aufgerufen (sofern aktiviert).

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

Datenfluss und wichtige Konzepte

Der Nutzer initiiert eine Anfrage über die ADK-Schnittstelle (entweder das Terminal oder die Weboberfläche).

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

LLMs (Large Language Models)

Die Agents sind stark auf LLMs angewiesen, um Text zu generieren, Fragen zu beantworten und Schlussfolgerungsaufgaben auszuführen. Die LLMs sind das „Gehirn“ der KI-Agents und ermöglichen es ihnen, Nutzeranfragen zu verstehen und darauf zu reagieren. In dieser Anwendung verwenden wir Gemini 2.5.

Google Cloud Storage

Wird zum Speichern der generierten Dokumente mit Renovierungsvorschlägen verwendet. Sie müssen einen Bucket erstellen und den Agenten die erforderlichen Berechtigungen für den Zugriff darauf gewähren.

Cloud Run (optional)

Der OrderingAgent verwendet eine Cloud Run-Funktion für die Interaktion mit AlloyDB. Cloud Run bietet eine serverlose Umgebung, in der Code als Reaktion auf HTTP-Anfragen ausgeführt wird.

AlloyDB

Wenn Sie den OrderingAgent verwenden, müssen Sie eine AlloyDB-Datenbank einrichten, in der Bestellinformationen gespeichert werden. Im nächsten Abschnitt „Datenbank einrichten“ gehen wir auf die Details ein.

.env-Datei

In der Datei „.env“ werden vertrauliche Informationen wie API-Schlüssel, Datenbankanmeldedaten und Bucket-Namen gespeichert. Es ist wichtig, diese Datei sicher aufzubewahren und nicht in Ihr Repository zu übertragen. Außerdem werden Konfigurationseinstellungen für die Agents und Ihr Google Cloud-Projekt gespeichert. Der root_agent oder unterstützende Funktionen lesen in der Regel Werte aus dieser Datei. Prüfen Sie, ob alle erforderlichen Variablen in der Datei „.env“ richtig festgelegt sind. Dazu gehört der Name des Cloud Storage-Buckets.

7. Datenbank einrichten

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

Cluster und Instanz erstellen

  1. Rufen Sie in der Cloud Console die AlloyDB-Seite 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. Sie sehen einen Bildschirm wie den unten. Erstellen Sie einen Cluster und eine Instanz mit den folgenden Werten. Achten Sie darauf, dass die Werte übereinstimmen, wenn 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 VERBINDUNG EINRICHTEN aus.
7939bbb6802a91bf.png

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

e06623e55195e16e.png

Achten Sie darauf, die Instanz-ID zu ändern (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 die Einrichtung erfolgreich war, wird ein Bildschirm mit der Übersicht des gerade erstellten Clusters angezeigt.

Datenaufnahme

Jetzt ist es an der Zeit, eine Tabelle mit den Daten zum Geschäft hinzuzufügen. 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 in AlloyDB 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 erfolgreich in AlloyDB Studio authentifiziert haben, werden SQL-Befehle im Editor eingegeben. Sie können mehrere Editorfenster hinzufügen, indem Sie auf das Pluszeichen rechts neben dem letzten Fenster klicken.

91a86d9469d499c4.png

Sie geben Befehle für AlloyDB in Editorfenstern ein und verwenden bei 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-Abfrageanweisung aus dem oben erwähnten database_script.sql-Skript in den Editor.

Klicken Sie auf Ausführen.

Nachdem das Dataset fertig 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. Erstellen Sie hier eine Cloud Run-Funktion: 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 die folgende 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.

WICHTIGER SCHRITT:

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

Sobald Sie die Bereitstellung gestartet haben, 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 BEREITSTELLEN (in der Cloud Run Functions-Konsole durch das Symbol „Bearbeiten“ (Stift) oben gekennzeichnet). Ä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 „Einstellungen“ und wählen Sie dann die Option Neuen VPC-Connector hinzufügen aus (falls Sie den Standard-Connector noch nicht konfiguriert haben). Folgen Sie der Anleitung im eingeblendeten 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 Netzwerk-Wert auf dem Standardwert und legen Sie das Subnetz als benutzerdefinierten IP-Bereich mit dem IP-Bereich 10.8.0.0 oder einem ähnlichen verfügbaren Bereich fest.
  2. Klicken Sie auf „SHOW SCALING SETTINGS“ (Skalierungseinstellungen anzeigen) und prüfen Sie, ob die Konfiguration genau wie unten angegeben ist:

199b0ccd80215004.png

  1. Klicken Sie auf ERSTELLEN. Der Connector sollte jetzt in den Einstellungen für ausgehenden Traffic aufgeführt sein.
  2. Wählen Sie den neu erstellten Connector aus.
  3. Wählen Sie aus, dass der gesamte Traffic über diesen VPC-Connector weitergeleitet werden soll.
  4. Klicken Sie auf WEITER und dann auf BEREITSTELLEN.
  5. Nachdem die aktualisierte Cloud-Funktion bereitgestellt wurde, sollte der Endpunkt generiert werden.
  6. Sie können die Funktion testen, indem Sie oben in der Cloud Run Functions Console auf die Schaltfläche „TEST“ 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 Ihres KI-Agenten, Nutzeranfragen zu verstehen und Antworten zu generieren, basiert auf einem Large Language Model (LLM). Ihr Agent muss sichere Aufrufe an diesen externen LLM-Dienst ausführen. Dazu sind Authentifizierungsanmeldedaten erforderlich. 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 von 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. Richten Sie die Werte für die Parameter in der .env-Datei der Vorlage in diesem Repository ein. In meinem Fall enthält die Datei „.env“ 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. Wechseln Sie im Terminal zum übergeordneten Verzeichnis Ihres Agent-Projekts:
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. Sie können den folgenden Befehl ausführen, um ihn in einer 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.

11. Ergebnis

@ Multi-Agenten-System für Küchenrenovierungsaufgaben

623fa35fce53b51b.png

12. Bereitstellung in der Agent Engine

Nachdem Sie das Multi-Agenten-System getestet haben, machen wir es serverlos und stellen es in der Cloud für alle Nutzer und Anwendungen zur Verfügung. Entfernen Sie die Kommentarzeichen aus dem folgenden Code-Snippet in der Datei agent.py aus dem Repository. Danach können Sie Ihr Multi-KI-Agentensystem bereitstellen:

# 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 „agent.py“ noch einmal im Projektordner mit dem folgenden Befehl aus:

>> cd adk-renovation-agent

>> python agent.py

Das 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 KI-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. Jetzt können Sie mit einem Multi-Agent-System interagieren, das in Agent Engine bereitgestellt wird, und Ihre Küche renovieren lassen.

13. Einzeilige Bereitstellungsoptionen

Nachdem Sie das bereitgestellte Multi-Agenten-System getestet haben, sehen wir uns nun einfachere Methoden an, mit denen der Bereitstellungsschritt aus dem vorherigen Schritt abstrahiert wird: BEREITSTELLUNGSOPTIONEN IN EINER ZEILE:

  1. In 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 nachgelagerte 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 Blog.

14. Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
  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 erfolgreich Ihren ersten Agent mit dem ADK erstellt und mit ihm interagiert.