Multi-Agent-App mit der MCP Toolbox for AlloyDB und dem ADK erstellen

Multi-Agent-App mit der MCP Toolbox for AlloyDB und dem ADK erstellen

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juni 17, 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 die Küchenrenovierung mit der MCP Toolbox for AlloyDB und dem ADK.

  1. Renovierungsvorschlag
  2. Agent für Genehmigungen und Compliance-Prüfung
  3. Prüfung des Bestellstatus (Tool mit MCP Toolbox for Databases)

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. Für diesen Datenbankteil verwenden wir jedoch die MCP Toolbox for AlloyDB, um die Logik zum Abrufen des Status für Bestellungen zu implementieren.

2. MCP

MCP steht für Model Context Protocol, einen von Anthropic entwickelten offenen Standard, der KI-Agenten eine einheitliche Möglichkeit bietet, eine Verbindung zu externen Tools, Diensten und Daten herzustellen. Sie dient im Wesentlichen als gemeinsamer Standard für KI-Anwendungen, mit dem sie nahtlos mit verschiedenen Datenquellen und Tools interagieren können.

  1. Es verwendet ein Client-Server-Modell, bei dem KI-Anwendungen (die Hosts) den MCP-Client ausführen, der mit MCP-Servern kommuniziert.
  2. Wenn ein KI-Chatbot auf ein bestimmtes Tool oder Daten zugreifen muss, sendet er eine strukturierte Anfrage an den MCP-Client, der sie an den entsprechenden MCP-Server weiterleitet.
  3. Ermöglicht es KI-Modellen, auf externe Daten und Tools zuzugreifen, ohne dass für jede Integration benutzerdefinierter Code erforderlich ist.
  4. Erleichtert das Erstellen von Bots und komplexen Workflows auf der Grundlage von Large Language Models (LLMs).

MCP-Toolbox für Datenbanken

Die MCP-Toolbox für Datenbanken von Google ist ein Open-Source-MCP-Server für Datenbanken. Sie wurde für die Unternehmensebene und Produktionsqualität entwickelt. Sie können damit Tools einfacher, schneller und sicherer entwickeln, da komplexe Aufgaben wie Verbindungspooling und Authentifizierung übernommen werden.

Gewähren Sie Ihren Kundenservicemitarbeitern Zugriff auf Daten in Ihrer Datenbank. Wie?

Vereinfachte Entwicklung: Sie können Tools mit weniger als 10 Codezeilen in Ihren Bot einbinden, Tools für mehrere Bots oder Frameworks wiederverwenden und neue Versionen von Tools einfacher bereitstellen.

Bessere Leistung:Best Practices wie Verbindungs-Pooling und Authentifizierung.

Erhöhte Sicherheit:Integrierte Authentifizierung für sicheren Zugriff auf Ihre Daten

End-to-End-Beobachtbarkeit: Sofort einsatzbereite Messwerte und Tracing mit integrierter Unterstützung für OpenTelemetry.

Ich muss darauf hinweisen, dass dies vor MCP war.

Die MCP Toolbox for Databases befindet sich zwischen dem Orchestration Framework Ihrer Agenturanwendung und Ihrer Datenbank und bietet eine Kontrollebene, mit der Tools geändert, verteilt oder aufgerufen werden können. Sie vereinfacht die Verwaltung Ihrer Tools, da Sie Tools an einem zentralen Ort speichern und aktualisieren können. So können Sie Tools für Kundenservicemitarbeiter und Anwendungen freigeben und diese Tools aktualisieren, ohne Ihre Anwendung unbedingt neu bereitzustellen.

9a9018b8596bd34e.png

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.

3. 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. Aktivieren Sie die folgenden APIs mit den folgenden Befehlen:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. Python 3.9 oder höher
  2. Weitere Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.

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. Führen Sie im Cloud Shell-Terminal nacheinander die folgenden Befehle aus, um das Stamm- und das Projektverzeichnis zu erstellen:
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

6. Quellcode

  1. Rufen Sie init.py auf 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
  1. Nennen Sie den Bucket „next-demo-store“ oder einen anderen zulässigen Namen. Notieren Sie sich diesen Wert, da Sie ihn in der .env-Datei im Schritt zur Einrichtung der Umgebungsvariablen aktualisieren müssen.
  2. Erstellen Sie sie am Standort „us-central1“.
  3. Rufen Sie die Cloud Storage Console auf und rufen Sie 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.

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"
  • Mit PostgreSQL 16 kompatibel / die jeweils neueste Version wird empfohlen
  • 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

