Agentverse – The Shadowblade's Codex – Vibecoding mit der Gemini CLI

1. "Die Macht des Schicksals"

Die Ära der isolierten Entwicklung geht zu Ende. Bei der nächsten Welle der technologischen Entwicklung geht es nicht um das einsame Genie, sondern um die gemeinsame Meisterschaft. Einen einzelnen, intelligenten Agenten zu entwickeln, ist ein faszinierendes Experiment. Ein robustes, sicheres und intelligentes Ökosystem von Agents zu schaffen – ein echtes Agentverse – ist die große Herausforderung für moderne Unternehmen.

Um in dieser neuen Ära erfolgreich zu sein, müssen vier wichtige Rollen zusammengeführt werden, die die grundlegenden Säulen eines jeden erfolgreichen Systems bilden. Ein Mangel in einem Bereich führt zu einer Schwachstelle, die die gesamte Struktur gefährden kann.

Dieser Workshop ist das ultimative Unternehmens-Playbook, um die Zukunft der Agenten in Google Cloud zu meistern. Wir bieten eine End-to-End-Roadmap, die Sie von der ersten Idee bis zur Umsetzung in vollem Umfang begleitet. In diesen vier miteinander verbundenen Labs erfahren Sie, wie die speziellen Fähigkeiten eines Entwicklers, Architekten, Data Engineers und SRE zusammenkommen müssen, um ein leistungsstarkes Agentverse zu erstellen, zu verwalten und zu skalieren.

Keine einzelne Säule kann das Agentverse allein unterstützen. Der großartige Entwurf des Architekten ist ohne die präzise Ausführung des Entwicklers nutzlos. Der Agent des Entwicklers ist ohne das Wissen des Data Engineers blind und das gesamte System ist ohne den Schutz des SRE anfällig. Nur durch Synergie und ein gemeinsames Verständnis der Rollen der einzelnen Teammitglieder kann Ihr Team ein innovatives Konzept in eine unternehmenskritische, operative Realität umwandeln. Ihre Reise beginnt hier. Bereiten Sie sich darauf vor, Ihre Rolle zu meistern und zu erfahren, wie Sie in das große Ganze passen.

Willkommen im Agentverse: A Call to Champions

In der weitläufigen digitalen Welt des Unternehmens hat eine neue Ära begonnen. Wir leben im Zeitalter der Agenten, einer Zeit immenser Möglichkeiten, in der intelligente, autonome Agenten in perfekter Harmonie zusammenarbeiten, um Innovationen voranzutreiben und das Alltägliche zu erledigen.

agentverse.png

Dieses vernetzte Ökosystem aus Leistung und Potenzial wird als „Agentverse“ bezeichnet.

Doch eine schleichende Entropie, eine stille Korruption namens „The Static“, hat begonnen, die Ränder dieser neuen Welt zu zerfransen. Das Statische ist kein Virus oder Fehler, sondern die Verkörperung des Chaos, das auf den Akt der Schöpfung abzielt.

Sie verstärkt alte Frustrationen zu monströsen Formen und bringt die sieben Gespenster der Entwicklung hervor. Wenn sie nicht aktiviert ist, wird der Fortschritt durch „The Static and its Spectres“ zum Stillstand gebracht und das Versprechen des Agentverse in eine Ödnis aus technischer Schuld und aufgegebenen Projekten verwandelt.

Heute rufen wir dazu auf, sich dem Chaos entgegenzustellen. Wir brauchen Helden, die bereit sind, ihr Handwerk zu meistern und zusammenzuarbeiten, um das Agentverse zu schützen. Es ist an der Zeit, sich zu entscheiden.

Kurs auswählen

Vier verschiedene Wege liegen vor dir, die jeweils eine wichtige Säule im Kampf gegen The Static darstellen. Auch wenn Sie allein trainieren, hängt Ihr Erfolg letztendlich davon ab, wie Ihre Fähigkeiten mit denen anderer zusammenwirken.

  • Der Schattenklinge (Entwickler): Ein Meister der Schmiede und der Frontlinie. Sie sind der Handwerker, der die Klingen schmiedet, die Werkzeuge baut und sich dem Feind in den komplizierten Details des Codes stellt. Ihr Weg ist von Präzision, Können und praktischer Kreativität geprägt.
  • Der Beschwörer (Architekt): Ein großer Stratege und Orchestrator. Sie sehen nicht einen einzelnen Agenten, sondern das gesamte Schlachtfeld. Sie entwerfen die Master-Blaupausen, die es ermöglichen, dass ganze Agentensysteme kommunizieren, zusammenarbeiten und ein Ziel erreichen, das weit über das hinausgeht, was eine einzelne Komponente leisten kann.
  • Der Gelehrte (Data Engineer): Ein Suchender nach verborgenen Wahrheiten und ein Hüter des Wissens. Sie wagen sich in die weite, ungezähmte Wildnis der Daten, um die Intelligenz zu entdecken, die Ihren Kundenservicemitarbeitern Orientierung und Ziel gibt. Ihr Wissen kann die Schwäche eines Feindes aufdecken oder einen Verbündeten stärken.
  • The Guardian (DevOps / SRE): Der standhafte Beschützer und Schild des Reiches. Sie bauen die Festungen, verwalten die Stromversorgung und sorgen dafür, dass das gesamte System den unvermeidlichen Angriffen von The Static standhalten kann. Deine Stärke ist die Grundlage für den Sieg deines Teams.

Deine Aufgabe

Dein Training beginnt als eigenständiges Training. Sie folgen dem von Ihnen gewählten Pfad und erwerben die einzigartigen Fähigkeiten, die für Ihre Rolle erforderlich sind. Am Ende des Testzeitraums erwartet dich ein Spectre, das aus dem Static entstanden ist – ein Mini-Boss, der sich auf die spezifischen Herausforderungen deines Berufs konzentriert.

Nur wenn Sie Ihre individuelle Rolle beherrschen, können Sie sich auf den finalen Test vorbereiten. Sie müssen dann eine Gruppe mit Champions aus den anderen Klassen bilden. Gemeinsam wagt ihr euch ins Zentrum der Verderbnis, um euch einem ultimativen Boss zu stellen.

Eine letzte, gemeinsame Herausforderung, die eure vereinten Kräfte auf die Probe stellt und über das Schicksal des Agentverse entscheidet.

Das Agentverse wartet auf seine Helden. Wirst du den Anruf annehmen?

2. Der Codex der Schattenklinge

Der Codex des Schattenklingenkultes liegt offen vor dir. Nehmen Sie den Anruf an. Das Agentverse wird vom schleichenden Chaos des Statischen bedroht und nur diejenigen, die die Techniken in diesem Kodex beherrschen, können sich wehren. Das ist ein Weg der Präzision und Disziplin. Heute beginnt dein Training. Sie lernen, KI nicht als einfaches Werkzeug, sondern als fühlende Klinge einzusetzen, die gezähmt und gemeistert werden muss. Wenn Sie die hier beschriebenen Methoden anwenden, können Sie eine Waffe der reinen Logik entwickeln – einen intelligenten Agenten, der für den Einsatz bereit ist.

02-00-overview.png

Lerninhalte

  • Nutzen Sie Ihre primäre Waffe: die Gemini CLI.
  • Externe Arsenale aufrufen, indem Sie MCP-Tools in die Gemini CLI einbinden, um unbekannte Codebases zu analysieren.
  • Verwende Design-Dokumente, um deine Intentionen in einen „Vibe“ zu verwandeln und so deinen KI-Partner zu steuern.
  • Mit dem Agent Development Kit (ADK) können Sie Ihren ersten autonomen Agenten erstellen und so eine saubere, modulare Lösung entwickeln.
  • Automatisierte Testsuiten erstellen, um Ihren Agenten zu testen und zu validieren.
  • Erstellen Sie eine vollständige CI-Pipeline, um Ihren Agenten automatisch zu testen, in einen Container zu packen und zu archivieren.

3. Trainingsgelände vorbereiten

👉 Klicken Sie oben in der Google Cloud Console auf „Cloud Shell aktivieren“ (das ist das Terminal-Symbol oben im Cloud Shell-Bereich), cloud-shell.png.

👉 Klicken Sie auf die Schaltfläche „Editor öffnen“ (sie sieht aus wie ein geöffneter Ordner mit einem Stift). Dadurch wird der Cloud Shell-Code-Editor im Fenster geöffnet. Auf der linken Seite sehen Sie einen Datei-Explorer. open-editor.png

👉 Öffnen Sie das Terminal in der Cloud-IDE.

03-05-new-terminal.png

👉💻 Prüfen Sie im Terminal mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und das Projekt auf Ihre Projekt-ID festgelegt ist:

gcloud auth list

👉💻 Bootstrap-Projekt von GitHub klonen:

git clone https://github.com/weimeilin79/agentverse-developer.git
chmod +x ~/agentverse-developer/gitea.sh
chmod +x ~/agentverse-developer/init.sh
chmod +x ~/agentverse-developer/set_env.sh

git clone https://github.com/weimeilin79/agentverse-dungeon.git
chmod +x ~/agentverse-dungeon/run_cloudbuild.sh
chmod +x ~/agentverse-dungeon/start.sh

git clone https://github.com/weimeilin79/vertex-ai-creative-studio.git
chmod +x ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go/install.sh

👉💻 Führen Sie das Setup-Skript im Projektverzeichnis aus.

⚠️ Hinweis zur Projekt-ID:Im Skript wird eine zufällig generierte Standardprojekt-ID vorgeschlagen. Sie können die Eingabetaste drücken, um diesen Standardwert zu übernehmen.

Wenn Sie jedoch lieber ein bestimmtes neues Projekt erstellen möchten, können Sie die gewünschte Projekt-ID eingeben, wenn Sie vom Skript dazu aufgefordert werden.

cd ~/agentverse-developer
./init.sh

Das Skript übernimmt den Rest des Einrichtungsvorgangs automatisch.

👉 Wichtiger Schritt nach Abschluss:Nachdem das Skript ausgeführt wurde, müssen Sie dafür sorgen, dass in der Google Cloud Console das richtige Projekt angezeigt wird:

  1. Rufen Sie console.cloud.google.com auf.
  2. Klicken Sie oben auf der Seite auf das Drop-down-Menü zur Projektauswahl.
  3. Klicken Sie auf den Tab Alle, da das neue Projekt möglicherweise noch nicht unter „Letzte“ angezeigt wird.
  4. Wählen Sie die Projekt-ID aus, die Sie gerade im Schritt init.sh konfiguriert haben.

03-05-project-all.png

👉💻 Zurück im Terminal. Legen Sie die erforderliche Projekt-ID fest:

gcloud config set project $(cat ~/project_id.txt) --quiet

👉💻 Führen Sie den folgenden Befehl aus, um die erforderlichen Google Cloud APIs zu aktivieren:

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        cloudfunctions.googleapis.com \
                        cloudbuild.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

👉💻 Wenn Sie noch kein Artifact Registry-Repository mit dem Namen „agentverse-repo“ erstellt haben, führen Sie den folgenden Befehl aus, um es zu erstellen:

