1. Lerninhalte
Willkommen bei der ADK Master Class – Ihr Einstieg in Multi-Agent-Systeme
Sie stehen kurz davor, in die spannende Welt der KI-Agenten einzutauchen. Vergessen Sie einfache Chatbots, die nur Fragen beantworten. Wir nutzen Agent Development Kit (ADK)
, um hochentwickelte, autonome Systeme zu entwickeln, die in der Lage sind, komplexe Aufgaben zu bewältigen, indem sie Schlussfolgerungen ziehen, Pläne erstellen und Tools verwenden.
Am Ende dieser Anleitung können Sie:
- Ersten KI-Agenten erstellen: Erstellen Sie einen voll funktionsfähigen Agenten, der die Bedürfnisse eines Nutzers verstehen, Tools wie die Google Suche verwenden und detaillierte, hilfreiche Antworten generieren kann.
- Benutzerdefinierte Tools optimal nutzen: Sie können das volle Potenzial von Agents nutzen, indem Sie sie mit Ihren eigenen benutzerdefinierten Funktionen und APIs verbinden. Sie bringen Ihrem Agent bei, Echtzeitdaten wie aktuelle Wettervorhersagen abzurufen.
- Multi-Agent-Systeme erstellen: Lernen Sie das Muster „Agent-as-a-Tool“ kennen, ein revolutionäres Konzept, bei dem Agenten Aufgaben an andere spezialisierte Agenten delegieren und so ein Team von KI-Experten bilden, die zusammenarbeiten.
- Komplexe Workflows orchestrieren: Gehen Sie über die einfache Delegierung hinaus und beherrschen Sie erweiterte Muster wie Router, sequenzielle Ketten, Schleifen und parallele Ausführung, um robuste, effiziente und intelligente Anwendungen zu erstellen, die fast alle Anfragen verarbeiten können.
- Agents mit Gedächtnis ausstatten: Sie erfahren, wie wichtig das Gesprächsgedächtnis ist, damit Ihre Agents Folgefragen beantworten, aus Feedback lernen und mehrstufige Aufgaben nahtlos erledigen können.
Los gehts! 🚀
2. GCP- und Gemini API-Schlüssel einrichten
GCP-Projekt und Gemini API-Schlüssel einrichten
Für unsere KI-Agents benötigen wir zwei Dinge: ein Google Cloud-Projekt als Grundlage und einen Gemini API-Schlüssel für den Zugriff auf die leistungsstarken Modelle von Google.
Schritt 1: Rechnungskonto aktivieren
- Sie müssen Ihr Rechnungskonto mit einem Guthaben von 5 $ in Anspruch nehmen, da Sie es für die Bereitstellung benötigen. Melden Sie sich in Ihrem Gmail-Konto an.
Schritt 2: Neues GCP-Projekt erstellen
- Rufen Sie die Google Cloud Console auf und erstellen Sie ein neues Projekt.
- Rufen Sie die Google Cloud Console auf und erstellen Sie ein neues Projekt.
- Öffnen Sie den linken Bereich, klicken Sie auf
Billing
und prüfen Sie, ob das Rechnungskonto mit diesem GCP-Konto verknüpft ist.
Wenn Sie diese Seite sehen, prüfen Sie das manage billing account
, wählen Sie das Google Cloud-Probeabo aus und verknüpfen Sie es.
Schritt 3: Gemini API-Schlüssel generieren
Bevor Sie den Schlüssel sichern können, müssen Sie einen haben.
- Rufen Sie Google AI Studio auf : https://aistudio.google.com/.
- Melden Sie sich mit Ihrem Gmail-Konto an.
- Klicken Sie auf die Schaltfläche API-Schlüssel abrufen, die sich normalerweise im linken Navigationsbereich oder oben rechts befindet.
- Klicken Sie im Dialogfeld API-Schlüssel auf „API-Schlüssel in neuem Projekt erstellen“.
- Wählen Sie das neue Projekt aus, das Sie erstellt haben und für das ein Rechnungskonto eingerichtet ist.
- Ein neuer API-Schlüssel wird für Sie generiert. Kopieren Sie diesen Schlüssel sofort und speichern Sie ihn vorübergehend an einem sicheren Ort, z. B. in einem Passwortmanager oder in einer sicheren Notiz. Diesen Wert verwenden Sie in den nächsten Schritten.
3. Sitzung 1: Erster Agent mit Runner
Beginnen wir mit den Grundlagen. Hier erstellen wir unseren ersten einfachen Agenten, den day_trip_agent
. Dieser Agent soll einen Reiseplan für einen Tagesausflug auf Grundlage der Anfrage eines Nutzers erstellen, einschließlich Budgetüberlegungen. In diesem Beispiel werden die drei Kernkomponenten jeder Agent-Interaktion im ADK vorgestellt:
- Agent: Das Herzstück der Operation. Sie wird durch ihre Anweisungen (ihre Persönlichkeit und ihr Ziel), das verwendete KI-Modell (z. B. Gemini) und die Tools definiert, auf die sie zugreifen kann.
- Sitzung: Das Gedächtnis der Unterhaltung. Darin wird der Verlauf der Interaktionen (Nutzernachrichten und Agentenantworten) gespeichert, um einen kontinuierlichen Dialog zu ermöglichen.
- Runner: Die Engine, die die Aufgabe ausführt. Sie nimmt den Agent und die Sitzung entgegen, verarbeitet die neue Nutzeranfrage und orchestriert die Schritte zum Generieren einer Antwort.
➡️ Wo finde ich das im Notebook?
👉 Das entspricht den Zellen unter Teil 1: Ihr erster Agent – Der Tagesausflug-Genie 🧞.🌟
- Agent-Definition: Suchen Sie nach der Funktion
create_day_trip_agent()
. Hier wird der Agent definiert. Achten Sie auf den detaillierten Anweisungsstring. Das ist der Prompt, der dem Agent mitteilt, wie er sich verhalten soll. Außerdem erhält Bard sein erstes Tool: die Google Suche. - Hilfsfunktion: Hier wird die Hilfsfunktion
run_agent_query()
definiert. Wir verwenden dieses Tool im gesamten Notebook, um das Ausführen von Abfragen zu vereinfachen. - Testlauf: Die Funktion
run_day_trip_genie()
simuliert einen Nutzer, der nach einem „günstigen“ und „entspannten“ Tagesausflug fragt. Der KI-Agent verwendet seine Anweisungen und das Google Suche-Tool, um geeignete Orte zu finden und eine Reiseroute im Markdown-Format zu erstellen.
➡️ Aktion: Untersuchen Sie den Anleitungsprompt für day_trip_agent
. Sehen Sie, wie sich die Anfrage nach einer „günstigen“ Reise in der Testanfrage direkt auf die Richtlinie des Agenten bezieht, „Budget-Aware“ zu sein.
4. Sitzung 2: Benutzerdefinierte Tools 🛠️
Die Google Suche ist zwar leistungsstark, das wahre Potenzial von KI-Agents wird jedoch erst ausgeschöpft, wenn Sie sie mit Ihren eigenen Datenquellen, APIs oder benutzerdefinierter Logik verbinden. In diesem Abschnitt erstellen wir ein benutzerdefiniertes Tool aus einer einfachen Python-Funktion.
Der wichtigste Teil eines Funktionstools ist sein Docstring. Das ADK parst den Docstring automatisch, um zu verstehen, was das Tool macht, welche Parameter es akzeptiert (Args) und was es zurückgibt (Returns). Das Large Language Model (LLM) liest diese Beschreibung, um zu entscheiden, wann und wie das Tool verwendet werden soll.
➡️ Wo finde ich das im Notebook?
👉 Dies entspricht den Zellen unter 2.1 Das einfache FunctionTool: Echtzeit-Wetter-API aufrufen. 🌟
- Tool-Definition: Die
get_live_weather_forecast(location: str)
-Funktion ist das Herzstück unseres benutzerdefinierten Tools. Es nimmt einen Städtenamen entgegen, ruft die öffentliche National Weather Service API auf und gibt ein Dictionary mit der Temperatur und der Vorhersage zurück. - Agent-Definition: Der weather_agent wird erstellt und mit unserem neuen Tool ausgestattet, indem
tools=[get_live_weather_forecast]
bei der Initialisierung übergeben wird. In den Anweisungen für den KI-Agenten wird explizit festgelegt, dass dieses Tool verwendet werden soll, bevor Outdoor-Aktivitäten vorgeschlagen werden. - Testlauf: Die Anfrage „Ich möchte in der Nähe von Lake Tahoe wandern gehen. Wie ist das Wetter?“ löst direkt die Verwendung des
get_live_weather_forecast
-Tools durch den Agent aus, da dies in der Anleitung erforderlich ist.
➡️ Aktion: Lesen Sie den Docstring für die Funktion get_live_weather_forecast
und die Anleitung für weather_agent
. Beachten Sie die direkte Beziehung zwischen ihnen.
5. Sitzung 3: Agent als Tool 🧑🍳
Warum einen einzelnen, monolithischen Agenten erstellen, wenn Sie ein Team von Spezialisten erstellen können? Das Agent-as-a-Tool
-Muster ist eine leistungsstarke Methode zum Erstellen komplexer Systeme, in denen ein primärer Agent, der oft als Orchestrator oder Router bezeichnet wird, Aufgaben an andere, fokussiertere Agents delegiert.
Mit diesem Muster können Sie modulare, wiederverwendbare Agents erstellen. Sie können beispielsweise einen Agenten haben, der sich mit Datenbankabfragen auskennt, einen anderen, der sich mit kreativem Schreiben auskennt, und einen dritten, der als freundlicher Concierge fungiert. Die Aufgabe des Orchestrators besteht darin, die Anfrage des Nutzers zu verstehen und an den richtigen Spezialisten weiterzuleiten.
➡️ Wo finde ich das im Notebook?
👉 Dies entspricht den Zellen unter 2.2 Der Agent als Tool: Einen Spezialisten konsultieren 🧑🍳.🌟
In diesem Beispiel wird ein komplexes, mehrschichtiges Agentsystem erstellt:
- Die Spezialisten
- :
- food_critic_agent: Ein hochspezialisierter Agent, der nur Restaurantvorschläge macht.
- db_agent: Ein Mock-Agent, der vorgibt, eine Datenbank nach Hotelinformationen abzufragen.
- concierge_agent: Ein Agent auf mittlerer Ebene, der als höflicher Concierge fungiert. Wichtig ist, dass
food_critic_agent
als eigenes Tool verfügbar ist.
- Orchestrator (
trip_data_concierge_agent
): Dies ist der Agent der obersten Ebene, mit dem der Nutzer interagiert. Die Anleitung macht es zu einem „Master-Reiseplaner“ und es erhält zwei Tools, mit denen die anderen Agents aufgerufen werden:- call_db_agent: Eine Funktion, die den
db_agent
aufruft. - call_concierge_agent: Eine Funktion, die
concierge_agent
aufruft.
- call_db_agent: Eine Funktion, die den
- Der Ablauf: Der Testlauf in
run_trip_data_concierge()
demonstriert die vollständige Delegierungskette.- Ein Nutzer fragt den Orchestrator nach einem Hotel und einem nahe gelegenen Restaurant.
- Der Orchestrator wird angewiesen, zuerst das Tool
call_db_agent
zu verwenden, um Hoteldaten abzurufen. - Der Orchestrator verwendet dann das
call_concierge_agent
-Tool, um eine Empfehlung zu erhalten. - Wenn die
concierge_agent
die Anfrage erhält, verwendet sie ihr eigenes Tool, diefood_critic_agent
, um eine Restaurantidee zu erhalten.
Die Antwort des Restaurantkritikers wird an den Concierge zurückgegeben, der sie höflich formatiert und an den Orchestrator zurücksendet, der sie schließlich dem Nutzer präsentiert.
➡️ Aktion: Verfolgen Sie den Ausführungsablauf im Testlauf unter run_trip_data_concierge()
. Beachten Sie, wie die TOOL CALLED
-Ausgaben die Delegationskette vom Orchestrator bis zu den Spezialisten zeigen. Dies ist eine sequenzielle Befehlskette.
6. Session 4: Agent Memory 🧠
Ein wirklich intelligenter Kundenservicemitarbeiter muss mehr können, als nur auf einmalige Anfragen zu reagieren. Sie muss sich an die Unterhaltung erinnern, den Kontext verstehen und auf Feedback reagieren. Dies wird durch eine ordnungsgemäße Sitzungsverwaltung erreicht. Ein „Loop-Agent“ ist ein Agent, der sich in einer kontinuierlichen Konversationsschleife befindet, die durch seinen Speicher angetrieben wird.
Wenn Sie dasselbe Sitzungsobjekt für mehrere aufeinanderfolgende Anfragen verwenden, kann der Agent den gesamten Verlauf der Unterhaltung sehen. So kann es Folgefragen beantworten, sich auf Grundlage von Feedback selbst korrigieren und Aufgaben mit mehreren Schritten planen.
➡️ Wo finde ich das im Notebook?
👉 Das entspricht den Zellen unter Teil 3: Agent mit Memory – Der Adaptive Planner 🗺️. 🌟
- Agent-Definition: Die Funktion
create_multi_day_trip_agent()
definiert einen Agenten, der eine Reise schrittweise plant. Die Anweisungen betonen, dass der Kontext berücksichtigt, Feedback verarbeitet und der Tag einzeln geplant werden soll.
Szenario 3a: Agent MIT Memory (✅)
Dieser Test wird in der Funktion run_adaptive_memory_demonstration()
ausgeführt.
- Es wird ein einzelnes
trip_session
erstellt und für drei aufeinanderfolgende Züge wiederverwendet. - 1. Runde: Der Nutzer initiiert einen 2‑Tages-Reiseplan.
- 2. Aufforderung: Der Nutzer gibt Feedback („Ich bin kein großer Fan von Schlössern“). Da der Kundenservicemitarbeiter das Gedächtnis von Runde 1 hat, weiß er, welcher Teil des Plans geändert werden muss, und kann eine Alternative anbieten.
- 3. Zug: Der Nutzer bestätigt die Änderung und fragt nach dem nächsten Schritt. Der Agent erinnert sich an alles und plant Tag 2.
Szenario 3b: Agent OHNE Memory (❌)
Dieser Test wird in der Funktion run_memory_failure_demonstration()
ausgeführt.
Das zeigt, wie wichtig die Sitzungsverwaltung ist, da hier ein Fehler absichtlich gemacht wird. Für jede Anfrage wird eine neue Sitzung erstellt.
- Runde 1: Der Nutzer startet die Reise in session_one. Der Agent antwortet richtig.
- Turn 2: Der Nutzer bittet, Tag 2 zu planen, aber die Anfrage wird in einer brandneuen session_two gesendet. Da diese neue Sitzung keinen Verlauf hat, ist der Agent verwirrt. Es hat Amnesie! Es weiß nicht, welche Reise geplant wird.
Aktion: Vergleiche die Antworten des Kundenservicemitarbeiters in run_adaptive_memory_demonstration()
und run_memory_failure_demonstration()
. Das ist das wichtigste Konzept im Notebook: Für eine durchgängige Unterhaltung ist eine durchgängige Sitzung erforderlich.
7. Session 5: Der Router-Agent 🚏
Ein einzelner Kundenservicemitarbeiter kann nur eine begrenzte Anzahl von Anfragen bearbeiten. Für wirklich komplexe Nutzeranfragen benötigen wir ein Team von spezialisierten Kundenservicemitarbeitern. Woher wissen wir aber, welcher Agent für eine bestimmte Anfrage verwendet werden soll? Hier kommt der Router-Agent ins Spiel.
Der Router-Agent fungiert als „Master“-Agent oder Dispatcher. Seine einzige Aufgabe besteht darin, eine eingehende Nutzeranfrage zu analysieren und zu entscheiden, welcher spezialisierte Agent (oder Workflow von Agents) am besten dafür geeignet ist. Der Agent beantwortet die Anfrage nicht selbst, sondern leitet sie einfach an den richtigen Downstream-Agent weiter.
Eine Anfrage zu „bestes Sushi“ sollte beispielsweise an einen foodie_agent weitergeleitet werden, während eine Frage zu „Konzerte an diesem Wochenende“ von einem weekend_guide_agent
beantwortet werden sollte.
➡️ Wo finde ich das im Notebook?
👉 Dieses Konzept ist für das gesamte Notebook von zentraler Bedeutung. Es wird jedoch erst in Teil 1: Multi-Agent Mayhem – Sequenzielle Workflows 🧠→🤖→🤖 🌟 eingeführt.
- Agent-Definitionen: In der Codezelle werden mehrere Spezialisten-Agents (day_trip_agent, foodie_agent, transportation_agent) und vor allem der router_agent definiert. Achten Sie genau auf den Anweisungsprompt für den router_agent. Er wird explizit angewiesen, nur den Namen des besten Agent für den Job zurückzugeben.
- Ausführungslogik: Die Funktion „run_sequential_app“ zeigt, wie zuerst der Router-Agent aufgerufen wird, um eine Entscheidung (chosen_route) zu erhalten, und wie diese Entscheidung dann in einem
if/elif
-Block verwendet wird, um den entsprechenden Spezialisten-Agent auszuführen.
8. Sitzung 6: SequentialAgent ⛓️
Für einige Aufgaben sind mehrere Schritte in einer bestimmten Reihenfolge erforderlich. Zum Beispiel: „Suche das beste Sushi-Restaurant in Palo Alto und sage mir dann, wie ich dorthin komme.“ Das ist ein zweistufiger Prozess: Zuerst muss das Restaurant gefunden und dann eine Wegbeschreibung abgerufen werden.
Das ADK bietet mit dem SequentialAgent eine einfache und leistungsstarke Möglichkeit, dies zu verwalten. Dies ist ein spezieller Workflow-Agent, der eine Liste von untergeordneten Agents in einer vordefinierten Reihenfolge ausführt.
Der Zauber liegt im gemeinsamen Status. Die Ausgabe eines Agents in der Sequenz kann automatisch in einem gemeinsamen Status-Dictionary gespeichert und dann als Eingabe für den nächsten Agent verwendet werden. So ist kein komplexer manueller Code erforderlich, um Informationen zwischen den Schritten zu übergeben.
➡️ Wo finde ich das im Notebook?
👉 Das wird in Teil 2 (The ADK Way): Multi-Agent Mayhem with SequentialAgent 🧠→⛓️→🤖 behandelt. 🌟
- Agent Refactoring:In der ersten Codezelle dieses Abschnitts sehen Sie die wichtigsten Änderungen an
foodie_agent
undtransportation_agent
:foodie_agent
hat jetzt eineoutput_key="destination"
. Damit wird dem ADK mitgeteilt, dass die endgültige Antwort in einer Variablen namensdestination
im freigegebenen Status gespeichert werden soll.transportation_agent
enthält jetzt den Platzhalter{destination}
in seinem Anweisungsprompt. Das ADK fügt den Wert aus dem freigegebenen Status automatisch in diesen Platzhalter ein.
- Workflow definieren: Der
find_and_navigate_agent
wird als SequentialAgent definiert, wobei die sub_agents auf [foodie_agent
,transportation_agent
] festgelegt sind, sodass sie in genau dieser Reihenfolge ausgeführt werden. - Vereinfachte Ausführung: Sehen Sie sich die Funktion
run_sequential_app
in diesem Abschnitt an. Die komplexeif/elif
-Logik ist weg. Diefind_and_navigate_agent
wird jetzt als einzelne, aufrufbare Einheit behandelt und das ADK übernimmt die internen sequenziellen Schritte automatisch.
9. Sitzung 7: LoopAgent 🔁
Nicht alle Probleme lassen sich mit einer einfachen Lösung beheben. Manchmal müssen wir eine Lösung vorschlagen, sie kritisieren und verfeinern, bis sie einer bestimmten Einschränkung entspricht.
Dafür bietet das ADK die LoopAgent
. Dieser Workflow-Agent führt eine Reihe von Sub-Agents wiederholt aus, bis eine bestimmte Bedingung erfüllt ist. Das ist ideal für die Entwicklung von „perfektionistischen“ Agents, die ihre eigene Arbeit planen, kritisieren und verbessern können.
Das Diagramm zeigt, wie Planner Agent
zuerst einen Plan erstellt. Dann geben wir die LoopAgent
ein. Die Critic Agent
prüft den Plan. Wenn sie fehlerhaft ist, erstellt Refiner Agent
eine neue Version und der Vorgang wird wiederholt. Wenn der Plan gut ist, ruft Refiner Agent
das Tool exit_loop
auf und der endgültige, validierte Plan wird zurückgegeben.
➡️ Wo finde ich das im Notebook?
👉 Das wird im Artikel Iterative Ideen mit LoopAgent 🧠→🔁→🤖 beschrieben. 🌟
- Die Core Agents: Der Workflow verwendet
planner_agent
,critic_agent
undrefiner_agent
. - Schleifendefinition:
refinement_loop
wird als LoopAgent definiert, dercritic_agent
,refiner_agent
undsets max_iterations=3
orchestriert. - Die Exit-Bedingung: Die Schleife wird beendet, wenn
critic_agent
den Plan genehmigt. Daraufhin ruftrefiner_agent
das benutzerdefinierte Toolexit_loop
auf.
10. Session 8: ParallelAgent ⚡️
Effizienz ist entscheidend. Wenn ein Nutzer mehrere, nicht zusammenhängende Informationen gleichzeitig anfordert, wäre es langsam, diese Suchanfragen einzeln auszuführen.
Die Lösung ist ParallelAgent
. Dieser Workflow-Agent führt eine Liste von untergeordneten Agents gleichzeitig aus. Sobald alle parallelen Aufgaben abgeschlossen sind, können ihre Ergebnisse zusammengefasst und in einer einzigen, umfassenden Antwort zusammengeführt werden.
In diesem Diagramm ist zu sehen, wie ParallelAgent
eine einzelne Anfrage entgegennimmt und die Arbeit in drei parallele Pfade aufteilt. museum_finder
, concert_finder
und restaurant_finder
werden gleichzeitig ausgeführt. Sobald alle drei abgeschlossen sind, werden ihre individuellen Ergebnisse (im freigegebenen Status gespeichert) zusammengeführt und an den finalen Synthesis Agent übergeben, der sie zu einer Antwort kombiniert.
➡️ Wo finde ich das im Notebook?
👉 Dieser Workflow wird im Abschnitt Parallele Verarbeitung mit ParallelAgent 🧠→⚡️→🤖🤖🤖 beschrieben. 🌟
- Spezialisten-Agents: Es sind drei Spezialisten-Agents definiert, die jeweils einen eindeutigen „output_key“ haben (z.B. „museum_result“).
- Der parallele Workflow: Der „parallel_research_agent“ ist als „ParallelAgent“ definiert, wobei die drei Finder-Agents als „sub_agents“ aufgeführt sind.
- Syntheseschritt: Nach dem parallelen Schritt fasst ein abschließender „synthesis_agent“ alle Ergebnisse aus dem gemeinsamen Status mithilfe von Platzhaltern (
{museum_result}
,{concert_result}
usw.) in einer übersichtlichen Zusammenfassung zusammen.
11. Anhang: ADK Web – 🍎 Für Mac/Linux
In diesem Leitfaden erfahren Sie, wie Sie den ADK-KI-Agenten für die Tagesausflugsplanung auf Ihrem lokalen Computer einrichten und ausführen.
Vorbereitung
- Python 3.8 oder höher
- Python 3.9+: Installiert google-adk==1.5.0 (neueste Version mit allen Funktionen)
- Python 3.8: Installiert google-adk==0.3.0 (kompatible Version)
- Google AI Studio API-Schlüssel
- Internetverbindung
Schritt 1: Repository klonen
Öffnen Sie das Terminal und führen Sie Folgendes aus:
git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic
Schritt 2: Virtuelle Umgebung einrichten und Abhängigkeiten installieren
Option A: Automatische Einrichtung (empfohlen)
# Run the setup script
chmod +x setup_venv.sh
./setup_venv.sh
Option B: Manuelle Einrichtung
# Create virtual environment
python3 -m venv .adk_env
# Activate virtual environment
source .adk_env/bin/activate
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
Schritt 3: 🔥 WICHTIG – Umgebungsvariablen erstellen
⚠️ Diesen Schritt nicht überspringen! Erstellen Sie im Verzeichnis agent/
eine Datei .env
:
# Create the .env file
touch agent/.env
# Open it in your default text editor
open agent/.env
Fügen Sie der Datei die folgenden Zeilen hinzu:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here
🚨 WICHTIG: Ersetzen Sie your_actual_api_key_here
durch Ihren tatsächlichen API-Schlüssel.
Schritt 4: Virtuelle Umgebung aktivieren (falls noch nicht aktiv)
source .adk_env/bin/activate
Am Anfang der Terminal-Eingabeaufforderung sollte (.adk_env)
angezeigt werden.
Schritt 5: ADK-Weboberfläche ausführen
adk web
Schritt 6: Browser öffnen
- Öffnen Sie Ihren Browser und rufen Sie die im Terminal angezeigte URL auf (in der Regel
http://localhost:8000
). - Wählen Sie links oben im Drop-down-Menü
agent
aus. - Chatten Sie mit dem KI-Assistenten für die Tagesausflugsplanung.
Es wird ein Gespräch wie dieses angezeigt:
Umgebung deaktivieren
Wenn Sie die Arbeit am Projekt abgeschlossen haben:
deactivate
Dieser Befehl funktioniert auf Mac/Linux und Windows gleich. Das Präfix (.adk_env)
verschwindet aus dem Terminal-Prompt.
Fehlerbehebung auf dem Mac
- Python nicht gefunden: Verwenden Sie
python3
anstelle vonpython
. - Berechtigung verweigert: Führen Sie
chmod +x setup_venv.sh
aus, bevor Sie das Skript ausführen.
12. Anhang: ADK Web – 🪟 Für Windows-Nutzer
In diesem Leitfaden erfahren Sie, wie Sie den ADK-KI-Agenten für die Tagesausflugsplanung auf Ihrem lokalen Computer einrichten und ausführen.
Vorbereitung
- Python 3.8 oder höher
- Python 3.9+: Installiert google-adk==1.5.0 (neueste Version mit allen Funktionen)
- Python 3.8: Installiert google-adk==0.3.0 (kompatible Version)
- Google AI Studio API-Schlüssel
- Internetverbindung
Schritt 1: Repository klonen
Öffnen Sie die Eingabeaufforderung oder PowerShell und führen Sie Folgendes aus:
git clone https://github.com/cuppibla/ADK_Basic.git
cd ADK_Basic
Schritt 2: Virtuelle Umgebung einrichten und Abhängigkeiten installieren
Option A: Automatische Einrichtung (empfohlen)
# Run the setup script in Command Prompt
setup_venv.bat
Option B: Manuelle Einrichtung
Für die Eingabeaufforderung:
# Create virtual environment
python -m venv .adk_env
# Activate virtual environment
.adk_env\Scripts\activate
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
Für PowerShell:
# Create virtual environment
python -m venv .adk_env
# Activate virtual environment
.adk_env\Scripts\Activate.ps1
# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt
Schritt 3: 🔥 WICHTIG – Umgebungsvariablen erstellen
⚠️ Diesen Schritt nicht überspringen! Erstellen Sie im Verzeichnis agent/
eine Datei .env
:
# Create the .env file
type nul > agent\.env
# Open it in Notepad
notepad agent\.env
Fügen Sie der Datei die folgenden Zeilen hinzu:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=your_actual_api_key_here
🚨 WICHTIG: Ersetzen Sie your_actual_api_key_here
durch Ihren tatsächlichen API-Schlüssel.
Schritt 4: Virtuelle Umgebung aktivieren (falls noch nicht aktiv)
Eingabeaufforderung:
.adk_env\Scripts\activate
PowerShell:
.adk_env\Scripts\Activate.ps1
Am Anfang Ihres Prompts sollte (.adk_env)
angezeigt werden.
Schritt 5: ADK-Weboberfläche ausführen
adk web
Schritt 6: Browser öffnen
- Öffnen Sie Ihren Browser und rufen Sie die im Terminal angezeigte URL auf (in der Regel
http://localhost:8000
). - Wählen Sie links oben im Drop-down-Menü
agent
aus. - Chatten Sie mit dem KI-Assistenten für die Tagesausflugsplanung.
Fehlerbehebung unter Windows
- PowerShell-Fehler bei der Ausführungsrichtlinie: Führen Sie
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
aus.
Es wird ein Gespräch wie dieses angezeigt:
Umgebung deaktivieren
Wenn Sie die Arbeit am Projekt abgeschlossen haben:
deactivate
Dieser Befehl funktioniert auf Mac/Linux und Windows gleich. Das Präfix (.adk_env)
verschwindet aus dem Terminal-Prompt.