6. WICHTIG: Ä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.

  1. Als Vorbereitung auf die Einrichtung der Toolbox aktivieren wir die Verbindung über eine öffentliche IP-Adresse in unserer AlloyDB-Instanz, damit das neue Tool auf die Datenbank zugreifen kann.
  2. Gehen Sie zum Abschnitt „Öffentliche IP-Verbindung“. Setzen Sie ein Häkchen in das Kästchen „Öffentliche IP-Adresse aktivieren“ und geben Sie die IP-Adresse Ihres Cloud Shell-Computers ein.
  3. Wenn Sie die IP-Adresse Ihres Cloud Shell-Rechners abrufen möchten, geben Sie im Cloud Shell-Terminal „ifconfig“ ein. Ermitteln Sie in den Ergebnissen die Inet-Adresse von eth0 und ersetzen Sie die letzten beiden Ziffern durch 0.0 mit einer Maskengröße von „/16“. Beispiel: „XX.XX.0.0/16“, wobei XX für Zahlen steht.
  4. Fügen Sie diese IP-Adresse in das Textfeld „Netzwerke“ auf der Seite „Instanz bearbeiten“ unter „Autorisierte externe Netzwerke“ ein.

e4d1045e1255e40f.png

  1. Sobald Ihr Netzwerk eingerichtet ist, können Sie mit dem Erstellen des Clusters fortfahren. Klicken Sie auf CLUSTER ERSTELN, um die Einrichtung des Clusters abzuschließen (siehe unten):

e06623e55195e16e.png

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 fertig ist, richten wir die MCP-Toolbox für Datenbanken ein, die als Kontrollebene für alle Interaktionen mit der Bestelldatenbank in AlloyDB dient.

8. MCP Toolbox for Databases einrichten

Toolbox befindet sich zwischen dem Orchestration Framework Ihrer Anwendung und Ihrer Datenbank und bietet eine Kontrollebene, mit der Tools geändert, verteilt oder aufgerufen werden können. Sie vereinfacht die Verwaltung Ihrer Tools, da Sie Tools an einem zentralen Ort speichern und aktualisieren können. So können Sie Tools für Kundenservicemitarbeiter und Anwendungen freigeben und diese Tools ohne Neubereitstellung der Anwendung aktualisieren.

Sie sehen, dass AlloyDB eine der von der MCP Toolbox for Databases unterstützten Datenbanken ist. Da wir diese bereits im vorherigen Abschnitt bereitgestellt haben, können wir jetzt mit der Einrichtung der Toolbox fortfahren.

  1. Rufen Sie Ihr Cloud Shell-Terminal auf und prüfen Sie, ob Ihr Projekt ausgewählt und im Prompt des Terminals angezeigt wird. Führen Sie den folgenden Befehl in Ihrem Cloud Shell-Terminal aus, um zum Projektverzeichnis zu wechseln:
cd adk-renovation-agent
  1. Führen Sie den folgenden Befehl aus, um die Toolbox in Ihrem neuen Ordner herunterzuladen und zu installieren:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Rufen Sie den Cloud Shell-Editor auf (für den Code-Bearbeitungsmodus) und fügen Sie dem Stammverzeichnis des Projekts die Datei „tools.yaml“ hinzu.
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1)
      LIMIT 1;

Im Abfrageteil (siehe Parameter „statement“ oben) wird nur der Wert für das Feld „order_status“ abgerufen, wenn der Materialname mit dem Suchtext des Nutzers übereinstimmt.

tools.yaml

Quellen sind die verschiedenen Datenquellen, mit denen ein Tool interagieren kann. Eine Quelle ist eine Datenquelle, mit der ein Tool interagieren kann. Sie können Quellen im Abschnitt „sources“ der Datei „tools.yaml“ als Map definieren. Normalerweise enthält eine Quellkonfiguration alle Informationen, die für die Verbindung mit der Datenbank und die Interaktion mit ihr erforderlich sind.

Tools definieren Aktionen, die ein Kundenservicemitarbeiter ausführen kann, z. B. das Lesen und Schreiben in einer Quelle. Ein Tool steht für eine Aktion, die ein Kundenservicemitarbeiter ausführen kann, z. B. das Ausführen einer SQL-Anweisung. Sie können Tools im Abschnitt „tools“ der Datei „tools.yaml“ als Map definieren. Normalerweise benötigt ein Tool eine Quelle, auf die es reagieren soll.

Weitere Informationen zur Konfiguration von tools.yaml finden Sie in dieser Dokumentation.

MCP-Toolbox für Datenbanken ausführen

Führen Sie den folgenden Befehl aus dem Ordner „mcp-toolbox“ aus, um den Server zu starten:

./toolbox --tools-file "tools.yaml"

Wenn Sie den Server jetzt in der Cloud im Webvorschaumodus öffnen, sollte der Toolbox-Server mit Ihrem neuen Tool namens „get-order-data“ einsatzbereit sein.

Der MCP Toolbox-Server wird standardmäßig auf Port 5000 ausgeführt. Testen wir das mit Cloud Shell.

Klicken Sie in Cloud Shell auf „Webvorschau“ (siehe Abbildung unten).

f990712162e8e924.png

Klicken Sie auf „Port ändern“, legen Sie den Port wie unten gezeigt auf 5000 fest und klicken Sie auf „Ändern und Vorschau“.

d1b9de0c46ecef8a.png

Die Ausgabe sollte so aussehen:

2fdcdac326034d41.png

Das MCP Toolkit for Databases beschreibt ein Python SDK, mit dem Sie die Tools validieren und testen können. Eine entsprechende Dokumentation finden Sie hier. Wir überspringen das und gehen im nächsten Abschnitt direkt zum Agent Development Kit (ADK) über, in dem diese Tools verwendet werden.

Toolbox in Cloud Run bereitstellen

Als Erstes können wir mit dem MCP Toolbox-Server beginnen und ihn in Cloud Run hosten. Dadurch erhalten wir einen öffentlichen Endpunkt, den wir in jede andere Anwendung und/oder die Kundenserviceanwendungen einbinden können. Eine Anleitung zum Hosten in Cloud Run finden Sie hier. Wir gehen jetzt die wichtigsten Schritte durch.

  1. Starten Sie ein neues Cloud Shell-Terminal oder verwenden Sie ein vorhandenes Cloud Shell-Terminal. Rufen Sie den Projektordner auf, in dem sich die Toolbox-Binärdatei und tools.yaml befinden, in diesem Fall „adk-renovation-agent“.
  2. Legen Sie die Variable PROJECT_ID so fest, dass sie auf Ihre Google Cloud-Projekt-ID verweist.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. Diese Google Cloud-Dienste aktivieren
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. Erstellen wir ein separates Dienstkonto, das als Identität für den Toolbox-Dienst dient, den wir in Google Cloud Run bereitstellen werden.
gcloud iam service-accounts create toolbox-identity
  1. Außerdem prüfen wir, ob dieses Dienstkonto die richtigen Rollen hat, d. h., ob es auf Secret Manager zugreifen und mit AlloyDB kommunizieren kann.
gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/alloydb.client

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/serviceusage.serviceUsageConsumer
  1. Wir laden die Datei „tools.yaml“ als Secret hoch:
gcloud secrets create tools --data-file=tools.yaml

Wenn Sie bereits ein Secret haben und die Secret-Version aktualisieren möchten, führen Sie Folgendes aus:

gcloud secrets versions add tools --data-file=tools.yaml

Legen Sie eine Umgebungsvariable für das Container-Image fest, das Sie für Cloud Run verwenden möchten:

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. Der letzte Schritt im vertrauten Bereitstellungsbefehl für Cloud Run:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

Dadurch sollte der Prozess zum Bereitstellen des Toolbox-Servers mit unserer konfigurierten tools.yaml in Cloud Run gestartet werden. Nach erfolgreicher Bereitstellung sollte eine Meldung ähnlich der folgenden angezeigt werden:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

Sie können das neu bereitgestellte Tool jetzt in Ihrer Agenturanwendung verwenden.

Lassen Sie uns das Toolbox-Tool mit unserem Kundenservicemitarbeiter verbinden.

Wir haben bereits die Quelle für unser Multi-Agent-System erstellt. Aktualisieren wir das, um eine neue MCP-Toolbox für Datenbanken aufzunehmen, die wir gerade in Cloud Run bereitgestellt haben.

  1. Ändern Sie die Datei „requirements.txt“ mit dem Code aus dem Repository:

Wir nehmen die Abhängigkeit für die MCP-Toolbox für Datenbanken in requirements.txt auf.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. Ändern Sie die Datei „agent.py“ mit dem Code aus dem Repository:

Wir fügen das Tool hinzu, das den Toolbox-Endpunkt aufruft, um Bestelldaten für ein bestimmtes Material abzurufen.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. 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.

10. Umgebungsvariablen einrichten

  1. Legen Sie die Werte für die Parameter in der .env-Datei der Vorlage 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>>

Ersetzen Sie die Platzhalter durch Ihre Werte.

11. Agent ausführen

  1. Rufen Sie im Terminal das übergeordnete Verzeichnis Ihres Kundenservicemitarbeiterprojekts auf:
cd renovation-agent
  1. Installieren Sie die Abhängigkeiten:
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. Check order status for Cement Bags.

13. 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.

14. Glückwunsch

Glückwunsch! Sie haben mit dem ADK und der MCP Toolbox for Databases eine Multi-Agent-Anwendung erstellt. Weitere Informationen finden Sie in den Produktdokumenten Agent Development Kit und MCP Toolbox for Databases.