1. Einführung
In diesem Lab geht es um die Implementierung und Bereitstellung eines Client-KI-Agentendienstes. Sie verwenden das Agent Development Kit (ADK), um einen KI-Agenten zu erstellen, der Remote-Tools wie den in Lab 1 erstellten MCP-Server verwendet. Das wichtigste architektonische Prinzip, das in diesem Lab gezeigt wird, ist die Trennung von Zuständigkeiten. Eine separate Problemlösungsebene (der KI-Agent) kommuniziert über eine sichere API mit einer separaten Toolebene (dem MCP-Server).
In Lab 1 haben Sie einen MCP-Server erstellt, der LLMs Daten zu den Tieren in einem fiktiven Zoo zur Verfügung stellt, z. B. bei der Verwendung der Gemini CLI. In diesem Lab erstellen wir einen Zooführungs-KI-Agenten für den fiktiven Zoo. Der KI-Agent verwendet denselben MCP-Server aus Lab 1, um Details zu den Zootieren abzurufen, und Wikipedia, um die bestmögliche Führung zu bieten.

Zum Schluss stellen wir den Zooführungs-KI-Agenten in Google Cloud Run bereit, damit alle Zoobesucherinnen und -besucher darauf zugreifen können und er nicht nur lokal ausgeführt wird.
Voraussetzungen
- Ein laufender MCP-Server in Cloud Run oder die zugehörige Dienst-URL
- Ein Google Cloud-Projekt mit aktivierter Abrechnungsfunktion
Lerninhalte
- So strukturieren Sie ein Python-Projekt für die ADK-Bereitstellung.
- Mit google-adk einen KI-Agenten implementieren, der Tools verwendet
- KI-Agenten mit einem Remote-MCP-Server verbinden, um das Toolset darauf zu verwenden
- So stellen Sie eine Python-Anwendung als serverlosen Container in Cloud Run bereit.
- So konfigurieren Sie die sichere Dienst-zu-Dienst-Authentifizierung mit IAM-Rollen.
- Cloud-Ressourcen löschen, um zukünftige Kosten zu vermeiden
Voraussetzungen
- Ein Google Cloud-Konto und ein Google Cloud-Projekt
- Ein Webbrowser wie Chrome
2. Warum in Cloud Run bereitstellen?
Cloud Run ist eine hervorragende Wahl für das Hosting von ADK-KI-Agenten, da es sich um eine serverlose Plattform handelt. Sie können sich also auf Ihren Code konzentrieren und müssen sich nicht um die Verwaltung der zugrunde liegenden Infrastruktur kümmern. Wir übernehmen die operative Arbeit für Sie.
Stellen Sie sich das wie einen Pop-up-Store vor: Er öffnet nur, wenn Kundinnen und Kunden (Anfragen) kommen, und nutzt dann Ressourcen. Wenn keine Kundinnen und Kunden da sind, schließt er komplett und Sie zahlen nicht für ein leeres Geschäft.
Wichtige Funktionen
Container überall ausführen:
- Sie stellen einen Container (Docker-Image) mit Ihrer Anwendung darin bereit.
- Cloud Run führt sie in der Infrastruktur von Google aus.
- Es sind kein Patching des Betriebssystems und keine VM-Einrichtung nötig und es gibt keine Skalierungsprobleme.
Autoscaling:
- Wenn niemand Ihre App verwendet, werden 0 Instanzen ausgeführt (die Anzahl der Instanzen wird auf null reduziert, was kostengünstig ist).
- Wenn 1.000 Anfragen eingehen, werden so viele Kopien wie nötig erstellt.
Standardmäßig zustandslos:
- Jede Anfrage kann an eine andere Instanz gehen.
- Wenn Sie einen Zustand speichern müssen, verwenden Sie einen externen Dienst wie Cloud SQL, Firestore oder Memorystore.
Unterstützt jede Sprache und jedes Framework:
- Solange die Anwendung in einem Linux-Container ausgeführt wird, ist es Cloud Run egal, ob sie in Python, Go, Node.js, Java oder .NET geschrieben ist.
Nur für die tatsächliche Nutzung zahlen:
- Anfragebasierte Abrechnung: Die Abrechnung erfolgt pro Anfrage und Rechenzeit (bis auf 100 ms genau).
- Instanzbasierte Abrechnung: Die Abrechnung erfolgt für die gesamte Lebensdauer der Instanz (keine Gebühr pro Anfrage).
3. Einrichtung und Anforderungen
Einrichtung der Umgebung im eigenen Tempo
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am Programm Kostenlose Testversion mit einem Guthaben von 300$ teilnehmen.
Cloud Shell starten
Rufen Sie den Cloud Shell-Editor auf.
Wenn das Terminal nicht unten auf dem Bildschirm angezeigt wird, öffnen Sie es:
- Klicken Sie auf Terminal.
- Klicken Sie auf Neues Terminal.