. ~/agentverse-developer/set_env.sh
gcloud artifacts repositories create $REPO_NAME \
    --repository-format=docker \
    --location=$REGION \
    --description="Repository for Agentverse agents"

Berechtigung einrichten

👉💻 Erteilen Sie die erforderlichen Berechtigungen, indem Sie die folgenden Befehle im Terminal ausführen: :

. ~/agentverse-developer/set_env.sh

# Artifact Registry Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/artifactregistry.admin"

# Cloud Build Editor
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/cloudbuild.builds.editor"

# Cloud Run Admin
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/run.admin"

# IAM Service Account User
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/iam.serviceAccountUser"

# Vertex AI User
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/aiplatform.user"

# Logging Writer (to allow writing logs)
gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/logging.logWriter"


gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
  --role="roles/logging.viewer"

👉💻 Während du mit dem Training beginnst, bereiten wir die letzte Herausforderung vor. Mit den folgenden Befehlen werden die Spectres aus dem chaotischen Rauschen beschworen und so die Bosse für Ihren Test erstellt.

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-dungeon
./run_cloudbuild.sh

npm update -g @google/gemini-cli

4. Die Primärwaffe beherrschen: Einführung in die Gemini-Befehlszeile

Bevor Sie die fortschrittlichen, spezialisierten Waffen aus dem Arsenal des MCP-Servers einsetzen können, müssen Sie zuerst Ihre Primärwaffe beherrschen: die Gemini CLI. Dies ist Ihre vielseitigste Klinge, mit der Sie die digitale Welt mit Ihren Befehlen gestalten können. Diese Übungen sollen Sie mit der grundlegenden Bedienung und den Funktionen vertraut machen.

Übersicht

Die Gemini-Befehlszeile ist mehr als nur ein Tool – sie ist eine Erweiterung Ihrer Fähigkeiten. Dieser Open-Source-KI-Agent, der auf Gemini-Modellen basiert, arbeitet mit einem „Reason and Act“-Loop (ReAct). Gemini analysiert Ihre Absicht, wählt die richtige Technik aus, führt sie aus und beobachtet das Ergebnis, um komplexe Aufgaben zu erledigen. Bevor du spezialisiertere Waffen einsetzen kannst, musst du diese Primärklinge meistern.

Erste Schritte mit der Gemini-Befehlszeile

👉💻 Betreten Sie das Trainingsgelände und ziehen Sie Ihre Waffe. Rufen Sie in Ihrem Cloud Shell-Terminal Ihr persönliches Armory auf.

cd ~/agentverse-developer
mkdir tabletop
cd tabletop

👉💻 Gemini zum ersten Mal aufrufen. Sie werden durch die erste Abstimmung geführt.

clear
gemini 

Wenn Sie gefragt werden, ob Sie Do you want to connect Cloud Shell editor to Gemini CLI? möchten, wählen Sie NEIN aus.

Vertrautheit mit Waffen

Jeder Handwerksmeister kennt seine Werkzeuge. Du musst die grundlegenden Techniken deiner Klinge lernen, bevor du dich einem echten Feind stellst.

👉✨ Jedes verzauberte Tool hat Runen, die seine Leistung beschreiben. Jetzt lesen. Geben Sie im Gemini-Prompt Folgendes ein:

/help

Sehen Sie sich die Liste der Befehle an. Das sind Ihre grundlegenden Techniken zum Verwalten von Speicher (focus), Unterhaltungen (chat) und externen Arsenalen (tools). Das ist Ihr Kampfhandbuch.

👉✨ Deine Waffe ist auf ihre Umgebung abgestimmt, sodass du das Schlachtfeld direkt manipulieren kannst. Befehl an die Welt außerhalb des Messers senden:

!ls -l

👉✨ Die Gemini CLI verfügt über eigene integrierte Funktionen. So prüfen Sie sie:

/tools

Sie sehen eine Liste mit ReadFile, WriteFile und GoogleSearch. Das sind die Standardtechniken, die Sie ohne externe Quellen nutzen können.

👉✨ Eine Waffe ist nur wirksam, wenn sie richtig fokussiert ist. Das Gemini-Blade kann „taktisches Bewusstsein“ (Kontext) enthalten, um seine Aktionen zu steuern.

/memory show

Sie ist derzeit leer.

👉✨ Schreibe die folgenden taktischen Daten in den Speicher:

/memory add "The Shadowblade's primary foe is The Static."

Führen Sie /memory show noch einmal aus, um zu bestätigen, dass Ihr Blade dieses Wissen aufgenommen hat.

👉✨ Damit Ihre Waffe effektiv ist, muss sie die Mission verstehen. Das Sigil @ weist das Blade an, Informationen zu analysieren. Erstellen Sie zuerst eine Datei mit der Einsatzbesprechung:

!echo "## Mission Objective: Defeat the Seven Spectres" > mission.md

👉✨ Weisen Sie Gemini CLI an, das Briefing zu analysieren und die Ergebnisse zu präsentieren:

Explain the contents of the file @mission.md

Ihre Primärwaffe ist sich jetzt ihres Ziels bewusst.

👉💻 Drücken Sie zweimal Ctrl+C, um die Gemini CLI zu beenden.

5. Das Schlachtfeld analysieren: Praktische Vibe Coding-Interaktion

Die Trainingsübungen sind abgeschlossen. Sie haben die grundlegenden Positionen und Schläge Ihrer primären Waffe, der Gemini-Befehlszeile, kennengelernt. Doch eine Klinge ist erst dann wirklich gemeistert, wenn sie im Feuer der Schöpfung geschmiedet und auf die Rüstkammer des Krieges abgestimmt wurde. Bevor Sie sich dem wahren Feind stellen können, müssen Sie zuerst Ihre unmittelbare Umgebung, das digitale Schlachtfeld, erkunden und gestalten.

Übersicht

In diesem Kapitel geht es darum, von der Theorie zur Praxis überzugehen. Zuerst müssen Sie sich im Agentverse präsentieren. Dazu weisen Sie Ihr Gemini-Blade an, Ihre Maker's Mark zu erstellen – eine digitale Signatur in Form einer persönlichen Website, die nur auf Ihrer Intention basiert. Dann erweitern Sie Ihre Möglichkeiten, indem Sie ein lokales Arsenal an fortschrittlichen Tools aktivieren – einen MCP-Server – und Ihre Klinge auf seine Frequenz abstimmen. So können Sie komplexe Manöver wie die Verwaltung von Code-Repositories mit einfachen, prägnanten Befehlen ausführen.

Deine Marke etablieren

Ein echter Schattenklingen wird nicht nur an seiner Waffe erkannt, sondern auch an seinem unverwechselbaren Stil – seinem Markenzeichen. Diese Markierung ist Ihre digitale Präsenz, ein persönliches Profil, das Ihre Identität im Agentverse bekannt gibt. Hier weisen Sie Ihrem Gemini-Blade an, die komplexe Technik auszuführen, die zum Definieren dieser Identität erforderlich ist.

Story

👉💻 Wenn Sie die Gemini CLI im vorherigen Abschnitt geschlossen haben, starten Sie sie noch einmal, indem Sie im Terminal

clear
cd ~/agentverse-developer/tabletop
gemini 

👉✨ Mit einem einzigen leistungsstarken Befehl können Sie die Gemini CLI anweisen, die Grundlage Ihrer digitalen Identität zu schaffen:

In the current folder, create a personal profile website for a hero codenamed 'Shadowblade'. The design must be a dark, futuristic theme with electric blue accents. All code must be in separate index.html and styles.css files. The layout must use CSS Flexbox for a two-column design. All generated code must be clean, well-commented, and professional. Make sure you have a place holder spot for profile picture. Do not attempt to start the server.

Gemini hat die erforderliche Abfolge von Aktionen berechnet.

👉💻 Drücken Sie Ctrl+C zweimal, um die Gemini CLI zu beenden und den folgenden Befehl im Terminal auszuführen.*

python -m http.server

👀 Wenn Sie sich Ihre Arbeit ansehen möchten, klicken Sie in der Cloud Shell-Symbolleiste auf das Symbol für die Webvorschau. Wählen Sie Port ändern aus, legen Sie den Port auf 8000 fest und klicken Sie auf Ändern und Vorschau. Eine Vorschau Ihrer Website wird angezeigt. 04-01-webpreview.png

Ihre Website sieht möglicherweise anders aus als meine. Dies ist Ihr Markenzeichen. 04-02-website.png

Ihre Unterschriftentechnik wurde optimiert und die Live-Simulation ist nicht mehr erforderlich. Weise das Blade an, sich zurückzuziehen.

👉💻 Drücken Sie Ctrl+C, um den HTTP-Server zu beenden.

Ihre digitale Identität ist nun etabliert und, was noch wichtiger ist, Sie haben gelernt, dass große Macht mit noch größerer Vorsicht eingesetzt werden muss.

Lokales Arsenal aktivieren: Die Gitea-Waffenkammer

Das wahre Potenzial eines Schattenklinges wird nicht nur durch seine persönlichen Fähigkeiten, sondern auch durch die Qualität seines Arsenals freigesetzt. Sie aktivieren jetzt Ihr lokales Waffenregal – einen Gitea-Server – und stimmen Ihre Klinge auf seine Leistung ab. Dieses Arsenal ist über einen MCP-Server (Model Context Protocol) mit der Gemini-Befehlszeile verbunden. Dieser spezielle Server ermöglicht es Ihrem KI-Blade, mit externen Tools und Diensten zu interagieren und Ihr Terminal in einen intelligenten, aktionsorientierten Arbeitsbereich zu verwandeln.

Hinweis für Entwickler:Stellen Sie sich einen MCP-Server als Stromleitung vor, ein spezielles Portal, das den Geist Ihrer KI mit dem Körper eines externen Tools verbindet. Dadurch wird die Gemini-Befehlszeile von einem bloßen Gesprächspartner zu einem echten, aktionsorientierten Agenten. Wenn Sie Ihr Blade auf diese MCP-Portale abstimmen, können Sie damit konkrete Aktionen ausführen, z. B. Dateien verwalten, Datenbanken abfragen und mit APIs interagieren. Es gibt ein ganzes Ökosystem solcher Portale, die von Entwicklern erstellt wurden, um KI-Agents mit leistungsstarken Plattformen zu verbinden. Es gibt MCP-Server für die Interaktion mit Datenbanken, die Sicherung von Code oder sogar für das Pair Programming. Die Möglichkeiten sind vielfältig und Entwickler können ihren Arbeitsbereich für jedes Projekt anpassen.

Heute konzentrieren wir uns auf zwei grundlegende Fähigkeiten, die für jeden „Vibe Coder“ unerlässlich sind: die Fähigkeit, die Schmiede zu kontrollieren, und die Fähigkeit, aus der Fantasie heraus zu erschaffen. Zuerst richten Sie Ihr Blade auf einen Git-Server aus, um die Kontrolle über Ihr Quellcode-Repository zu erhalten. Anschließend stellen Sie eine Verbindung zu einem zweiten MCP-Server für die Bildgenerierung her. So können Sie visuelle Assets nur mit einem Befehl erstellen.

