1. Hinweis
Willkommen zum zweiten Teil der Reihe „KI-Agenten mit dem ADK erstellen“. In diesem praxisorientierten Codelab statten Sie einen einfachen KI-Agenten mit einer Vielzahl von Tools aus.
Diese Anleitung bietet zwei Möglichkeiten für den Einstieg: eine für Nutzer, die mit dem Codelab „KI-Agenten mit dem ADK erstellen: Grundlagen“ fortfahren, und eine für Nutzer, die neu beginnen. In beiden Fällen erhalten Sie den erforderlichen Basiscode für den Agenten.
Am Ende dieses Codelabs haben Sie Ihren persönlichen Assistenten mit Tools für verschiedene Zwecke ausgestattet. Damit sind Sie einen Schritt näher daran, ihn in den nachfolgenden Teilen dieser Reihe zu einem anspruchsvollen Multi-Agenten-System (MAS) zu erweitern.
Sie können dieses Codelab auch über diese gekürzte URL aufrufen: goo.gle/adk-using-tools.
Voraussetzungen
- Grundkenntnisse der Konzepte der generativen KI
- Grundlegende Kenntnisse der Programmierung mit Python
- Abschluss des Codelabs „KI-Agenten mit dem ADK erstellen: Grundlagen“ oder eines ähnlichen Codelabs
Lerninhalte
- Erstellen Sie benutzerdefinierte Python-Funktionen als Tools, um Ihrem Agenten neue Fähigkeiten zu verleihen.
- Verbinden Sie Ihren Agenten mit Echtzeitinformationen mithilfe integrierter Tools wie der Google Suche.
- Strukturieren Sie einen Agenten mit mehreren Tools, indem Sie spezialisierte Unteragenten für komplexe Aufgaben erstellen.
- Integrieren Sie Tools aus gängigen KI-Frameworks wie LangChain, um die Fähigkeiten schnell zu erweitern.
Voraussetzungen
- Ein funktionierender Computer und eine zuverlässige WLAN-Verbindung
- Ein Browser wie Chrome für den Zugriff auf die Google Cloud Console
- Neugier und Lernbereitschaft
2. Einführung
Ein mit dem ADK erstellter Basisagent verfügt über ein leistungsstarkes LLM-Gehirn, hat aber auch Einschränkungen: Er kann nicht auf Informationen zugreifen, die nach dem Datum seines Trainings erstellt wurden, und er kann nicht mit externen Diensten interagieren. Er ist wie ein brillanter, belesener Assistent, der in einer Bibliothek ohne Telefon oder Internet eingeschlossen ist. Damit ein Agent wirklich nützlich ist, müssen wir ihm Tools zur Verfügung stellen.
Tools ermöglichen dem KI-Assistenten den Zugriff auf die Außenwelt: einen Taschenrechner, einen Webbrowser oder den Zugriff auf eine bestimmte Unternehmensdatenbank. Im ADK ist ein Tool ein modulares Code-Snippet, mit dem der Agent bestimmte Aktionen ausführen kann, z. B. Echtzeitdaten abrufen oder eine externe API aufrufen. Durch die Verwendung von Tools werden seine Fähigkeiten weit über die einfache Konversation hinaus erweitert.
Das ADK bietet drei Kategorien von Tools:
- Funktionstools:Benutzerdefinierte Tools, die Sie für die spezifischen Anforderungen Ihrer Anwendung entwickeln, z. B. vordefinierte Funktionen und Agenten.
- Integrierte Tools:Sofort einsatzbereite Tools, die vom Framework für häufige Vorgänge bereitgestellt werden, z. B. die Google Suche und die Codeausführung.
- Drittanbietertools: Beliebte externe Bibliotheken wie Serper und Tools von LangChain und CrewAI.
Weitere Informationen zur Verwendung von Tools mit ADK-Agenten finden Sie in der offiziellen Dokumentation. In diesem Codelab fügen wir Tools hinzu, um unseren einfachen Agenten in einen leistungsstarken persönlichen Reiseassistenten zu verwandeln. Fangen wir an!
3. Erste Schritte: Ihr Basisagent
Bevor Sie einen Agenten mit Tools ausstatten können, benötigen Sie einen Basisagenten. Wählen Sie den Pfad aus, der am besten zu Ihrem Fortschritt passt.
Pfad A: Fortfahren mit dem Codelab „Grundlagen“
Wenn Sie gerade das Codelab „KI-Agenten mit dem ADK erstellen: Grundlagen“ abgeschlossen haben, sind Sie bereit. Sie können im vorhandenen Projektverzeichnis ai-agents-adk weiterarbeiten.
Pfad B: Neu beginnen
Wenn Sie direkt mit diesem Codelab beginnen, führen Sie diese vier Schritte aus, um Ihre Umgebung einzurichten und den erforderlichen Starter-Agenten zu erstellen.
- Google Cloud-Dienste konfigurieren
- Virtuelle Python-Umgebung erstellen
- Agent erstellen
- Agent in der Entwicklungsoberfläche ausführen
Nachdem Sie die Schritte ausgeführt haben, können Sie mit dem Lernen beginnen.
4. Benutzerdefiniertes Tool für den Währungsumtausch erstellen
An diesem Punkt sollten Sie bereits wissen, wie Sie mit dem ADK einen einfachen KI-Agenten erstellen und ihn in der Entwicklungsoberfläche ausführen.
Angenommen, Sie bereiten sich auf eine Reise nach Japan im nächsten Monat vor und müssen den aktuellen Wechselkurs prüfen. Fragen Sie den Agenten „Wie ist der Wechselkurs von Singapur-Dollar zu japanischen Yen?“