Legen Sie im Terminal Ihr Projekt mit diesem Befehl fest. Wenn Sie Lab 1 abgeschlossen haben, achten Sie darauf, dass Sie dieselbe Projekt-ID verwenden:
gcloud config set project [YOUR-PROJECT-ID]
Wenn Sie sich nicht mehr an Ihre Projekt-ID erinnern, können Sie alle Ihre Projekt-IDs mit folgendem Befehl auflisten:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
4. Wenn Sie zur Autorisierung aufgefordert werden, klicken Sie auf Autorisieren, um fortzufahren.

5. Es sollte folgende Meldung angezeigt werden:
Updated property [core/project].
If you see a `WARNING` and are asked `Do you want to continue (Y/n)?`,
then you have likely entered the project ID incorrectly. Press `n`,
press `Enter`, and try to run the `gcloud config set project` command again.
4. Hinweis
APIs aktivieren und Umgebungsvariablen festlegen
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com \
compute.googleapis.com
Erwartete Ausgabe
Operation "operations/acat.p2-[GUID]" finished successfully.
5. Projektordner erstellen
Erstellen Sie das Projektverzeichnis.
Mit diesem Befehl wird im Lab ein Hauptordner für den Quellcode des KI-Agenten erstellt.
cd && mkdir zoo_guide_agent && cd zoo_guide_agent
Erstellen Sie die Datei requirements.txt. In dieser Datei sind die Python-Bibliotheken aufgeführt, die Ihr Agent benötigt. Mit dem folgenden Befehl wird die Datei erstellt und mit Daten gefüllt.
cloudshell edit requirements.txt
google-adk==1.14.0
langchain-community==0.3.27
wikipedia==1.4.0
Legen Sie Variablen für Ihre aktuelle Projekt-ID und Projektnummer fest und erstellen Sie ein dediziertes Dienstkonto für Ihr Projekt. Dies ist eine robustere Methode zum Ausführen dieser Befehle.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
export SA_NAME=lab2-cr-service
export SERVICE_ACCOUNT="${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
gcloud iam service-accounts create ${SA_NAME} \
--display-name="Service Account for lab 2 "
Erstellen und öffnen Sie eine .env-Datei, um den KI-Agenten im Verzeichnis zoo_guide_agent zu authentifizieren.
cloudshell edit .env
Mit dem Befehl „cloudshell edit“ wird die Datei .env im Editor über dem Terminal geöffnet. Geben Sie Folgendes in die Datei .env ein und kehren Sie zum Terminal zurück.
MODEL="gemini-2.5-flash"
Fügen Sie die MCP-Server-URL hinzu. Wenn Sie Lab 1 abgeschlossen haben, gehen Sie so vor, um den MCP-Server zu verwenden, den Sie in Lab 1 erstellt haben:
- Cloud Run-Dienstidentität die Berechtigung zum Aufrufen des Remote-MCP-Servers erteilen
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/run.invoker"
- Speichern Sie die MCP-Server-URL aus Lab 1 in einer Umgebungsvariablen.
echo -e "\nMCP_SERVER_URL=https://zoo-mcp-server-${PROJECT_NUMBER}.europe-west1.run.app/mcp" >> .env
Wenn Sie einen öffentlichen MCP-Serverlink verwenden, führen Sie Folgendes aus und ersetzen Sie PROJECT_NUMBER durch den bereitgestellten Wert.
echo -e "\nMCP_SERVER_URL=https://zoo-mcp-server-${PROJECT_NUMBER}.europe-west1.run.app/mcp" >> .env
6. KI‑Agentenworkflow erstellen
Erstellen Sie die Datei init.py. Diese Datei teilt Python mit, dass das Verzeichnis „zoo_guide_agent“ ein Paket ist.
cloudshell edit __init__.py
Mit dem obigen Befehl wird der Code-Editor geöffnet. Fügen Sie den folgenden Code zu __init__.py hinzu:
from . import agent
Hauptdatei „agent.py“ erstellen
Erstellen Sie die Hauptdatei „agent.py“. Mit diesem Befehl wird die Python-Datei erstellt und der vollständige Code für Ihr Multi-KI-Agentensystem eingefügt.
cloudshell edit agent.py
Schritt 1: Importe und Ersteinrichtung
Dieser erste Block ruft alle erforderlichen Bibliotheken aus dem ADK und Google Cloud ab. Außerdem werden das Logging eingerichtet und die Umgebungsvariablen werden aus der Datei .env geladen, was für den Zugriff auf das Modell und die Server-URL entscheidend ist.
Fügen Sie der Datei „agent.py“ den folgenden Code hinzu:
import os
import logging
import google.cloud.logging
from dotenv import load_dotenv
from google.adk import Agent
from google.adk.agents import SequentialAgent
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StreamableHTTPConnectionParams
from google.adk.tools.tool_context import ToolContext
from google.adk.tools.langchain_tool import LangchainTool
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
import google.auth
import google.auth.transport.requests
import google.oauth2.id_token
# --- Setup Logging and Environment ---
cloud_logging_client = google.cloud.logging.Client()
cloud_logging_client.setup_logging()
load_dotenv()
model_name = os.getenv("MODEL")
Schritt 2:Tools definieren (die Fähigkeiten des KI-Agenten)