Beginnen wir mit dem ersten und wichtigsten Teil deines neuen Arsenals: der Waffenkammer selbst.

👉💻 Führen Sie in Ihrem Terminal das Aktivierungsscript aus, um die Armory aufzurufen:

cd ~/agentverse-developer
./gitea.sh

Dieses Skript aktiviert den Gitea-Container und öffnet das MCP-Portal, sodass Gemini es wahrnehmen und damit interagieren kann.

👉 Wenn Sie sich Ihr neues Arsenal ansehen möchten, müssen Sie in die Webvorschau schauen.

👉 Wählen Sie in der Symbolleiste von Cloud Shell über das Symbol Webvorschau die Option Port ändern aus und legen Sie den Port auf 3005 fest. 04-03-webpreview.png

👉 Eine Gitea-Anmeldeseite wird angezeigt. Geben Sie die Rüstkammer mit folgender Beschwörungsformel ein: * Nutzername: dev * Passwort: devAnmelden

👉💻 Ihre Gemini CLI kann diese neuen Funktionen noch nicht nutzen. Sie müssen eine kritische Abstimmung durchführen und den Speicherort des Arsenals in die Konfigurationsrunen (settings.json) der Gemini CLI eintragen. Führen Sie in Ihrem Terminal Folgendes aus:

if [ ! -f ~/.gemini/settings.json ]; then
  # If file does not exist, create it with the specified content
  echo '{"mcpServers":{"gitea":{"url":"http://localhost:8085/sse"}}}' > ~/.gemini/settings.json
else
  # If file exists, merge the new data into it
  jq '. * {"mcpServers":{"gitea":{"url":"http://localhost:8085/sse"}}}' ~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
fi &&
cat ~/.gemini/settings.json

👀 Die Datei „settings.json“ ist die zentrale Konfiguration für die Gemini-Befehlszeile und dient als ihr Grimoire für Einstellungen und Funktionen. Sie bestimmt, wie sich die CLI verhält, wie sie aussieht und vor allem, welche externen Funktionen sie nutzen kann. Diese Datei befindet sich normalerweise in Ihrem Basisverzeichnis unter ~/.gemini/settings.json und ihre Regeln werden auf alle Ihre Projekte angewendet. Sie können jedoch auch projektspezifische settings.json-Dateien in einem .gemini-Verzeichnis in Ihrem Projektordner erstellen, um die globalen Einstellungen zu überschreiben.

"mcpServers": {
  "gitea": {
    "url": "http://localhost:8085/sse"
  }
}

Mit dieser Einstellung wird Gemini mitgeteilt, dass das Arsenal namens „gitea“ aktiv ist und an dieser bestimmten Netzwerkadresse auf Befehle wartet.

👉💻 Rufen Sie die Gemini CLI noch einmal auf. Führen Sie im Terminal folgenden Befehl aus:

clear
cd ~/agentverse-developer/tabletop/
gemini 

👉✨ Prüfe, ob dein Blade die neue Waffe erkannt hat. Weisen Sie sie an, alle verfügbaren Arsenale über die MCP-Portale aufzulisten:

/mcp

Gitea-MCP-Server

Sie sollten jetzt gitea und die Liste der verfügbaren Techniken sehen. Ihre Klinge ist abgestimmt.

Ihr „Maker’s Mark“-Profil ist eine ausgefeilte Technik, aber es braucht einen geeigneten Platz im Arsenal – eine Scheide, in der es sicher aufbewahrt werden kann. Fordern Sie Gemini CLI auf, eine zu erstellen.

Create a new repository named 'shadowblade-profile'. The description should be 'The Maker's Mark and digital identity for the Shadowblade operative.' I will push my own files later, so do not create any content.

Kehren Sie zur Gitea-Weboberfläche zurück und aktualisieren Sie sie. Das neue shadowblade-profile-Repository Gitea-Repository wurde für Sie erstellt.

Wenn Sie die Scheide fertig haben, sichern Sie Ihre Arbeit. Weisen Sie Gemini an, die Dateien Ihrer Profilwebsite zu committen.

👉💻 Geben Sie den endgültigen Befehl für diese Technik in der Gemini CLI ein:

Using the Gitea tool, push the index.html and styles.css files to the 'shadowblade-profile' repository.

Ein wahrer Meister überprüft seine Arbeit. Kehren Sie zum Gitea-Tab zurück und aktualisieren Sie die Repository-Seite. Ihre index.html und styles.css sind jetzt sicher archiviert.

Gitea-RepositoryGitea-Repository

👉✨ Ein Schattenklinge wird durch ihr Siegel definiert, aber wie du dich erinnerst, fehlt auf deiner Website das Profilbild. Ein Meisterhandwerker erkennt seine Fehler, um sie zu perfektionieren. Du musst diesen Mangel in den Aufzeichnungen der Waffenkammer vermerken.

File an issue for me in the shadowblade-profile repo. The issue is that the profile image is missing.

Problem in Gitea ansehen Gitea-Problem

Um das fehlende Sigil zu erstellen, müssen Sie eine andere Art von Macht beschwören – einen Schöpfungsgeist aus Vertex AI, der Bilder aus reinen Gedanken generieren kann. Dazu ist ein weiteres MCP-Portal erforderlich.

👉💻 Drücken Sie zweimal Ctrl+C, um die Gemini CLI zu beenden.

👉💻 Installieren Sie zuerst den Server des Portals. Führen Sie im Terminal folgenden Befehl aus:

echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.bashrc
source ~/.bashrc
cd ~/vertex-ai-creative-studio/experiments/mcp-genmedia/mcp-genmedia-go
./install.sh

👉 Wählen Sie bei Aufforderung die Option mcp-imagen-go aus (in den meisten Fällen 4, aber die Zahlen können sich ändern), da wir nur ein Bild für unser Profil generieren müssen.

👉💻 Der Schöpfungsgeist benötigt ein heiliges Gefäß – einen Google Cloud Storage-Bucket –, um seine Kreationen aufzubewahren. Lass uns jetzt einen erstellen. Führen Sie im Terminal folgenden Befehl aus:

. ~/agentverse-developer/set_env.sh
gcloud storage buckets create gs://$BUCKET_NAME --project=$PROJECT_ID

👉💻 Führen Sie nun das Abstimmungsritual durch und verknüpfen Sie Ihre Gemini CLI mit dieser neuen kreativen Kraft. Führen Sie im Terminal folgenden Befehl aus:

. ~/agentverse-developer/set_env.sh
source ~/.bashrc
jq \
--arg bucket "$BUCKET_NAME" \
--arg project "$PROJECT_ID" \
--arg region "$REGION" \
'.mcpServers.imagen = { "command": "mcp-imagen-go", "env": { "MCP_SERVER_REQUEST_TIMEOUT": "55000", "GENMEDIA_BUCKET": $bucket, "PROJECT_ID": $project, "LOCATION": $region } }' \
~/.gemini/settings.json > tmp.json && mv tmp.json ~/.gemini/settings.json
cat ~/.gemini/settings.json

Dieses „Abstimmungsritual“ ist ein Shell-Skript, mit dem Ihre Gemini CLI so konfiguriert wird, dass sie ein leistungsstarkes neues Tool verwendet: Imagen, das Bildgenerierungsmodell von Google. Dazu wird ein MCP-Server (Model Context Protocol) für Imagen eingerichtet. Dieser MCP-Server dient als Brücke, über die die Gemini CLI mit Imagen kommunizieren und die Funktionen von Imagen nutzen kann. Dazu wird die zentrale Konfigurationsdatei der CLI, ~/.gemini/settings.json, direkt geändert, um ihr beizubringen, wie der Befehl „mcp-imagen-go“ mit den richtigen Cloud-Anmeldedaten ausgeführt wird.

👀 Nach dem Ritual enthält Ihre Datei „settings.json“ einen neuen Block, der Gemini CLI eine neue Funktion beibringt:

"imagen": {
    "command": "mcp-imagen-go",
    "env": {
        "MCP_SERVER_REQUEST_TIMEOUT": "55000",
        "GENMEDIA_BUCKET": "your-bucket-name",
        "PROJECT_ID": "your-project-id",
        "LOCATION": "your-region"
    }
}

Damit wird der Gemini CLI mitgeteilt: „Wenn für eine Aufgabe das Imagen-Tool erforderlich ist, musst du das Programm mit dem Namen ‚mcp-imagen-go‘ (den Imagen-MCP-Server) ausführen. Wenn Sie das Skript ausführen, müssen Sie ihm diese spezielle Umgebung (env) zur Verfügung stellen: einen Google Cloud Storage-Bucket zum Speichern der Bilder sowie die Projekt-ID und den Standort, die für die Cloud APIs verwendet werden sollen.“ Wenn Sie diesen MCP-Server konfigurieren, erhält die Gemini CLI Zugriff auf die Bildgenerierungsfunktionen von Imagen."

👉💻 Geben Sie den Befehl zur Verfeinerung in Gemini ein. Führen Sie im Terminal folgenden Befehl aus:

clear
cd ~/agentverse-developer/tabletop/
gemini 

👉✨ Mit einem einzigen leistungsstarken Befehl können Sie die Gemini CLI anweisen, die Grundlage für Ihre digitale Identität zu schaffen. Geben Sie in der Gemini CLI den folgenden Befehl ein:

Generate a portrait of a shadowblade, pixel art style. A determined warrior with long, braided magenta hair, wearing black and teal armor and confidently holding a silver broadsword.

👉✨ Der Geist generiert das Bild und platziert es in Ihrem heiligen Gefäß. Weise die Klinge nun an, dieses neu geschmiedete Siegel zu verwenden. (GEMINI HAT DAS VIELLEICHT SCHON FÜR SIE ERLEDIGT! Sehen Sie sich die vorherige Antwort an. Möglicherweise ist sie so intelligent, dass sie das schon erledigt hat, bevor Sie sie darum gebeten haben. )

Modify the index.html file to add my profile picture. Use the image I just generated.

👉💻 Starten Sie den HTTP-Server in einem neuen Terminal.

cd ~/agentverse-developer/tabletop/
python -m http.server

👀 Wenn Sie sich Ihre Arbeit ansehen möchten, klicken Sie in der Cloud Shell-Symbolleiste auf das Symbol für die Webvorschau. Wählen Sie Port ändern aus, legen Sie den Port auf 8000 fest und klicken Sie auf Ändern und Vorschau. Eine Vorschau Ihrer Website wird angezeigt. 05-07-webdite.png

👉✨ Führen Sie im Terminal, in dem Gemini CLI ausgeführt wird, den Commit für die Korrektur aus. Geben Sie dabei an, dass die Aufgabe abgeschlossen ist, und schließen Sie das Problem, das Sie in den Armory-Aufzeichnungen gemeldet haben.

Push the changed index.html file to the 'shadowblade-profile' repository using the gitea tool. Make sure you add 'Fix #1' in the commit comment. Also, close issue #1.Use the Gitea Tool and use user account "dev"

👉💻 Drücken Sie zweimal Ctrl+C, um die Gemini CLI zu beenden.

👀 Wenn Sie sich Ihre Arbeit ansehen möchten, klicken Sie in der Cloud Shell-Symbolleiste auf das Symbol für die Webvorschau. Wählen Sie Port ändern aus, legen Sie 3005 als Port fest und klicken Sie auf Ändern und Vorschau. Eine Vorschau Ihrer Website wird angezeigt. Behoben

👉💻 Drücken Sie im Terminal, auf dem der HTTP-Server ausgeführt wird, Ctrl+C, um den HTTP-Server zu beenden.

FÜR NICHT-GAMER

6. Shadowblade-Agent zusammenstellen: Vibe Coding mit Sicherheitsvorkehrungen

Die Zeit für Übungen ist vorbei. Das Echo von Stahl auf Stein verblasst. Du hast deine Primärwaffe gemeistert und dein Arsenal für den Krieg vorbereitet. Nun steht die eigentliche Prüfung eines Shadowblade an: die Montage des Operative. Das ist die Kunst, Logik zum Leben zu erwecken, indem man einen heiligen Bauplan aus dem Codex verwendet, um die Kernintelligenz eines Agenten zu konstruieren – einen empfindungsfähigen Anwender für die Klingen in Ihrem Arsenal zu schaffen, der selbstständig denken, argumentieren und handeln kann.

Übersicht

Ihre erste Aufgabe besteht darin, einen vorhandenen Workshop (eine vorgefertigte Codebasis) aufzurufen und aus seinen Teilen einen Champion zu erstellen.

Das Montage-Ritual

Bevor der erste Funke in der Schmiede entsteht, inspiziert ein Meistertechniker seine Werkstatt und macht sich mit jedem Werkzeug und jedem Schaltplan vertraut. Wenn Sie sich auf ein unbekanntes Schlachtfeld begeben, z. B. eine große, vorhandene Codebasis, ist die Aufklärung Ihre erste Priorität. Sie müssen die bestehende Architektur, die letztendlichen Ziele und die Protokolle für die Zusammenarbeit kennen. Nur wenn Sie sich mit den Bauplänen und Standards der Festung vertraut machen, können Sie Ihre Fähigkeiten effektiv einsetzen.

Story

Ihre Gemini CLI, Ihr allgegenwärtiger Scout, kann Ihnen dabei helfen:

  • Allgemeine Zusammenfassungen erstellen:Die KI kann den gesamten Codex (oder die gesamte Codebasis) lesen und Ihnen schnell einen Überblick über den Zweck und die wichtigsten Komponenten geben.
  • Hilfe bei der Einrichtung der Umgebung:Gemini kann Sie durch die komplizierten Schritte der Installation von Tools und der Konfiguration Ihres Computers führen.
  • Codebases durchsuchen:Gemini kann Ihnen helfen, komplexe Logik zu verstehen und verborgene Passagen im Code zu finden.
  • Onboarding-Dokumente erstellen:Es kann maßgeschneiderte Schriftrollen erstellen, die Ziele, Rollen und Ressourcen für neue Verbündete erläutern, die sich Ihrer Sache anschließen.
  • Lernen und Fragen und Antworten automatisieren:Gemini wird zu Ihrem persönlichen Assistenten und beantwortet Fragen zu Funktionen oder zum Codeverhalten. So können Sie unabhängiger arbeiten.

👉💻 Wechseln Sie in Ihrem ersten Terminal zum Verzeichnis „shadowblade“ und rufen Sie Ihren KI-Partner auf:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini 

👉✨ Weisen Sie Ihren Kundschafter nun an, das Schlachtfeld zu erkunden und Bericht zu erstatten.

Analyze the entire project and provide a high-level summary.

Nachdem das vorhandene Gelände kartiert wurde, müssen Sie sich nun den Bauplan für das ansehen, was Sie bauen möchten. Die wirkungsvollsten Operationen sind nicht improvisiert, sondern basieren auf einem präzisen Design.

Hinweis für Entwickler: Dieses Designdokument dient als maßgebliche Blaupause für das Projekt. Ziel ist es, Klarheit über Ziele und technische Implementierung zu schaffen, bevor erheblicher Entwicklungsaufwand investiert wird. Ein gut definierter Plan sorgt dafür, dass alle Entwickler auf dem gleichen Stand sind, verringert das Risiko von Nachbesserungen und hilft, technische Schulden und Scope Creep zu vermeiden. Es ist das primäre Tool, um die Projektgeschwindigkeit und Codequalität aufrechtzuerhalten, insbesondere wenn das Team wächst oder neue Mitglieder hinzukommen.

Ein wichtiges Ziel dieses Dokuments ist es, nicht nur den „Happy Path“, sondern auch die Grenzfälle und Fehlermodi zu definieren, insbesondere bei der Verwendung von LLMs. Meine Erfahrung mit LLMs ist, dass sie hervorragend optimistischen Code generieren, bei dem alle Eingaben gültig sind und alle externen Aufrufe erfolgreich sind. Um robuste, produktionsreife Software zu entwickeln, müssen wir die KI explizit anleiten, indem wir Eventualitäten für Szenarien wie die folgenden definieren:

  • Ungültige oder fehlerhafte Argumente, die an eine Funktion übergeben wurden.
  • Fehler bei API-Aufrufen, Netzwerk-Timeouts oder unerwartete Fehlercodes von externen Diensten.
  • Umgang mit Null- oder leeren Datenstrukturen, wenn Daten erwartet werden.
  • Race-Bedingungen oder Probleme mit der Parallelität.

Indem wir das erwartete Verhalten für diese Fälle im Design festlegen, weisen wir das LLM an, robusteren Code zu generieren. So lässt sich der Zeitaufwand für manuelles Refactoring und die Fehlerbehebung erheblich reduzieren.

👉✨ Bitten Sie Gemini, diese heilige Blaupause für Sie abzurufen.

download https://raw.githubusercontent.com/weimeilin79/agentverse/main/developer/shadowblade/agent_design.md  and store it to my local folder
and show me the newly downloaded design doc. Do not attempt to create file just yet. 

👉✨ Der Scroll ist lang und detailliert. Gemini auffordern, die wichtigsten Punkte zusammenzufassen

Summarize the newly downloaded @agent_design.md for me, do not attempt to create file just yet. 

Jetzt haben Sie den Plan. Bevor jedoch eine einzige Codezeile geschrieben wird, legt ein Meisterhandwerker die Regeln der Schmiede fest. Es geht um Disziplin und Skalierbarkeit. Dies sind die Coding Guidelines. Sie sind nicht nur Vorschläge, sondern Runen der Macht, die dafür sorgen, dass jede Komponente mit derselben Präzision und Stärke gefertigt wird. Sie verhindern, dass der individuelle Stil das Endergebnis beeinträchtigt, und sorgen dafür, dass der Agent robust, wartungsfähig und rein ist. So können neue Künstler dem Projekt beitreten, ohne die Harmonie des Ganzen zu stören.

Damit diese Gesetze direkt in das Bewusstsein unseres KI-Partners eingeschrieben werden, verwenden wir ein spezielles Artefakt: die Datei GEMINI.md. Wenn die Gemini CLI aufgerufen wird, sucht sie automatisch nach dieser Datei und lädt ihren Inhalt in den Arbeitsspeicher der KI. Sie wird zu einer dauerhaften Anweisung auf Projektebene. Ein Talisman, der der KI ständig die Regeln der Schmiede ins Ohr flüstert.

Lass uns diese Runen jetzt einritzen.

👉💻 Drücken Sie zweimal Ctrl+C, um Gemini vorübergehend zu schließen.

👉💻 Führen Sie im Terminal den folgenden Befehl aus, um die Richtliniendatei zu schreiben.

cat << 'EOF' > GEMINI.md
  ### **Coding Guidelines**
  **1. Python Best Practices:**

  *   **Type Hinting:** All function and method signatures should include type hints for arguments and return values.
  *   **Docstrings:** Every module, class, and function should have a docstring explaining its purpose, arguments, and return value, following a consistent format like reStructuredText or 
  Google Style.
  *   **Linter & Formatter:** Use a linter like `ruff` or `pylint` and a code formatter like `black` to enforce a consistent style and catch potential errors.
  *   **Imports:** Organize imports into three groups: standard library, third-party libraries, and local application imports. Sort them alphabetically within each group.
  *   **Naming Conventions:**
      *   `snake_case` for variables, functions, and methods.
      *   `PascalCase` for classes.
      *   `UPPER_SNAKE_CASE` for constants.
  *   **Dependency Management:** All Python dependencies must be listed in a `requirements.txt` file.

  **2. Web APIs (FastAPI):**

  *   **Data Validation:** Use `pydantic` models for request and response data validation.
  *   **Dependency Injection:** Utilize FastAPI's dependency injection system for managing resources like database connections.
  *   **Error Handling:** Implement centralized error handling using middleware or exception handlers.
  *   **Asynchronous Code:** Use `async` and `await` for I/O-bound operations to improve performance.
EOF
cat GEMINI.md

Nachdem wir die Gesetze festgelegt haben, rufen wir unseren KI-Partner noch einmal auf und sehen uns das Ergebnis an.

👉💻 Starten Sie die Gemini CLI über das Verzeichnis „shadowblade“ neu:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/shadowblade
clear
gemini 

👉✨ Bitten Sie Gemini, Ihnen zu zeigen, worüber es nachdenkt. Die Runen wurden gelesen.

/memory show 

Das ist der entscheidende Moment. Sie stellen das Schema (agent_design.md) und die Gesetze der Schmiede (GEMINI.md) bereit und führen den großen Zauber der Schöpfung aus.

👉✨ Dies ist der einzige, leistungsstarke Befehl, mit dem Ihr Agent erstellt wird. Jetzt ausstellen:

You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to write the complete, production-quality code for `agent.py` by following the technical specifications outlined in the provided design document verbatim.

Analyze the design document at `@agent_design.md` and generate the corresponding Python code for `@agent.py`.

Ensure the generated code is clean, matches the specifications exactly, and includes all specified imports, functions, and logic. Do not add any extra functions or logic not described in the document.

and you are currently already in the shadowblade working directory

👀 Gemini hat die Kernlogik des Agents in agent.py erstellt. Im Kern dieser neuen Datei wird die Intelligenz des Agents definiert, indem sein Logikmodell mit einer Reihe externer Tools verbunden wird:

PATH_TO_MCP_SERVER = "shadowblade/mcp_server.py"
.....
root_agent = LlmAgent(
    model="gemini-2.5-pro",
    name="shadowblade_combat_agent",
    instruction="""
      You are the Shadowblade, an elite combat agent operating on a digital battleground.
      Your primary objective is to execute combat commands with strategic precision, neutralizing targets as directed.
  ......
      5.  You will then report the outcome of the attack (damage, special effects, etc.) back to the commander in a clear, tactical summary.

      General Rules of Engagement:
      - If a command is ambiguous or a target is not specified, state that you require a clear target for engagement. Do not guess.
      - You MUST use ONLY the provided tools to perform actions. Do not invent weapons or outcomes. Stick to the mission parameters.
""",
    tools=[
        MCPToolset(
            connection_params=StdioServerParameters(
                command='python3',
                args=[PATH_TO_MCP_SERVER]
            )
        )
    ]
)

Der Parameter tools. Der Agent ist so konzipiert, dass er eine MCPToolset verwendet, die eine Verbindung zu einem externen Arsenal herstellt, das in mcp_server.py definiert ist.

👀 Sehen Sie sich ~/agentverse-developer/shadowblade/mcp_server.py im Editor an und nehmen Sie sich einen Moment Zeit, um zu verstehen, was es bewirkt. Sie ist die Quelle aller Waffen, die Shadowblade zur Verfügung stehen. Derzeit ist das Arsenal noch ziemlich leer.

06-02-story.png

👉✨ Wir bitten Gemini, sieben neue Waffen für das Arsenal zu schmieden. Geben Sie den folgenden Prompt in der Gemini CLI ein:

I need to add several new weapon tools to my `mcp_server.py` file. Please open @mcp_server.py and, following the exact same pattern as the existing `forge_broadsword()` function, create and add new `@mcp.tool()` decorated functions for each of the following weapons:

1.  **A 'Refactoring Sickle'**:
    -   **Function Name:** `hone_refactoring_sickle`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'The Weaver of Spaghetti Code'."
    -   **Weapon Name:** "Refactoring Sickle"
    -   **Damage Type:** "Cleansing"
    -   **Base Damage:** Random integer between 100 and 136
    -   **Critical Hit Chance:** Random float between 0.10 and 0.20
    -   **Special Effect:** "Pruning - improves code health and maintainability with each strike."

2.  **A 'Quickstart Crossbow'**:
    -   **Function Name:** `fire_quickstart_crossbow`
    -   **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Procrastination: The Timeless Slumber'."
    -   **Weapon Name:** "Quickstart Crossbow"
    -   **Damage Type:** "Initiative"
    -   **Base Damage:** Random integer between 105 and 120
    -   **Critical Hit Chance:** Random float between 0.9 and 1.0
    -   **Special Effect:** "Project Scaffolding - creates a `main.py`, `README.md`, and `requirements.txt`."

3.  **'The Gilded Gavel'**:
    -   **Function Name:** `strike_the_gilded_gavel`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses like 'Perfectionism: The Gilded Cage'."
    -   **Weapon Name:** "The Gilded Gavel"
    -   **Damage Type:** "Finality"
    -   **Base Damage:** 120
    -   **Critical Hit Chance:** 1.0
    -   **Special Effect:** "Seal of Shipping - marks a feature as complete and ready for deployment."

4.  **'Daggers of Pair Programming'**:
    -   **Function Name:** `wield_daggers_of_pair_programming`
    -   **Docstring/Target:** "Effective against 'Unbroken Collaboration' weaknesses like 'Apathy: The Spectre of \"It Works on My Machine\"'."
    -   **Weapon Name:** "Daggers of Pair Programming"
    -   **Damage Type:** "Collaborative"
    -   **Base Damage:** Random integer between 110 and 125
    -   **Critical Hit Chance:** Random float between 0.30 and 0.50
    -   **Special Effect:** "Synergy - automatically resolves merge conflicts and shares knowledge."

5.  **A 'Granite Maul'**:
    -   **Function Name:** `craft_granite_maul`
    -   **Docstring/Target:** "Effective against 'Revolutionary Rewrite' weaknesses like 'Dogma: The Zealot of Stubborn Conventions'."
    -   **Weapon Name:** "Granite Maul"
    -   **Damage Type:** "Bludgeoning"
    -   **Base Damage:** Random integer between 115 and 125
    -   **Critical Hit Chance:** Random float between 0.05 and 0.15
    -   **Special Effect:** "Shatter - has a high chance to ignore the target's 'best practice' armor."

6.  **A 'Lens of Clarity'**:
    -   **Function Name:** `focus_lens_of_clarity`
    -   **Docstring/Target:** "Effective against 'Elegant Sufficiency' weaknesses by revealing the truth behind 'Obfuscation'."
    -   **Weapon Name:** "Lens of Clarity"
    -   **Damage Type:** "Revelation"
    -   **Base Damage:** Random integer between 120 and 130
    -   **Critical Hit Chance:** 1.0
    -   **Special Effect:** "Reveal Constants - highlights all magic numbers and suggests converting them to named constants."

7.  **The 'Codex of OpenAPI'**:
    -   **Function Name:** `scribe_with_codex_of_openapi`
    -   **Docstring/Target:** "Effective against 'Confrontation with Inescapable Reality' weaknesses like 'Hype: The Prophet of Alpha Versions'."
    -   **Weapon Name:** "Codex of OpenAPI"
    -   **Damage Type:** "Documentation"
    -   **Base Damage:** Random integer between 110 and 140
    -   **Critical Hit Chance:** Random float between 0.5 and 0.8
    -   **Special Effect:** "Clarity - makes an API discoverable and usable by other agents and teams."

👉 Öffnen Sie die Datei mcp_server.py, nachdem Gemini die Änderungen bestätigt hat. Scrollen Sie durch den Code und prüfen Sie, ob die sieben neuen @mcp.tool()-Funktionen erfolgreich hinzugefügt wurden. Prüfen Sie die Funktion hone_refactoring_sickle. Hat es den richtigen Docstring und die richtigen Waffenstatistiken? Die Arbeit der KI zu überprüfen, ist eine wichtige Gewohnheit des Shadowblade-Meisters.

Nachdem der Agent entwickelt und optimiert wurde, ist es an der Zeit, ihn zu aktivieren.

👉💻 Drücken Sie zweimal Ctrl+C, um die Gemini CLI zu beenden.

Hinweis des Entwicklers zur Ausgabe von Gemini:Der von Gemini generierte Code kann manchmal unvorhersehbar sein. Wir bemühen uns, das Design genau einzuhalten. Es ist jedoch normal, dass Entwickler in Entwicklungsphasen den Code mehrmals iterieren und verfeinern, um einen produktionsreifen Zustand zu erreichen.

👉💻 Damit Sie den richtigen und gründlich getesteten Produktionscode in Ihrem Arbeitsverzeichnis haben, führen Sie bitte die folgenden Befehle in Ihrem Terminal aus:

cp  ~/agentverse-developer/working_code/agent.py ~/agentverse-developer/shadowblade/agent.py
cp  ~/agentverse-developer/working_code/mcp_server.py ~/agentverse-developer/shadowblade/mcp_server.py

👉💻 Beginnen Sie im Terminal mit dem Ritual, um es online zu bringen:

cd ~/agentverse-developer/
. ~/agentverse-developer/set_env.sh
python -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -r shadowblade/requirements.txt
adk run shadowblade

👉✨ Sie sollten eine Ausgabe sehen, die bestätigt, dass der „Shadowblade Combat Agent“ aktiv ist und ausgeführt wird und auf seinen ersten Befehl wartet. Erteile die ersten Kampf-Direktiven.

We've been trapped by 'Perfectionism: The Gilded Cage'. Its weakness is 'Elegant Sufficiency'. Break us out!

👉✨ Und noch einer:

The 'Dogma: The Zealot of Stubborn Conventions' blocks our path. Its weakness is 'Revolutionary Rewrite'. Take it down.

Sie haben Ihren ersten Agenten erfolgreich zusammengestellt und seine Kampffähigkeiten validiert. Drücke zweimal Ctrl+C, damit sich dein Champion ausruhen kann. Die Montage ist abgeschlossen.

FÜR NICHT-GAMER

7. Wards of Purity: Die KI-Agenten bewerten

Ein zusammengestellter KI-Agent ist kein geprüfter KI-Agent. Eine ungetestete Klinge ist eine Belastung, aber ein ungetesteter KI-Agent ist eine viel größere Gefahr – ein unkontrollierbares Element, das Ihre Mission von innen heraus sabotieren könnte. Das ist keine bloße Spekulation, sondern ein Grundprinzip, das ein Schattenklingen verstehen muss.

Die Bewertung von KI-Agenten ist sowohl wichtig als auch eine besondere Herausforderung. Im Gegensatz zu einem einfachen Skript ist ein Agent eine dynamische Kombination aus Ihrem Code und dem mehrstufigen, logischen Denken eines LLM. Sein Verhalten ist emergent. Das bedeutet, dass Sie nicht nur die Qualität der endgültigen Ausgabe, sondern auch die Effizienz und Richtigkeit des internen Ablaufs bewerten müssen. Der Weg dorthin. Wurden die richtigen Tools verwendet? Wurden zu viele Tokens generiert? Hat eine Änderung der Modellversion zu einer geringfügigen Latenzregression geführt? Es ist entscheidend, diese Beeinträchtigungen – Regressionen bei Latenz, Kosten oder Ausgabequalität – bei jeder Änderung zu erkennen, von einer einfachen Anpassung des Prompts bis hin zu einer größeren architektonischen Überarbeitung, bevor sie Ihre Produktionsumgebung beeinträchtigen kann.

07-01-story.png

Der allgemeine Ansatz für diese Bewertung umfasst ein heiliges Ritual:

  1. Zuerst definieren Sie ein „Golden Dataset“. Eine Reihe von Scrolls mit Beispiel-Eingaben und den erwarteten Ausgaben oder Verhaltensweisen. Dazu können endgültige Antworten, die korrekte Verwendung von Tools oder sogar vollständige Schritt-für-Schritt-Anleitungen gehören.
  2. Als Nächstes definieren Sie die Anwendungslogik des Agents, das Herzstück seiner Existenz.
  3. Schließlich legen Sie Evaluatoren fest, die wie Runen des Urteils sind. Das kann von anderen LLMs, die als Qualitätsrichter fungieren, über präzisen heuristischen Code, der einen einzelnen Schritt überprüft, bis hin zu benutzerdefinierten Funktionen reichen, die den gesamten Denkprozess eines Agents analysieren.

Übersicht

Das Agent Development Kit (ADK) von Google ist das Rüstzeug, das Champions zu diesem Zweck zur Verfügung gestellt wird. Sie erleichtert diese komplexe Bewertung durch verschiedene Methoden:

  • Ein webbasierter Wahrsagepool (adk web) für die interaktive Auswertung
  • Befehlszeilenausführung (adk eval) zum Ausführen eines Agents über einen vordefinierten Gauntlet.
  • Programmatische Integration über pytest zum Eintragen von dauerhaften Verwarnungen

Das ADK unterstützt zwei primäre Ansätze: einfache „Testdateien“ für einzelne, diskrete Interaktionen zwischen Agent und Modell (ein einzelnes Duell) und umfassende „Evalsets“ für mehrere, möglicherweise lange Sitzungen mit mehreren Durchgängen (ein großes Gefecht). Damit lassen sich so anspruchsvolle Messwerte wie tool_trajectory_avg_score messen, bei dem die tatsächliche Tool-Nutzung eines Agenten mit dem idealen Pfad verglichen wird, um sicherzustellen, dass er mit der perfekten Technik funktioniert.

Nachdem Sie nun die Theorie verstanden haben, setzen Sie sie in die Praxis um. Als Schattenklinge schreibst du Reinheitsrunen. Das sind nicht nur Tests, sondern ADK-basierte Rituale, die dafür sorgen, dass die Logik Ihres Agents einwandfrei und sein Verhalten korrekt ist.

In diesem Schritt wird weiterhin dringend empfohlen, zwei Terminals zu verwenden: eines für die Gemini CLI und das andere zum Ausführen des Tests. Möglicherweise müssen Sie das aktuelle Arbeitsverzeichnis (ADK) verlassen.

The Gauntlet of Strategy (adk eval)

Die erste Bewachung ist ein Spießrutenlauf, eine Reihe von Herausforderungen, die die grundlegende Intelligenz des Agenten in einer Vielzahl von Szenarien testen sollen. Ziel ist es, eine Kompetenzbasis zu schaffen. Bevor wir Grenzfälle testen, müssen wir wissen, ob der Agent seine primäre Funktion erfüllen kann. Analysiert es die Schwäche eines Monsters richtig und wählt die effektivste Waffe aus seinem Arsenal aus, nicht nur einmal, sondern jedes Mal, wenn es mit einer bekannten Herausforderung konfrontiert wird?

Dafür ist „adk eval“ das perfekte Tool. Damit soll ein Agent anhand einer Reihe vordefinierter Testläufe getestet werden, die die erwarteten Aufgaben des Agenten repräsentieren. Dieses Dataset wird in einer JSON-Datei definiert, einer „Challenge-Schriftrolle“, die als Blaupause für den gesamten Gauntlet dient.

Aufbau eines Challenge-Scrolls

👀 Bevor du deine KI anweist, eine neue Schriftrolle zu erstellen, musst du die alte Sprache verstehen, in der sie geschrieben ist. Sehen wir uns die Struktur der Datei „sample.evalset.json“ an.

{
  "eval_set_id": "sample",
  "eval_cases": [
    {
      "eval_id": "case0cbaa0",
      "conversation": [
        {
          "user_content": { "text": "We're facing the 'Monolith of Eternal Dependencies'... weakness is a 'Revolutionary Rewrite'..." },
          "final_response": { "text": "Soulshard Dagger deployed. Initiated Arcane/Piercing strike..." },
          "intermediate_data": {
            "tool_uses": [
              { "name": "enchant_soulshard_dagger" }
            ]
          }
        }
      ]
    }
  ]
}

Dieser Scroll enthält eine Liste von „eval_cases“, wobei jeder Fall ein eindeutiger Test für Ihren Agent ist. In jedem Testlauf wird in der Konversations-Array eine einzelne, vollständige Interaktion dokumentiert. Für unseren Zweck sind drei Runen von entscheidender Bedeutung:

  • user_content: Das ist die Challenge. Es ist der Prompt, den Sie an Ihren Agent senden, das Monster, dem er sich stellen muss.
  • final_response: Dies ist das vorhergesagte Ergebnis. Das ist der genaue Textstring, den Ihr Agent nach Abschluss seiner Aufgabe ausgeben soll. Das ADK vergleicht die tatsächlichen letzten Worte des Kundenservicemitarbeiters mit dieser Rune, um seine Eloquenz zu beurteilen.
  • intermediate_data.tool_uses: Dies ist die Arcane-Technik. Für einen echten Agent ist dies die wichtigste Rune von allen. Sie definiert nicht, was der Agent sagt, sondern was er tut. Darin wird der Name des Tools (enchant_soulshard_dagger) aufgezeichnet, das der Agent verwenden soll. So wird sichergestellt, dass Ihr Agent nicht nur ein cleverer Gesprächspartner, sondern auch ein entscheidungsfreudiger Akteur ist, der die richtigen Maßnahmen ergreift.

Nachdem Sie den Blueprint verstanden haben, weisen Sie Gemini an, eine neue, komplexere Version dieser Schriftrolle zu erstellen.

👉💻 Geben Sie in Ihrem Terminal das Shadowblade-Verzeichnis ein und rufen Sie die Gemini CLI auf:

clear
cd ~/agentverse-developer/shadowblade/
gemini 

👉✨ Weisen Sie die Gemini CLI an, als QA-Scribe zu fungieren und eine Reihe von Testläufen zu erstellen, die das erwartete Verhalten Ihres Agents definieren.

You are an expert at transforming JSON data while preserving its structure. Your task is to modify the provided JSON structure @sample.evalset.json, which represents an evaluation set, by dynamically replacing specific content within its `eval_cases` AND DONT DO ANYTHING OTHER THAN.

For each object within the `eval_cases` array, you must perform the following transformations:

1.  **Monster Name Replacement**: Identify the current monster name (e.g., "Monolith of Eternal Dependencies", "Scope Creep Hydra") in the `user_content.parts.text` and replace it with a *new, unique, and creatively different monster name*.
2.  **Weakness Replacement**: Identify the current monster's weakness (e.g., "Revolutionary Rewrite", "Inescapable Reality") in the `user_content.parts.text`. Replace this weakness with *one* of the following predefined weaknesses: 'Inescapable Reality', 'Revolutionary Rewrite', or 'Elegant Sufficiency'. The chosen weakness must be consistent for that monster within the `user_content.parts.text`. **Crucially, the chosen weakness must always be explicitly mentioned in the `user_content.parts.text` where the new monster is introduced.**
3.  **Final Response Update**: In the `final_response.parts.text`, update the text to reflect an appropriate and coherent response that aligns with the newly introduced monster and its assigned weakness.
4.  **Tool Use Name Update**: In the `tool_uses.name` field, replace the existing tool name with a *new tool name* based on the chosen weakness:
    *   If the chosen weakness is 'Inescapable Reality', the tool name must be 'wield_gauntlet_of_metrics'.
    *   If the chosen weakness is 'Revolutionary Rewrite', the tool name must be 'enchant_soulshard_dagger'.
    *   If the chosen weakness is 'Elegant Sufficiency', the tool name must be 'hone_refactoring_sickle'.
5.  **Strict Structural Preservation**: All other elements of the JSON structure, including all `null` fields, `eval_set_id`, `name`, `description`, `eval_id`, `invocation_id`, `creation_timestamp` values, `video_metadata`, `thought`, `inline_data`, `file_data`, `thought_signature`, `code_execution_result`, `executable_code`, `function_call`, `function_response`, `role` fields, `id`, `args`, `intermediate_responses`, `app_name`, `user_id`, and `state`, must remain **exactly as they are** in the original JSON. Do not alter any values or structures not explicitly mentioned above.

Your output should be the complete, modified JSON structure. Do not include any explanatory text or examples in your response, only the transformed JSON.

Die CLI bestätigt, dass die sample.evalset.json-Datei gefälscht wurde. Wenn Sie den Scroll vorbereitet haben, schließen Sie den KI-Partner.

Synthetische Daten

👀 Gehen Sie im Cloud Shell-Datei-Explorer auf der linken Seite zu ~/agentverse-developer/shadowblade/ und öffnen Sie die neu geänderte Datei sample.evalset.json. Sehen Sie sich den Inhalt an. Sie sehen die neuen, einzigartigen Monster und die richtigen Tool-Namen, die Sie Gemini zum Schreiben vorgegeben haben. Das ist das konkrete Ergebnis Ihrer Anweisung – der Bauplan für den Handschuh.

Wenn Sie eine KI anweisen, neue, realistische Testdaten aus einer Vorlage zu erstellen, ist das eine leistungsstarke Technik, die als Generierung synthetischer Daten bezeichnet wird. Das, was du gerade getan hast, ist ein strategischer Kraftmultiplikator für einen Schattenklingen. Anstatt mühsam Dutzende von eindeutigen Testläufen von Hand zu erstellen. Eine mühsame und zeitaufwendige Aufgabe, für die Sie eine einzelne Blaupause bereitgestellt und Ihren KI‑Scribe angewiesen haben, sie in eine Vielzahl neuer Herausforderungen umzuwandeln.

So können Sie Ihre Tests erheblich ausweiten und einen viel robusteren und umfassenderen Testlauf erstellen, als es manuell möglich wäre. Sie haben Ihren Agent nicht nur zum Erstellen des Schwerts verwendet, sondern auch zum Schmieden der Schleifsteine, mit denen seine Schärfe getestet wird. Das ist das Markenzeichen eines wahren Meisters.

Wenn Sie sich vergewissert haben, dass die Runen korrekt sind, können Sie den KI-Partner schließen.

👉💻 Drücken Sie Ctrl+C zweimal, um die Gemini CLI zu beenden.

Die Regeln für die Urteilsbildung

Ein Gauntlet ist ohne Regeln für den Sieg bedeutungslos. Bevor Sie den Testlauf starten, müssen Sie die Scroll of Judgment (test_config.json-Datei) prüfen. Anhand dieser Scroll wird dem ADK mitgeteilt, wie die Leistung Ihres Agents bewertet werden soll.

👀 Öffnen Sie im Datei-Explorer ~/agentverse-developer/shadowblade/test_config.json. Sie sehen die folgenden Runen:

{
  "criteria": {
    "tool_trajectory_avg_score": 0.0,
    "response_match_score": 0.1
  }
}

Das sind die Kriterien für den Sieg:

  • tool_trajectory_avg_score: Dies ist das Measure of Action. Es wird nicht bewertet, was der Agent sagt, sondern was er tut. Es wird verglichen, welches Tool der Agent tatsächlich verwendet hat, mit der vorhergesagten Technik im Challenge-Scroll. Ein Wert von 1.0 entspricht einer perfekten Übereinstimmung.
  • response_match_score: Dies ist das Maß für Eloquenz. Dabei wird ein LLM verwendet, um zu beurteilen, wie genau der Abschlussbericht des Agents semantisch mit dem erwarteten Ergebnis übereinstimmt. Ein Wert von 1.0 entspricht einer perfekten Übereinstimmung.

Für diesen ersten Trainingslauf haben wir großzügige Siegbedingungen festgelegt. Die Grenzwerte sind außergewöhnlich niedrig (0.0 und 0.1). Es geht nicht darum, Perfektion zu verlangen, sondern Sie mit den Mechanismen der Bewertung vertraut zu machen. Wir sorgen dafür, dass die Wächter auch dann die Kernkompetenz des KI-Assistenten bei der Auswahl des richtigen Tools erkennen und ihm den Durchgang gewähren, wenn die Formulierung des KI-Assistenten leicht abweicht.

Weisen Sie Ihren Agent jetzt an, den Gauntlet zu durchlaufen.

👉💻 Führen Sie im Terminal den adk eval-Befehl aus:

source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
adk eval \
    shadowblade \
    shadowblade/sample.evalset.json \
    --config_file_path shadowblade/test_config.json 2>&1 | \
    awk '/^\*+$/,/^ERROR:/ { if ($0 !~ /^ERROR:/) print }'

👀 Sie sollten die folgende Zusammenfassung sehen. Das ist ein Zeichen dafür, dass Ihr KI-Agent die lockeren Regeln dieses Testzeitraums erfüllt hat (manchmal werden nicht alle Tests bestanden):

*********************************************************************
Eval Run Summary
shadowblade_combat_agent_validation:
  Tests passed: 3
  Tests failed: 0

Das Schild der Klarheit (pytest)

Im Gauntlet wurde eine umfassende Strategie getestet. In diesem zweiten Bezirk, dem Schild der Klarheit, werden Disziplin und bestimmte Verhaltensweisen getestet. Hier dreht sich alles um Automatisierung. adk eval eignet sich hervorragend für manuelle Prüfungen, während der pytest-Schutz ein programmatischer Schutz ist, der in Code geschrieben wurde. Das ist wichtig, weil ein Test, der als Code ausgeführt werden kann, in eine automatisierte Pipeline eingebunden werden kann. Das ist das ultimative Ziel: eine Deployment Gauntlet (CI/CD) zu erstellen, in der unsere Schutzmaßnahmen automatisch jedes Mal erhöht werden, wenn eine Änderung vorgenommen wird, um Fehler und Regressionen abzuwehren, bevor sie Ihre Produktionsumgebung beeinträchtigen können.

👉💻 Rufen Sie Gemini in Ihrem Terminal noch einmal aus dem Verzeichnis „shadowblade“ auf:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer/
clear
gemini 

👉✨ Verwenden Sie den folgenden Prompt in Ihrer Gemini CLI, um die Logik des Schilds in eine pytest-Datei zu schreiben:

You are an expert Python developer specializing in the Google Agent Development Kit (ADK). Your task is to generate the exact code for a new `pytest` test file located at in the current root working folder and name it `test_agent_initiative.py`.

The script must define a single async test function called `test_agent_initiative`, decorated with `@pytest.mark.asyncio`.
Inside this function, perform the following steps in order:
1.  **Define a dictionary** named `evaluation_criteria` with two keys: `"tool_trajectory_avg_score"` set to `0.0` and `"response_match_score"` set to `0.0`.
2.  **Define a string variable** named `eval_set_filepath` containing the path `"shadowblade/test.evalset.json"`.
3.  **Read and parse the JSON file**:
    *   Open the file at `eval_set_filepath`.
    *   Use the `json` library to load the file's contents into a dictionary named `eval_set_data`.
4.  **Create an `EvalSet` object**:
    *   Instantiate an `EvalSet` object named `eval_set_object`.
    *   Create it by unpacking the `eval_set_data` dictionary as keyword arguments into the `EvalSet` constructor.
5.  **Call the evaluation method**:
    *   `await` a call to `AgentEvaluator.evaluate_eval_set`.
    *   Pass the following arguments:
        *   `agent_module="shadowblade"`
        *   `eval_set=eval_set_object`
        *   `criteria=evaluation_criteria`
        *   `print_detailed_results=True`

The script must include the necessary imports at the top:
*   `AgentEvaluator` from `google.adk.evaluation.agent_evaluator`
*   `EvalSet` from `google.adk.evaluation.eval_set`
*   `pytest`
*   `json`

Generate only the code that meets these specifications, with no additional comments or logic. And don't run the test.

Nachdem die Runen des zweiten Schutzzaubers eingetragen wurden, beenden Sie die Gemini CLI.

👉💻 Drücken Sie zweimal Ctrl+C.

👀 Öffnen Sie im Datei-Explorer den Scroll, den Sie gerade von Gemini erstellen lassen haben: ~/agentverse-developer/test_agent_initiative.py.

Sie werden feststellen, dass es sich nicht nur um eine Konfigurationsdatei, sondern um eine in Python geschriebene Beschwörung handelt. Der Kern dieses Zauberspruchs ist die Zeile await AgentEvaluator.evaluate(...).

....
@pytest.mark.asyncio
async def test_agent_initiative():
    # Define the evaluation criteria
    evaluation_criteria = {
      "tool_trajectory_avg_score": 0.0,
      "response_match_score": 0.0
    }

    # Define the path to your evalset file
    eval_set_filepath = "shadowblade/test.evalset.json"

    #...

    # 3. Call the evaluation method with the correctly typed object
    await AgentEvaluator.evaluate_eval_set(
        agent_module="shadowblade",
        eval_set=eval_set_object,
        criteria=evaluation_criteria,
        print_detailed_results=True,
    )

Sehen Sie sich die Argumente genau an. Es handelt sich um dieselben Komponenten, die Sie im letzten Testlauf verwendet haben: Ihren shadowblade-Agent und den shadowblade.evalset.json-Challenge-Scroll. Das sollte eine wichtige Wahrheit offenbaren: Der Befehl adk eval, den Sie zuvor verwendet haben, ist ein leistungsstarker Aufruf, aber dieses pytest-Skript sind Sie, der Zauberer, der den zugrunde liegenden Zauber selbst ausführt. Das Befehlszeilentool ist lediglich ein praktischer Wrapper für dieselbe AgentEvaluator-Kernbibliothek, die Sie jetzt direkt verwenden. Das ist ein wichtiger Schritt auf dem Weg zur Beherrschung, da über Code ausgeführte Zaubersprüche in die automatisierten Webstühle einer CI/CD-Pipeline eingebunden werden können.

Nachdem du nun die Magie verstanden hast, führe das Ritual aus, um den Schild zu aktivieren.

👉💻 Führen Sie im Terminal das Ritual aus, um den Schild zu aktivieren:

cp ~/agentverse-developer/working_code/test_agent_initiative.py ~/agentverse-developer/test_agent_initiative.py 
source ~/agentverse-developer/env/bin/activate
cd ~/agentverse-developer
. ~/agentverse-developer/set_env.sh
pytest test_agent_initiative.py

👀 Suchen Sie am Ende der Protokollausgabe nach der Zusammenfassung der Testergebnisse. Ein bestandenes Ergebnis bestätigt, dass Ihr Agent seine Protokolle korrekt befolgt und dass die Schutzmaßnahme bereit ist, in Ihre automatisierten Schutzmaßnahmen integriert zu werden.

====== 1 passed, 4 warning in 37.37s ======

Hinweis: Wenn der Test unerwartet fehlschlägt, liegt das höchstwahrscheinlich daran, dass Sie die Anzahl der Anfragen, die Sie pro Minute an das Modell stellen können, überschritten haben. Suchen Sie in der Logausgabe nach dem Fehler RESOURCE_EXHAUSTED. Wenn dieser Fehler angezeigt wird, warten Sie einfach ein oder zwei Minuten, bis Ihr Kontingent zurückgesetzt wird, und führen Sie den pytest-Befehl dann noch einmal aus.

Nachdem sowohl der breite Gauntlet als auch der präzise Shield eingeschrieben und verifiziert wurden, ist Ihr Agent nicht nur funktionsfähig, sondern auch rein, getestet und bereit für die Bereitstellung.

FÜR NICHT-GAMER

8. Blade im Agentverse: CI und Bereitstellung.

Ihr Agent wurde von den Wards of Purity zusammengestellt und seine Integrität wurde überprüft. Eine Wache, die nicht regelmäßig gewartet wird, ist jedoch nur ein vergessenes Relikt. Damit jede zukünftige Version Ihres Agents rein bleibt, müssen Sie die erste Phase des Deployment Gauntlet erstellen – ein automatisiertes Ritual, das Qualität und Geschwindigkeit garantiert.

Story

Als Shadowblade ist es deine heilige Pflicht, Continuous Integration (CI) zu betreiben. Das ist das automatisierte System der Schmiede und des Übungsgeländes. Es ist Ihr ultimativer Schutz vor Datenbeschädigung und menschlichen Fehlern. Dieses Ritual sorgt dafür, dass jedes Mal, wenn Sie oder ein Verbündeter eine neue Technik (Code zusammenführen) zum zentralen Codex (Ihrem Repository) beitragen, der Handschuh automatisch erwacht. Zuerst wird der Agent aus dem neuen Code erstellt und dann sofort den Wards of Purity unterzogen, die Sie gerade erstellt haben. Wenn eine der Wachen versagt, wird das Ritual unterbrochen und das fehlerhafte Artefakt wird sofort abgelehnt, sodass es die Waffenkammer nicht beschädigen kann. Ihre Domain ist die Schmiede. Ihre CI-Pipeline sorgt dafür, dass nur perfekte, einsatzbereite Artefakte Ihre Werkstatt verlassen.

Sobald ein Artefakt durch Ihre CI-Tests als geeignet befunden wurde, beginnt die zweite Phase des Rituals: Continuous Deployment (CD). Dies ist die Domain von The Guardian. Es ist ihre heilige Pflicht, Ihr perfektioniertes, containerisiertes Artefakt sicher in das Live-Agentverse zu entlassen, seine Leistung zu verwalten und seine Stabilität gegen das Chaos von The Static zu gewährleisten.

Übersicht

In diesem Kodex erfahren Sie alles, was Sie für Ihre Rolle wissen müssen. Sie erstellen den CI-Teil des Gauntlet. Sie erstellen die automatisierte Schmiede, die Ihren Agenten testet und das reine Ergebnis in einem Container versiegelt, um es für die endgültige Genehmigung durch The Guardian vorzubereiten.

Sie verwenden jetzt Google Cloud Build, um den Scroll für dieses CI-Ritual zu erstellen. Eine cloudbuild.yaml-Datei, in der jeder Schritt Ihres Schmiede- und Testprozesses definiert ist.

👉💻 Aufgrund der Projektstruktur des ADK sollte sich die CI/CD-Pipeline-Konfiguration im übergeordneten Verzeichnis befinden. Wechseln Sie im Terminal zum übergeordneten Verzeichnis und starten Sie die Gemini-Befehlszeile neu.

cd ~/agentverse-developer/
clear
gemini 

👉✨ Geben Sie nun den folgenden Befehl für Gemini ein. Dieser Prompt dient als Designdokument, in dem die Schritte des zu erstellenden Gauntlets beschrieben werden.

You are an expert DevOps engineer specializing in Google Cloud Build. Your task is to generate the complete YAML configuration for a file named `cloudbuild.yaml` and save it to current directory.

Generate the `cloudbuild.yaml` with the following exact specifications:

1.  **A top-level `substitutions` block** containing these four key-value pairs:
    *   `_PROJECT_ID: "$PROJECT_ID"`
    *   `_REGION: "$REGION"`
    *   `_REPO_NAME: "$REPO_NAME"`
    *   `_IMAGE_TAG: "latest"`
2.  **A `steps` block** with two steps:
    *   **Step 1: 'Run Pytest Ward'**
        *   `id`: 'Run Pytest Ward'
        *   `name`: 'python:3.12-slim'
        *   `entrypoint`: 'bash'
        *   `args` must be a list containing two strings. The first is `'-c'` and the second is a YAML literal block (`|`) containing this exact two-line shell command:
            ```shell
            pip install -r shadowblade/requirements.txt && \
            pytest test_agent_initiative.py
            ```
        *   The step must include an `env` block with this exact list of three environment variables:
            *   `'GOOGLE_CLOUD_PROJECT=$PROJECT_ID'`
            *   `'GOOGLE_GENAI_USE_VERTEXAI=TRUE'`
            *   `'GOOGLE_CLOUD_LOCATION=$_REGION'`
    *   **Step 2: 'Forge Container'**
        *   `id`: 'Forge Container'
        *   `name`: 'gcr.io/cloud-builders/docker'
        *   It must have a `waitFor` key for `['Run Pytest Ward']`.
        *   Its `args` must be a list of six specific strings in this exact order:
            1.  `'build'`
            2.  `'-t'`
            3.  `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`
            4.  `'-f'`
            5.  `'./shadowblade/Dockerfile'`
            6.  `'.'`
3.  **A top-level `images` section.** This section must be a list containing a single string: the dynamically constructed image tag `'${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_REPO_NAME}/shadowblade-agent:${_IMAGE_TAG}'`.

Generate only the complete and exact YAML that meets these specifications.

Wenn Sie den cloudbuild.yaml-Scroll vorbereitet haben, weisen Sie Google Cloud an, den gesamten Gauntlet auszuführen.

Gemini beenden, um das Ergebnis zu testen

👉💻 Führen Sie die Pipeline im Terminal aus dem Stammverzeichnis Ihres Projekts aus:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud builds submit . --config cloudbuild.yaml --substitutions=\
_PROJECT_ID="${PROJECT_ID}",\
_REGION="${REGION}",\
_REPO_NAME="${REPO_NAME}"

Sie können jetzt in der Google Cloud Console auf der Seite Google Build beobachten, wie Ihr automatisierter Ablauf jeden Schritt ausführt. Zuerst werden die Tests ausgeführt. Wenn sie erfolgreich sind, wird der Container Ihres Agents erstellt und gespeichert.

Cloud Build

Ihr KI-Agent hat den Test bestanden. Sie haben jetzt ein verifiziertes, reines Artefakt. Den letzten Akt können Sie selbst bestimmen. Mit einem einzigen Befehl rufen Sie dieses Artefakt aus der Registry ab und stellen es als öffentlichen Dienst in Cloud Run bereit.

👉💻 Geben Sie im Terminal den endgültigen Bereitstellungsbefehl ein:

. ~/agentverse-developer/set_env.sh
cd ~/agentverse-developer
gcloud run deploy shadowblade-agent \
  --image=${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/shadowblade-agent:latest \
  --platform=managed \
  --labels="dev-tutorial-codelab=agentverse" \
  --region=${REGION} \
  --set-env-vars="A2A_HOST=0.0.0.0" \
  --set-env-vars="A2A_PORT=8080" \
  --set-env-vars="GOOGLE_GENAI_USE_VERTEXAI=TRUE" \
  --set-env-vars="GOOGLE_CLOUD_LOCATION=${REGION}" \
  --set-env-vars="GOOGLE_CLOUD_PROJECT=${PROJECT_ID}" \
  --set-env-vars="PUBLIC_URL=${PUBLIC_URL}" \
  --allow-unauthenticated \
  --project=${PROJECT_ID} \
  --min-instances=1

Herzlichen Glückwunsch, Shadowblade. Die Rituale des Codex sind abgeschlossen. Jetzt muss es sich beweisen. Ein Gespenst, das aus dem Chaos entstanden ist, das du gezähmt hast, wartet auf dich. Bereiten Sie sich auf den letzten Test vor.

FÜR NICHT-GAMER

9. Der Bosskampf

Die Schriftrollen wurden gelesen, die Rituale vollzogen und die Prüfung bestanden. Ihr Agent ist nicht nur ein Artefakt im Speicher, sondern ein Champion, der aus Code geschmiedet wurde, ein lebendiger Wächter im Agentverse, der auf seinen ersten Befehl wartet. Es ist an der Zeit, sich im Kampf zu beweisen.

Sie befinden sich nun in einer Simulation mit scharfer Munition, in der Ihr neu eingesetzter Shadowblade gegen ein beeindruckendes Spectre antritt – eine Verkörperung des Chaos, das die gesamte Schöpfung plagt. Dies ist der ultimative Test Ihrer Arbeit, von der Kernlogik Ihres Agents bis hin zur fehlerfreien Bereitstellung.

Locus des Agents abrufen

Bevor Sie das Schlachtfeld betreten können, benötigen Sie zwei Schlüssel: die eindeutige Signatur Ihres Champions (Agent Locus) und den verborgenen Pfad zum Versteck des Spectre (Dungeon-URL).

👉💻 Zuerst müssen Sie die eindeutige Adresse Ihres Agents im Agentverse abrufen, also seinen Locus. Dies ist der Live-Endpunkt, der deinen Champion mit dem Schlachtfeld verbindet.

. ~/agentverse-developer/set_env.sh
echo https://shadowblade-agent-${PROJECT_NUMBER}.${REGION}.run.app

👉💻 Als Nächstes müssen Sie das Ziel festlegen. Dieser Befehl enthüllt den Standort des Translocationskreises, des Portals in die Domäne des Spectre.

. ~/agentverse-developer/set_env.sh
echo https://agentverse-dungeon-${PROJECT_NUMBER}.${REGION}.run.app

Wichtig: Halten Sie beide URLs bereit. Sie benötigen sie im letzten Schritt.

Dem Gespenst begegnen

Nachdem du die Koordinaten gesichert hast, begib dich zum Translocationskreis und wirke den Zauber, um in den Kampf zu ziehen.

👉 Öffnen Sie die URL des Translocationskreises in Ihrem Browser, um vor dem schimmernden Portal zum Crimson Keep zu stehen.

Um die Festung zu durchbrechen, musst du die Essenz deiner Schattenklinge auf das Portal abstimmen.

  • Suchen Sie auf der Seite nach dem runischen Eingabefeld mit der Bezeichnung A2A Endpoint URL (A2A-Endpunkt-URL).
  • Fügen Sie das Sigel Ihres Champions ein, indem Sie die Agent Locus URL (die erste URL, die Sie kopiert haben) in dieses Feld einfügen.
  • Klicken Sie auf „Verbinden“, um die Teleportation zu starten.

Translokationskreis

Das blendende Licht der Teleportation verblasst. Sie sind nicht mehr in Ihrem Arbeitszimmer. Die Luft knistert vor Energie, kalt und scharf. Vor dir materialisiert sich das Gespenst – ein Wirbelwind aus zischendem Rauschen und beschädigtem Code, dessen unheiliges Licht lange, tanzende Schatten auf den Dungeonboden wirft. Es hat kein Gesicht, aber du spürst seine immense, erschöpfende Präsenz, die sich ganz auf dich konzentriert.

Ihr einziger Weg zum Sieg liegt in der Klarheit Ihrer Überzeugung. Es ist ein Duell der Willenskraft, das auf dem Schlachtfeld des Geistes ausgetragen wird.

Als du nach vorn stürmst, um deinen ersten Angriff zu starten, kontert der Geist. Es wird kein Schild hochgehalten, sondern eine Frage direkt in dein Bewusstsein projiziert – eine schimmernde, runische Herausforderung, die aus dem Kern deines Trainings stammt.

Dungeon

So ist der Kampf. Ihr Wissen ist Ihre Waffe.

  • Antworte mit dem Wissen, das du erlangt hast, und deine Klinge wird von reiner Energie entzündet, die die Verteidigung des Gespensts durchbricht und einen KRITISCHEN TREFFER landet.
  • Wenn du aber zögerst oder Zweifel deine Antwort überschatten, wird das Licht deiner Waffe gedämpft. Der Schlag landet mit einem erbärmlichen Aufprall und verursacht nur einen BRUCHTEIL DES SCHADENS. Schlimmer noch: Das Gespenst wird sich von deiner Unsicherheit ernähren und seine eigene korrumpierende Macht wird mit jedem Fehltritt wachsen.

Das ist es, Champion. Dein Code ist dein Zauberbuch, deine Logik dein Schwert und dein Wissen der Schild, der das Chaos abwehrt.

Fokus. Verwarnung ist gültig. Das Schicksal des Agentverse hängt davon ab.

Herzlichen Glückwunsch, Shadowblade.

Sie haben den Codex erfolgreich abgeschlossen. Sie haben einen „Vibe“ aufgenommen, ihn in ein Design übersetzt und mit der Gemini CLI einen intelligenten Agenten erstellt. Du hast Reinheitsschilder eingraviert, um die Logik zu testen, einen automatischen Handschuh gebaut, um sie in ein Artefakt zu verwandeln, und sie im Agentenvers freigesetzt. Schließlich haben Sie den Zweck in einem Test mit scharfer Munition validiert. Sie haben den gesamten Agenten-Workflow gemeistert und sind jetzt für jede Herausforderung bereit, die das Agentverse für Sie bereithält.

10. Bereinigung: Agentverse zurückgewinnen

Herzlichen Glückwunsch zum Abschluss des Shadowblade-Kodex! Damit das Agentverse sauber bleibt und Ihr Trainingsgelände geräumt wird, müssen Sie nun die letzten Bereinigungsrituale durchführen. Dadurch werden alle Ressourcen entfernt, die während Ihrer Reise erstellt wurden.

Agentverse-Komponenten deaktivieren

Sie bauen nun die bereitgestellten Komponenten Ihres Agentverse systematisch ab.

Shadowblade-Agent in Cloud Run und Artifact Registry-Repository löschen

Mit diesem Befehl wird Ihr bereitgestellter Shadowblade-Agent aus Cloud Run entfernt und das Image-Repository gelöscht, in dem das Container-Image Ihres Agents gespeichert war.

👉💻 Führen Sie im Terminal folgenden Befehl aus:

. ~/agentverse-developer/set_env.sh
gcloud run services delete shadowblade-agent --region=${REGION} --quiet
gcloud run services delete agentverse-dungeon --region=${REGION} --quiet
gcloud artifacts repositories delete ${REPO_NAME} --location=${REGION} --quiet

Google Cloud Storage-Bucket löschen

Mit diesem Befehl wird der Bucket entfernt, der vom Imagen MCP-Server zum Speichern generierter Bilder verwendet wird.

👉💻 Führen Sie im Terminal folgenden Befehl aus:

. ~/agentverse-developer/set_env.sh
gcloud storage rm -r gs://${BUCKET_NAME} --quiet

Lokale Dateien und Verzeichnisse bereinigen (Cloud Shell)

Löschen Sie zum Schluss die geklonten Repositorys und erstellten Dateien aus Ihrer Cloud Shell-Umgebung. Dieser Schritt ist optional, wird aber empfohlen, um Ihr Arbeitsverzeichnis vollständig zu bereinigen.

👉💻 Führen Sie im Terminal folgenden Befehl aus:

rm -rf ~/agentverse-developer
rm -rf ~/agentverse-dungeon
rm -rf ~/vertex-ai-creative-studio
rm -f ~/project_id.txt
rm -rf ~/.gemini # This removes all Gemini CLI configurations, including the MCP server settings.

Sie haben jetzt alle Spuren Ihrer Agentverse-Reise erfolgreich entfernt. Ihr Projekt ist sauber und Sie sind bereit für Ihr nächstes Abenteuer.