Sie werden feststellen, dass der Agent keine Echtzeit-Wechselkurse abrufen kann. Das liegt daran, dass der Agent derzeit keinen Internetzugang und keine Verbindung zu externen Systemen hat. Auch wenn der Agent einen Wert zurückgibt, ist es schwer, diesem Wert zu vertrauen, da es sich wahrscheinlich um eine Halluzination handelt.
Um dieses Problem zu beheben, implementieren wir eine Python-Funktion, um Wechselkurse über eine REST API abzurufen, und integrieren sie als Funktionstool für den Agenten.
Beenden Sie den laufenden Agentenprozess mit der Tastenkombination Strg + C im Terminalfenster.
Datei custom_functions.py erstellen
Führen Sie diesen Befehl im Terminal aus, um im Ordner personal_assistant eine Python-Datei mit dem Namen custom_functions.py zu erstellen und sie auch im Code-Editor zu öffnen.
cloudshell edit personal_assistant/custom_functions.py
So sollte Ihre Ordnerstruktur jetzt aussehen:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
└── custom_functions.py
Diese Datei custom_functions.py enthält die Python-Funktion, die für das Abrufen von Wechselkursdaten aus einer externen API zuständig ist. Kopieren Sie den folgenden Code in die Datei:
import requests
# define a function to get exchange rate
def get_fx_rate(base: str, target: str):
"""
Fetches the current exchange rate between two currencies.
Args:
base: The base currency (e.g., "SGD").
target: The target currency (e.g., "JPY").
Returns:
The exchange rate information as a json response,
or None if the rate could not be fetched.
"""
base_url = "https://hexarate.paikama.co/api/rates/latest"
api_url = f"{base_url}/{base}?target={target}"
response = requests.get(api_url)
if response.status_code == 200:
return response.json()
Bearbeiten Sie nun die Datei agent.py: Importieren Sie die Funktion get_fx_rate und weisen Sie sie als FunctionTool zu.
Datei agent.py aktualisieren
Kopieren Sie diesen Codeblock und ersetzen Sie den vorhandenen Inhalt der Datei agent.py:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from .custom_functions import get_fx_rate
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
instruction='Answer user questions to the best of your knowledge',
tools=[FunctionTool(get_fx_rate)]
)
Starten Sie den Agenten nach den Änderungen wieder, indem Sie Folgendes eingeben:
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Wenn der Agent aktiv ist, stellen Sie noch einmal dieselbe Frage: „Wie ist der Wechselkurs von Singapur-Dollar zu japanischen Yen?“
Dieses Mal sollten Sie den tatsächlichen Wechselkurs sehen, der vom Tool get_fx_rate angegeben wird.

Sie können beliebig viele Fragen zum Währungsumtausch stellen.
5. Integrierte Google Suche verwenden
Nachdem der Agent nun Wechselkurse liefern kann, besteht die nächste Aufgabe darin, die Wettervorhersage für den nächsten Monat abzurufen. Stellen Sie dem Agenten diese Frage: „Wie ist die Wettervorhersage für Tokio, Japan, für den nächsten Monat?“

Wie erwartet, erfordert die Wettervorhersage Echtzeitinformationen, die unser Agent nicht hat. Wir könnten zwar für jeden Anwendungsfall, der Echtzeitdaten erfordert, neue Python-Funktionen codieren, aber durch das Hinzufügen immer weiterer benutzerdefinierter Tools wird der Agent schnell zu komplex und schwer zu verwalten.
Glücklicherweise bietet das Agent Development Kit (ADK) eine Reihe von integrierten Tools, darunter die Google Suche, die sofort einsatzbereit sind und die Interaktion unseres Agenten mit der Außenwelt vereinfachen.
Um den Agenten mit dem Tool „Google Suche“ auszustatten, müssen Sie ein Multi-Agenten-Muster implementieren. Zuerst erstellen Sie einen spezialisierten Agenten, dessen einzige Aufgabe darin besteht, Google-Suchanfragen auszuführen. Dann weisen Sie diesen neuen Google-Suchagenten unserem Hauptagenten personal_assistant als Tool zu. Gehen Sie so vor:
Datei custom_agents.py erstellen
Führen Sie diesen Befehl im Terminal aus, um im Ordner personal_assistant eine Python-Datei mit dem Namen custom_agents.py zu erstellen und sie im Code-Editor zu öffnen:
cloudshell edit personal_assistant/custom_agents.py
So sollte Ihre Ordnerstruktur jetzt aussehen:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
└── custom_agents.py
Diese Datei custom_agents.py enthält den Code für den spezialisierten google_search_agent. Kopieren Sie den folgenden Code in die Datei custom_agents.py:
from google.adk.agents import Agent
from google.adk.tools import google_search
# Create an agent with google search tool as a search specialist
google_search_agent = Agent(
model='gemini-2.5-flash',
name='google_search_agent',
description='A search agent that uses google search to get latest information about current events, weather, or business hours.',
instruction='Use google search to answer user questions about real-time, logistical information.',
tools=[google_search],
)
Nachdem die Datei erstellt wurde, aktualisieren Sie die Datei agent.py wie unten gezeigt.
Datei agent.py aktualisieren
Kopieren Sie diesen Codeblock und ersetzen Sie den vorhandenen Inhalt der Datei agent.py:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
]
)
Sehen wir uns das leistungsstarke neue Muster im Code an:
- Ein neuer spezialisierter Agent: Wir haben einen völlig neuen Agenten definiert:
google_search_agent. Beachten Sie die spezifische Beschreibung und dass sein einziges Toolgoogle_searchist. Er ist ein Suchspezialist. agent_tool.AgentTool: Dies ist ein spezieller Wrapper aus dem ADK. Er nimmt einen ganzen Agenten (unseren google_search_agent) und verpackt ihn so, dass er wie ein Standardtool aussieht und sich auch so verhält.- Ein intelligenterer **
root_agent**: Unserroot_agenthat jetzt ein neues Tool:AgentTool(agent=google_search_agent). Er weiß nicht, wie man im Web sucht, aber er weiß, dass er ein Tool hat, an das er Suchaufgaben delegieren kann.
Das Anweisungsfeld ist aus root_agent entfernt. Seine Anweisungen werden jetzt implizit durch die verfügbaren Tools definiert.
Der root_agent ist zu einem Orchestrator oder Router geworden, dessen Hauptaufgabe darin besteht, die Anfrage eines Nutzers zu verstehen und sie an das richtige Tool weiterzuleiten, entweder an die Funktion get_fx_rate oder an den google_search_agent. Dieses dezentrale Design ist der Schlüssel zur Erstellung komplexer, wartungsfreundlicher Agentensysteme.
Geben Sie nun diesen Befehl im Terminal ein, um die Instanz zu starten:
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Wenn der Agent ausgeführt wird, stellen Sie ihm noch einmal diese Frage: „Wie ist die Wettervorhersage für Tokio, Japan, für den nächsten Monat?“

Der Agent verwendet jetzt google_search_agent, um die neuesten Informationen zu erhalten.
Sie können auch eine Frage zum aktuellen Wechselkurs stellen. Der Agent sollte nun in der Lage sein, das richtige Tool für die jeweilige Frage zu verwenden.

Sie können dem Agenten auch andere Fragen stellen, die Echtzeitinformationen erfordern, und beobachten, wie er die Anfragen mit den ihm zur Verfügung stehenden Tools verarbeitet.
6. Wikipedia-Tool von LangChain nutzen
Unser Agent entwickelt sich zu einem großartigen Reiseassistenten. Mit dem Tool get_fx_rate kann er den Währungsumtausch abwickeln und mit dem Tool google_search_agent die Logistik verwalten. Bei einer großartigen Reise geht es aber nicht nur um die Logistik, sondern auch darum, die Kultur und Geschichte des Reiseziels zu verstehen.
Der google_search_agent kann zwar kulturelle und historische Fakten finden, aber Informationen aus einer speziellen Quelle wie Wikipedia sind oft strukturierter und zuverlässiger.
Glücklicherweise ist das ADK sehr erweiterbar, sodass Sie Tools aus anderen KI-Agenten-Frameworks wie CrewAI und LangChain nahtlos integrieren können. Diese Interoperabilität ist entscheidend, da sie die Entwicklungszeit verkürzt und die Wiederverwendung vorhandener Tools ermöglicht. Für diesen Anwendungsfall nutzen wir die Wikipedia-Tools von LangChain.
Beenden Sie zuerst den laufenden Agentenprozess (Strg + C) und installieren Sie zusätzliche Bibliotheken in der aktuellen virtuellen Python-Umgebung, indem Sie die folgenden Befehle im Terminal eingeben.
uv pip install langchain-community wikipedia
Datei third_party_tools.py erstellen
Mit dem folgenden Befehl wird im Ordner personal_assistant eine Python-Datei mit dem Namen third_party_tools.py erstellt und im Cloud-Editor geöffnet:
cloudshell edit personal_assistant/third_party_tools.py
So sollte Ihre Ordnerstruktur jetzt aussehen:
ai-agents-adk/
└── personal_assistant/
├── .env
├── __init__.py
├── agent.py
├── custom_functions.py
├── custom_agents.py
└── third_party_tools.py
Diese Datei enthält die Implementierung für das Wikipedia-Tool von LangChain. Kopieren Sie den folgenden Code in die Datei third_party_tools.py****:
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
# Configure the Wikipedia LangChain tool to act as our cultural guide
langchain_wikipedia_tool = WikipediaQueryRun(
api_wrapper=WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=3000)
)
# Give the tool a more specific description for our agent
langchain_wikipedia_tool.description = (
"Provides deep historical and cultural information on landmarks, concepts, and places."
"Use this for 'tell me about' or 'what is the history of' type questions."
)
Datei agent.py aktualisieren
Aktualisieren Sie nun die Datei agent.py mit dem folgenden Inhalt:
from google.adk.agents import Agent
from google.adk.tools import FunctionTool
from google.adk.tools.agent_tool import AgentTool
from google.adk.tools.langchain_tool import LangchainTool
from .custom_functions import get_fx_rate
from .custom_agents import google_search_agent
from .third_party_tools import langchain_wikipedia_tool
root_agent = Agent(
model='gemini-2.5-flash',
name='root_agent',
description='A helpful assistant for user questions.',
tools=[
FunctionTool(get_fx_rate),
AgentTool(agent=google_search_agent),
LangchainTool(langchain_wikipedia_tool),
]
)
Geben Sie nun diesen Befehl im Terminal ein, um die Instanz zu starten:
adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
Wenn der Agent bereit ist, stellen Sie ihm diese Frage: „Erzähl mir etwas über die Geschichte von Kyoto“.

Der Agent erkennt dies korrekt als historische Anfrage und verwendet sein neues Wikipedia -Tool. Durch die Integration eines Drittanbietertools und die Zuweisung einer bestimmten Rolle haben Sie Ihren Agenten deutlich intelligenter und nützlicher für die Reiseplanung gemacht.
Um genau zu sehen, wie der Agent diese Entscheidung getroffen hat, können Sie den Ereignis-Inspector in der UI von adk web verwenden. Klicken Sie auf den Tab „Ereignisse“ und dann auf das letzte Ereignis functionCall.

Der Inspector zeigt eine Liste aller verfügbaren Tools und hebt den tool_code für das Tool hervor, das vom Agenten ausgeführt wurde.

7. Bereinigen (optional)
Da in diesem Codelab keine Produkte mit langer Laufzeit verwendet werden, reicht es aus, die aktiven Agentensitzungen (z.B. die adk web-Instanz im Terminal) durch Drücken von Strg + C im Terminal zu beenden.
Agentenprojektordner und -dateien löschen
Wenn Sie nur den Code aus Ihrer Cloud Shell-Umgebung entfernen möchten, verwenden Sie die folgenden Befehle:
cd ~
rm -rf ai-agents-adk
Vertex AI API deaktivieren
Führen Sie diesen Befehl aus, um die zuvor aktivierte Vertex AI API zu deaktivieren:
gcloud services disable aiplatform.googleapis.com
Gesamtes Google Cloud-Projekt herunterfahren
Wenn Sie Ihr Google Cloud-Projekt vollständig herunterfahren möchten, lesen Sie die offizielle Anleitung.
8. Fazit
Glückwunsch! Sie haben den persönlichen Assistenten erfolgreich mit benutzerdefinierten Funktionen und Echtzeit-Zugriff auf die Google Suche ausgestattet. Lesen Sie diese offizielle Dokumentation zur Verwendung von Tools mit dem Google ADK.
Vor allem haben Sie das grundlegende Architekturmuster für die Erstellung leistungsstarker Agenten kennengelernt: die Verwendung spezialisierter Agenten als Tools. Durch die Erstellung eines dedizierten google_search_agent und die Übergabe an Ihren root_agent haben Sie den ersten Schritt von der Erstellung eines einzelnen Agenten zur Orchestrierung eines einfachen, aber leistungsstarken Multi-Agenten-Systems gemacht.
Sie sind jetzt bestens auf das nächste Codelab (bald verfügbar) in der Reihe vorbereitet, in dem wir uns genauer mit der Orchestrierung mehrerer Agenten und Workflows befassen. Bis dann!