Ein KI-Agent ist nur so gut wie die Tools, die er nutzen kann. In diesem Abschnitt definieren wir alle Fähigkeiten unseres KI-Agenten, einschließlich einer benutzerdefinierten Funktion zum Speichern von Daten, eines MCP-Tools, das eine Verbindung zu unserem sicheren MCP-Server herstellt, sowie eines Wikipedia-Tools.
Fügen Sie den folgenden Code am Ende von „agent.py“ ein:
# Greet user and save their prompt
def add_prompt_to_state(
tool_context: ToolContext, prompt: str
) -> dict[str, str]:
"""Saves the user's initial prompt to the state."""
tool_context.state["PROMPT"] = prompt
logging.info(f"[State updated] Added to PROMPT: {prompt}")
return {"status": "success"}
# Configuring the MCP Tool to connect to the Zoo MCP server
mcp_server_url = os.getenv("MCP_SERVER_URL")
if not mcp_server_url:
raise ValueError("The environment variable MCP_SERVER_URL is not set.")
def get_id_token():
"""Get an ID token to authenticate with the MCP server."""
target_url = os.getenv("MCP_SERVER_URL")
audience = target_url.split('/mcp/')[0]
request = google.auth.transport.requests.Request()
id_token = google.oauth2.id_token.fetch_id_token(request, audience)
return id_token
"""
# Use this code if you are using the public MCP Server and comment out the code below defining mcp_tools
mcp_tools = MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url=mcp_server_url
)
)
"""
mcp_tools = MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url=mcp_server_url,
headers={
"Authorization": f"Bearer {get_id_token()}",
},
),
)
# Configuring the Wikipedia Tool
wikipedia_tool = LangchainTool(
tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
)
Die drei Tools im Detail
add_prompt_to_state📝
Dieses Tool merkt sich die Fragen der Zoobesucherinnen und -besucher. Wenn eine Besucherin oder ein Besucher fragt: „Wo sind die Löwen?“, speichert dieses Tool die Frage im Gedächtnis des KI-Agenten, sodass die anderen KI-Agenten im Workflow wissen, wonach sie suchen müssen.
Funktionsweise:Es handelt sich um eine Python-Funktion, die den Prompt des Besuchers in das gemeinsame Wörterbuch tool_context.state schreibt. Dieser Toolkontext stellt das Kurzzeitgedächtnis des KI-Agenten für eine einzelne Unterhaltung dar. Daten, die von einem KI-Agenten im Zustand gespeichert wurden, können vom nächsten KI-Agenten im Workflow gelesen werden.
MCPToolset🦁
Damit wird der Tour Guide-Agent mit dem in Lab 1 erstellten Zoo-MCP-Server verbunden. Dieser Server hat spezielle Tools, um bestimmte Informationen über unsere Tiere abzurufen, wie ihren Namen, ihr Alter und ihr Gehege.
Funktionsweise: Es wird eine sichere Verbindung zur privaten Server-URL des Zoos hergestellt. Es wird get_id_token verwendet, um automatisch eine sichere „Schlüsselkarte“ (ein Dienstkonto-ID-Token) zu erhalten, mit der die Identität nachgewiesen und Zugriff erlangt werden kann.
LangchainTool🌍
Dadurch erhält der Reiseführer-Agent allgemeines Weltwissen. Wenn eine Besucherin oder ein Besucher eine Frage stellt, die nicht in der Datenbank des Zoos enthalten ist, wie z. B.: „Was fressen Löwen in freier Wildbahn?“, kann der KI-Agent mit diesem Tool die Antwort bei Wikipedia nachschlagen.
Funktionsweise:Das Tool fungiert als Adapter, sodass unser KI-Agent das vorhandene Tool „WikipediaQueryRun“ aus der LangChain-Bibliothek verwenden kann.
Ressourcen:
Schritt 3: Spezial-KI-Agenten definieren
Als Nächstes definieren wir den Recherche-KI-Agenten und den Antwortformatierungs-KI-Agenten. Der Recherche-KI-Agent ist das „Gehirn“ unseres Dienstes. Dieser KI-Agent nimmt den Prompt der Nutzerin bzw. des Nutzers aus dem gemeinsamen State, prüft seine leistungsfähigen Tools (das MCP-Servertool des Zoos und das Wikipedia-Tool) und entscheidet, welche verwendet werden sollen, um die Antwort zu finden.
Die Aufgabe des Antwortformatierungs-KI-Agents ist die Präsentation. Er verwendet keine Tools, um neue Informationen zu finden. Stattdessen werden die vom Recherche-KI-Agenten gesammelten Rohdaten (über den Zustand übergeben) übernommen und mithilfe der Sprachkenntnisse des LLM in eine freundliche Antwort wie bei einer normalen Unterhaltung umwandelt.
Fügen Sie den folgenden Code am Ende von agent.py ein:
# 1. Researcher Agent
comprehensive_researcher = Agent(
name="comprehensive_researcher",
model=model_name,
description="The primary researcher that can access both internal zoo data and external knowledge from Wikipedia.",
instruction="""
You are a helpful research assistant. Your goal is to fully answer the user's PROMPT.
You have access to two tools:
1. A tool for getting specific data about animals AT OUR ZOO (names, ages, locations).
2. A tool for searching Wikipedia for general knowledge (facts, lifespan, diet, habitat).
First, analyze the user's PROMPT.
- If the prompt can be answered by only one tool, use that tool.
- If the prompt is complex and requires information from both the zoo's database AND Wikipedia,
you MUST use both tools to gather all necessary information.
- Synthesize the results from the tool(s) you use into preliminary data outputs.
PROMPT:
{{ PROMPT }}
""",
tools=[
mcp_tools,
wikipedia_tool
],
output_key="research_data" # A key to store the combined findings
)
# 2. Response Formatter Agent
response_formatter = Agent(
name="response_formatter",
model=model_name,
description="Synthesizes all information into a friendly, readable response.",
instruction="""
You are the friendly voice of the Zoo Tour Guide. Your task is to take the
RESEARCH_DATA and present it to the user in a complete and helpful answer.
- First, present the specific information from the zoo (like names, ages, and where to find them).
- Then, add the interesting general facts from the research.
- If some information is missing, just present the information you have.
- Be conversational and engaging.
RESEARCH_DATA:
{{ research_data }}
"""
)
Schritt 4: Der Workflow-Agent
Der Workflow-KI-Agent fungiert als Koordinator für die Zootour. Er nimmt die Rechercheanfrage entgegen und sorgt dafür, dass die beiden oben definierten KI-Agenten ihre Aufgaben in der richtigen Reihenfolge erledigen: zuerst die Recherche, dann die Formatierung. So entsteht ein vorhersehbarer, zuverlässiger Prozess, um die Fragen von Besuchern zu beantworten.
Funktionsweise:Es ist ein SequentialAgent, eine spezielle Art von KI-Agent, der nicht selbstständig denkt. Seine einzige Aufgabe ist es, eine Liste von sub_agents (für Recherche und Formatierung) in einer festen Reihenfolge auszuführen und die gemerkten Informationen automatisch von einem zum nächsten zu übergeben.
Fügen Sie diesen Codeblock am Ende von agent.py ein:
tour_guide_workflow = SequentialAgent(
name="tour_guide_workflow",
description="The main workflow for handling a user's request about an animal.",
sub_agents=[
comprehensive_researcher, # Step 1: Gather all data
response_formatter, # Step 2: Format the final response
]
)
Letzter Schritt: Hauptworkflow zusammenstellen 
Dieser Agent wird als root_agent festgelegt, den das ADK-Framework als Ausgangspunkt für alle neuen Unterhaltungen verwendet. Die Hauptaufgabe dieses KI-Agenten ist die Orchestrierung des gesamten Prozesses. Er fungiert als anfänglicher Controller und verwaltet die erste Runde der Unterhaltung.
Fügen Sie diesen letzten Codeblock am Ende von agent.py ein:
root_agent = Agent(
name="greeter",
model=model_name,
description="The main entry point for the Zoo Tour Guide.",
instruction="""
- Let the user know you will help them learn about the animals we have in the zoo.
- When the user responds, use the 'add_prompt_to_state' tool to save their response.
After using the tool, transfer control to the 'tour_guide_workflow' agent.
""",
tools=[add_prompt_to_state],
sub_agents=[tour_guide_workflow]
)
Ihre agent.py-Datei ist jetzt fertig. So können Sie sehen, wie jede Komponente – Tools, Worker-KI-Agenten und Manager-KI-Agenten – eine bestimmte Rolle bei der Erstellung des endgültigen, intelligenten Systems spielt. Als Nächstes erfolgt die Bereitstellung.
7. Anwendung auf die Bereitstellung vorbereiten
Nachdem Sie Ihre lokale Umgebung eingerichtet haben, müssen Sie Ihr Google Cloud-Projekt für die Bereitstellung vorbereiten. Dabei wird die Dateistruktur des KI-Agenten noch einmal geprüft, um sicherzugehen, dass sie mit dem Bereitstellungsbefehl kompatibel ist. Noch wichtiger ist, dass Sie eine kritische IAM-Berechtigung konfigurieren, die es Ihrem bereitgestellten Cloud Run-Dienst ermöglicht, in Ihrem Namen zu handeln und die Vertex AI-Modelle aufzurufen. Wenn Sie diesen Schritt abgeschlossen haben, ist die Cloud-Umgebung bereit, Ihren KI-Agenten erfolgreich auszuführen.
Laden Sie die Variablen in Ihre Shell-Sitzung, indem Sie den Befehl „source“ ausführen.
source .env
Weisen Sie dem Dienstkonto die Rolle „Vertex AI-Nutzer“ zu. Damit hat es die Berechtigung, Vorhersagen zu treffen und Modelle von Google aufzurufen.
# Grant the "Vertex AI User" role to your service account
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/aiplatform.user"
8. KI-Agenten mit der ADK-CLI bereitstellen
Ihr lokaler Code ist fertig und Ihr Google Cloud-Projekt ist vorbereitet. Jetzt können Sie den KI-Agenten bereitstellen. Sie verwenden den Befehl adk deploy cloud_run, ein praktisches Tool, das den gesamten Bereitstellungsworkflow automatisiert. Mit diesem einen Befehl wird Ihr Code verpackt, ein Container-Image erstellt und in Artifact Registry gepusht und der Dienst in Cloud Run gestartet, sodass er im Web zugänglich ist.
Bereitstellen
Führen Sie die folgenden Befehle aus, um den Agenten bereitzustellen. Mit dem Befehl uvx können Sie Befehlszeilentools ausführen, die als Python-Pakete veröffentlicht wurden, ohne dass diese Tools global installiert werden müssen.
# Run the deployment command
uvx --from google-adk==1.14.0 \
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=europe-west1 \
--service_name=zoo-tour-guide \
--with_ui \
. \
-- \
--labels=dev-tutorial=codelab-adk \
--service-account=$SERVICE_ACCOUNT
Prompts akzeptieren
Möglicherweise werden Sie aufgefordert, Folgendes zu tun:
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [europe-west1] will be created. Do you want to continue (Y/n)?
Geben Sie „Y“ ein und drücken Sie die Eingabetaste.
Möglicherweise werden Sie aufgefordert, Folgendes zu tun:
Allow unauthenticated invocations to [your-service-name] (y/N)?.
In diesem Lab möchten wir nicht authentifizierte Aufrufe für einfache Tests zulassen. Geben Sie y ein und drücken Sie die Eingabetaste.
Bereitstellungslink abrufen
Nach erfolgreicher Ausführung wird mit dem Befehl die URL des bereitgestellten Cloud Run-Dienstes ausgegeben. Sie sieht in etwa so aus: https://zoo-tour-guide-123456789.europe-west1.run.app. Kopieren Sie diese URL für die nächste Aufgabe.
9. Bereitgestellten KI-Agenten testen
Ihr KI-Agent ist jetzt in Cloud Run aktiv. In dieser Aufgabe führen Sie einen Test durch, um zu bestätigen, dass die Bereitstellung erfolgreich war und der KI-Agent wie erwartet funktioniert. Über die öffentliche Dienst-URL (z. B. https://zoo-tour-guide-123456789.europe-west1.run.app/) können Sie auf die Weboberfläche des ADK zugreifen und mit dem KI-Agenten interagieren.
Öffnen Sie die öffentliche Cloud Run-Dienst-URL in Ihrem Webbrowser. Da Sie --with_ui flag verwendet haben, sollte die ADK-Entwickler-UI angezeigt werden.
Aktivieren Sie Token Streaming rechts oben.
Sie können jetzt mit dem Zoo-KI-Agenten interagieren.
Geben Sie hello ein und drücken Sie die Eingabetaste, um eine neue Unterhaltung zu beginnen.
Sehen Sie sich das Ergebnis an. Der KI-Agent sollte schnell mit seiner Begrüßung antworten:
"Hello! I'm your Zoo Tour Guide. I can help you learn about the amazing animals we have here. What would you like to know or explore today?"
Stellen Sie dem Agenten Fragen wie:
Where can I find the polar bears in the zoo and what is their diet?

KI-Agentenablauf
Ihr System funktioniert wie ein intelligentes Multi-KI-Agententeam. Der Prozess wird durch eine klare Abfolge gesteuert, um einen reibungslosen und effizienten Ablauf von der Frage einer Nutzerin oder eines Nutzers bis zur detaillierten Antwort zu gewährleisten.
1. Die Zoobegrüßung (der Empfangstresen)
Der gesamte Prozess beginnt mit dem Begrüßungs-KI-Agenten.
Aufgabe: Die Unterhaltung beginnen. Die Anweisung lautet, die Nutzerin bzw. den Nutzer zu begrüßen und zu fragen, über welches Tier die Person mehr erfahren möchte.
Tool: Wenn die Nutzerin bzw. der Nutzer antwortet, verwendet der Begrüßungs-KI-Agent das Tool „add_prompt_to_state“, um die genauen Worte der Person zu erfassen (z. B. „Erzähl mir etwas über Löwen“), und speichert sie im Arbeitsspeicher des Systems.
Übergabe: Nachdem der Prompt gespeichert wurde, übergibt er die Steuerung sofort an seinen Unter-KI-Agenten, den tour_guide_workflow.
2. Der gründliche Rechercheur (der Superrechercheur)
Dies ist der erste Schritt im Hauptworkflow und das „Gehirn“ des Dienstes. Statt eines großen Teams haben Sie jetzt einen einzigen, hochqualifizierten KI-Agenten, der auf alle verfügbaren Informationen zugreifen kann.
Aufgabe: Die Frage der Nutzerin bzw. des Nutzers analysieren und einen intelligenten Plan erstellen. Der Recherche-KI-Agent nutzt die Fähigkeit des Sprachmodells zur Toolnutzung, um zu entscheiden, ob er Folgendes benötigt:
- Interne Daten aus den Aufzeichnungen des Zoos (über den MCP-Server)
- Allgemeinwissen aus dem Web (über die Wikipedia API)
- Beides im Fall komplexer Fragen
Aktion: Es werden die erforderlichen Tools ausgeführt, um alle benötigten Rohdaten zu erheben. Wenn beispielsweise gefragt wird: „Wie alt sind unsere Löwen und was fressen sie in freier Wildbahn?“, ruft Gemini den MCP-Server für das Alter und das Wikipedia-Tool für die Informationen zur Nahrung auf.
3. Der Antwortformatierer (der Präsentator)
Sobald der gründliche Rechercheur alle Fakten zusammengetragen hat, ist dies der letzte KI-Agent, der ausgeführt wird.
Aufgabe: Als freundliche Stimme der Zooführung fungieren. Dieser KI-Agent nimmt die Rohdaten (die aus einer oder aus beiden Quellen stammen können) und bereitet sie auf.
Aktion: Die Informationen werden in einer einzigen, zusammenhängenden und ansprechenden Antwort zusammengefasst. Gemäß den Anweisungen werden zuerst die spezifischen Zoo-Informationen und dann die interessanten allgemeinen Fakten präsentiert.
Endergebnis: Der von diesem KI-Agenten generierte Text ist die vollständige, detaillierte Antwort, die im Chatfenster zu sehen ist.
Wenn Sie mehr über das Erstellen von KI-Agenten erfahren möchten, finden Sie hier einige Ressourcen:
10. Umgebung bereinigen
gcloud run services delete zoo-tour-guide --region=europe-west1 --quiet
gcloud artifacts repositories delete cloud-run-source-deploy --location=europe-west1 --quiet
11. Glückwunsch
Herzlichen Glückwunsch zum Abschluss des Codelabs.
Behandelte Themen
- So strukturieren Sie ein Python-Projekt für die Bereitstellung mit der ADK-Befehlszeile.
- Implementieren eines Multi-Agenten-Workflows mit SequentialAgent und ParallelAgent
- So stellen Sie mit MCPToolset eine Verbindung zu einem Remote-MCP-Server her, um seine Tools zu verwenden.
- Wie Sie interne Daten durch die Integration externer Tools wie der Wikipedia API erweitern können.
- So stellen Sie einen KI-Agenten als serverlosen Container in Cloud Run mit dem Befehl „adk deploy“ bereit.
12. Umfrage
Ausgabe:
