ADK-Crashkurs – Vom Anfänger zum Experten

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.

Kurs-Roadmap

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.

ein neues GCP-Konto erstellen

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

Rechnungskonto mit GCP-Konto verknüpfen

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“. 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. Neues Projekt auswählen
  • 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

roadmap1

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 🧞.🌟

Der Agent-Roboter liest.

  • 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 🛠️

roadmap2

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

ADK-Tools

  • 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 🧑‍🍳

roadmap3

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 🧑‍🍳.🌟

Fahrtdaten

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.
  • 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, die food_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 🧠

roadmap4

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 🗺️. 🌟

Arbeitsspeicher des Agents

  • 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 🚏

roadmap5

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.

Router-Agent

  • 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 ⛓️

roadmap6

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

Sequenzieller Agent

  • Agent Refactoring:In der ersten Codezelle dieses Abschnitts sehen Sie die wichtigsten Änderungen an foodie_agent und transportation_agent:
    • foodie_agent hat jetzt eine output_key="destination". Damit wird dem ADK mitgeteilt, dass die endgültige Antwort in einer Variablen namens destination 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 komplexe if/elif-Logik ist weg. Die find_and_navigate_agent wird jetzt als einzelne, aufrufbare Einheit behandelt und das ADK übernimmt die internen sequenziellen Schritte automatisch.

9. Sitzung 7: LoopAgent 🔁

roadmap7

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.

Loop-Agent

➡️ 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 und refiner_agent.
  • Schleifendefinition: refinement_loop wird als LoopAgent definiert, der critic_agent, refiner_agent und sets max_iterations=3 orchestriert.
  • Die Exit-Bedingung: Die Schleife wird beendet, wenn critic_agent den Plan genehmigt. Daraufhin ruft refiner_agent das benutzerdefinierte Tool exit_loop auf.

10. Session 8: ParallelAgent ⚡️

roadmap8

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

Parallel Agent

  • 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

roadmap9

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

  1. Öffnen Sie Ihren Browser und rufen Sie die im Terminal angezeigte URL auf (in der Regel http://localhost:8000).
  2. Wählen Sie links oben im Drop-down-Menü agent aus.
  3. Chatten Sie mit dem KI-Assistenten für die Tagesausflugsplanung.

Es wird ein Gespräch wie dieses angezeigt: Beispiel für die ADK Web-Benutzeroberfläche

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 von python.
  • 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

roadmap9

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

  1. Öffnen Sie Ihren Browser und rufen Sie die im Terminal angezeigte URL auf (in der Regel http://localhost:8000).
  2. Wählen Sie links oben im Drop-down-Menü agent aus.
  3. 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: Beispiel für die ADK Web-Benutzeroberfläche

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.