1. Übersicht
In diesem Codelab erfahren Sie, wie Sie die Agents CLI verwenden, um den gesamten lokalen Entwicklungszyklus eines KI-Agenten zu steuern. Ganz gleich, ob Sie vorhandene Gemini-Modelle einbinden oder benutzerdefinierte Agents mit dem Agent Development Kit (ADK 2.0) von Grund auf neu erstellen – die Agents CLI bietet die Tools, mit denen Sie Ihre Agents lokal erstellen, linten und testen können.
Lerninhalte
- So installieren und richten Sie
agents-cliund die zugehörigen Skills ein. - So erstellen Sie ein neues Agent-Projekt.
- Die Struktur und die wichtigsten Dateien eines ADK 2.0-Agentenprojekts für Graph-Workflows.
- Automatisierte Linting- und Codebereinigungen ausführen
- So starten und verwenden Sie die lokale Web-Playground-Umgebung für interaktive Tests mit automatischem Neuladen.
Voraussetzungen
- Python 3.11 oder höher
- uv-Paketmanager
- Node.js 18+ (bei Verwendung von KI-Agenten-Skills)
- Antigravity IDE (über Google Antigravity installieren und konfigurieren)
Vorbereitung
In diesem Codelab wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:
- Mit einem Terminal und einer Befehlszeile
Es sind keine Vorkenntnisse in Bezug auf KI-Agents oder ADK 2.0 erforderlich.
2. Authentifizierung und Umgebung einrichten
Geben Sie Ihre Anmeldedaten zur Authentifizierung an, damit der Agent Gemini-Modelle aufrufen kann.
Option 1: Gemini API-Schlüssel (Google AI Studio)
Wenn Sie einen Standard-Gemini API-Schlüssel verwenden, den Sie in Google AI Studio erhalten können, exportieren Sie ihn in der IDE-Terminalsitzung:
export GEMINI_API_KEY="your_api_key_here"
export GOOGLE_GENAI_USE_ENTERPRISE=FALSE
Option 2: Standardanmeldedaten für Google Cloud-Anwendungen
Wenn Sie Vertex AI in Google Cloud verwenden, authentifizieren Sie sich mit den Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) und legen Sie Ihr aktives Google Cloud-Projekt fest:
gcloud auth application-default login
gcloud config set project <YOUR_PROJECT_ID>
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
export GOOGLE_CLOUD_PROJECT=REPLACE-WITH-YOUR-PROJECT_ID # Replace with your project ID
export GOOGLE_CLOUD_LOCATION=REPLACE-WITH-LOCATION # Replace the location
3. Agents CLI und Skills einrichten
Installieren Sie zuerst das agents-cli-Tool. Dieses Tool übernimmt die anspruchsvolle Aufgabe der Verwaltung von Agent-Projekten.
Führen Sie nach der Installation von Antigravity den Einrichtungsbefehl direkt im Terminal aus.
👉 Öffnen Sie ein Terminal und führen Sie Folgendes aus:
uvx google-agents-cli setup
Mit diesem Befehl wird Folgendes automatisch installiert:
- Das Agents CLI-Tool global auf Ihrem System.
- Sieben domänenspezifische Fähigkeiten des Programmierassistenten, die Antigravity nutzen kann, um Sie beim Erstellen, Gerüstbau, Bewerten und Bereitstellen von Agents zu unterstützen. Diese Skills werden einmal global in
~/.agents/skills/installiert und automatisch von Antigravity erkannt.
Hinweis: Skills werden in ~/.agents/skills/ installiert und automatisch von Antigravity erkannt. Sie können dies mit dem Befehl /skills oder in den Antigravity-Einstellungen prüfen.
Erwartete Ausgabe (gekürzt):
█▀█ █▀▀ █▀▀ █▄ █ ▀█▀ █▀ █▀▀ █ █`
`█▀█ █▄█ ██▄ █ ▀█ █ ▄█ █▄▄ █▄ █`
`Your coding agent just got an upgrade.`
`1. Authentication`
`─────────────────`
`✓ Authenticated with Google Cloud`
`2. CLI Installation`
`───────────────────`
`▸ uv tool install google-agents-cli`
`✓ Installed google-agents-cli`
`3. Skills Installation`
`──────────────────────`
`▸ npx -y skills add https://github.com/google/agents-cli -y --all -g`
`◇ Found 7 skills`
`~/.agents/skills/google-agents-cli-adk-code`
`~/.agents/skills/google-agents-cli-deploy`
`~/.agents/skills/google-agents-cli-eval`
`~/.agents/skills/google-agents-cli-observability`
`~/.agents/skills/google-agents-cli-publish`
`~/.agents/skills/google-agents-cli-scaffold`
`~/.agents/skills/google-agents-cli-workflow`
4. Projekt für KI-Agenten erstellen
In diesem Abschnitt erstellen Sie mit der Prototypvorlage ein vollständig strukturiertes Projektverzeichnis.
👉 Antigravity-Prompt:
Use ADK 2.0 to create a new graph workflow agent project called
customer-support-agent. I don't want to deploy this agent, so you can skip
the deployment files. The workflow should act as a customer support
representative for a shipping company. It should first classify if the user
query is related to shipping (rates, tracking, delivery, returns) or
unrelated. If it is related to shipping, route to a shipping FAQ agent to
answer the question. If it is unrelated, route to a node that politely
declines to answer.
Antigravity führt den Scaffolding-Befehl (agents-cli scaffold create customer-support-agent --prototype --yes) automatisch aus und richtet die Projektdateien für Sie ein.
5. Agent-Code ansehen
👉 Antigravity bitten, den generierten Code zu erklären:
Read and explain the project structure of my new agent project. Walk me
through how `app/agent.py` is configured, highlighting the role of the
tools, nodes, edges, and the root Workflow.
In der Antigravity IDE werden neu erstellte Projektdateien und Artefakte direkt im Hilfsbereich (links) angezeigt. Sie können app/agent.py dort ansehen oder über den Datei-Explorer der IDE öffnen, um den generierten Code zu untersuchen.
# app/agent.py
from __future__ import annotations
from typing import Any, Literal
from google.adk.agents.context import Context
from google.adk.apps.app import App
from google.adk.events.event import Event
from google.adk.workflow import Edge
from google.adk.workflow import Workflow
from google.adk.workflow.agents.llm_agent import LlmAgent
from google.adk.workflow.node import node
from pydantic import BaseModel
from pydantic import Field
class InquiryCategory(BaseModel):
category: Literal['shipping', 'unrelated'] = Field(
description=(
'Determine if the user query is related to shipping (rates, tracking,'
' delivery times, returns) or unrelated.'
)
)
def save_query(node_input: str):
"""Saves user query in state for downstream nodes."""
yield Event(data=node_input, state={'user_query': node_input})
categorize_agent = LlmAgent(
name='categorize',
model='gemini-3.1-flash-lite',
instruction='You are an expert classifier. Categorize the user query.',
output_key='inquiry_category',
output_schema=InquiryCategory,
)
@node
def route_inquiry(ctx: Context, node_input: Any):
"""Routes the workflow based on the classified category."""
category_data = ctx.state.get('inquiry_category', {})
category = category_data.get('category', 'unrelated')
query = ctx.state.get('user_query', '')
yield Event(data=query, route=category)
faq_agent = LlmAgent(
name='shipping_faq',
model='gemini-3.1-flash-lite'',
instruction="""You are a customer support representative for a shipping company. Answer user questions based ONLY on the shipping FAQ below. Do not answer questions outside of the FAQ.
SHIPPING FAQ:
- Rates: Standard shipping is $5.99. Express shipping is $12.99. Orders
over $50 qualify for free standard shipping.
- Tracking: You can track your order by entering your tracking number on
our website's tracking page.
- Delivery Times: Standard delivery takes 3-5 business days. Express
delivery takes 1-2 business days.
- Returns: We offer free returns within 30 days of delivery. Please make
sure the item is in its original condition.
""",
)
@node
def handle_unrelated(ctx: Context, node_input: Any):
"""Handles unrelated inquiries politely."""
yield Event(
data=(
'I am sorry, I am a shipping customer support assistant and can only'
' answer questions related to our shipping FAQ.'
)
)
root_agent = Workflow(
name='customer_support_workflow',
edges=[
*Edge.chain('START', save_query, categorize_agent, route_inquiry),
(route_inquiry, faq_agent, 'shipping'),
(route_inquiry, handle_unrelated, 'unrelated'),
],
)
app = App(
name='customer_support_agent',
root_agent=root_agent,
)
Schlüsselkonzepte
- Workflow und Edges: In ADK 2.0 werden Agent-Anwendungen als Diagramm mit
Workfloworchestriert. Die Listeedgesdefiniert den Ausführungsablauf, indem Knoten ausSTARTverkettet werden und bedingte Verzweigungen basierend auf Routen ermöglicht werden (z.B. Routing zufaq_agentbei"shipping"oderhandle_unrelatedbei"unrelated"). - LlmAgent: Deklarative Knoten, die LLM-basierte Aufgaben mit spezifischen Anweisungen, Modellen und strukturierten Ausgaben (
output_schema) definieren. - Knoten und Kontext: Mit
@nodedekorierte Python-Funktionen (oder Standardfunktionen), die Logik ausführen, überContextauf den Ausführungsstatus zugreifen undEvent-Objekte ausgeben, um Daten und Routing-Signale entlang des Diagramms zu übergeben. - Modell: „gemini-3.1-flash-lite“ wird als schnelles Standardmodell für Schlussfolgerungen verwendet.
- App-Wrapper: Das
App-Objekt der obersten Ebene umschließt den Stamm-Workflow. Externe Tools wie die lokale Playground-Umgebung, ADK-Bewertungstools und die Agent Runtime erkennen und führen Ihren Workflow über diese standardisierteapp-Schnittstelle aus.
6. Automatisierte Linting-Funktion
Bevor Sie Ihren Agent ausführen oder testen, sollten Sie sicherstellen, dass Ihr Code sauber und korrekt formatiert ist.
👉 Antigravity-Prompt:
Run linting on my agent project to verify its health.
Antigravity führt agents-cli lint im Hintergrund aus, um vorkonfigurierte Prüfungen durchzuführen und Importe, Syntax und Formatierung in Ihren Dateien zu überprüfen.
7. Interaktive Tests mit dem Playground
Die lokale Web-Playground ist die schnellste Möglichkeit, das Verhalten Ihres Agents zu überprüfen. Sie bietet eine interaktive Chat-Oberfläche, über die Sie mit Ihrem KI-Agenten chatten und Tool-Ausführungen in Echtzeit prüfen können.
👉 Antigravity-Prompt:
Launch the local development playground for my agent.
Antigravity startet den lokalen Entwicklungsserver (agents-cli playground). Öffnen Sie die angegebene URL (in der Regel http://127.0.0.1:8080/dev-ui/?app=app) in Ihrem Webbrowser und wählen Sie im Drop-down-Menü den Ordner app aus, um mit Ihrem Agent zu chatten.
Chatten Sie mit Ihrem KI-Agenten über die Weboberfläche. Versuche es mit einer Frage zum Versand:
How much is standard shipping?
Der Workflow kategorisiert und leitet die Anfrage erfolgreich an faq_agent weiter, damit sie beantwortet werden kann. Stellen Sie außerdem eine Frage, die nicht mit dem Thema zusammenhängt, um zu prüfen, ob der Workflow zu handle_unrelated weitergeleitet wird und die Antwort korrekt abgelehnt wird:
What is the weather like?
Automatisches Aufladen in Echtzeit testen
Sie können sehen, wie sich Echtzeitbearbeitungen Ihres Agents im Playground auswirken.
- Ändern Sie die
faq_agent-Anweisung inapp/agent.py, indem Sie Antigravity fragen:Modify the faq_agent instruction in app/agent.py to make the shipping rates response more playful and enthusiastic. Add some emojis and highlight the free shipping threshold. - Senden Sie eine neue Nachricht an den Agenten im Playground, um das automatische Neuladen zu testen:
Die Playground-Umgebung wird automatisch neu geladen und der aktualisierte Code wird in Echtzeit ausgeführt, ohne dass ein Serverneustart erforderlich ist. In der Antwort sollten jetzt einige Emojis angezeigt werden.How much is standard shipping?
8. Ausführung über die Befehlszeile
Für schnelle Tests, Automatisierung oder Scripting können Sie Antigravity bitten, Ihren Agent direkt über das Terminal auszuführen.
👉 Antigravity-Prompt:
Run a CLI query asking my agent how long standard delivery takes.
Antigravity führt den Abfragebefehl (agents-cli run "How long does standard delivery take?") aus. Dadurch wird eine schnelle Inferenz in einem einzelnen Durchgang ausgeführt und die endgültige Antwort des Agents zusammen mit den Details zur Tool-Ausführung ausgegeben.
9. Bereinigen
So vermeiden Sie, dass unerwünschte Ressourcen in Ihrer lokalen Umgebung verbleiben: Führen Sie die folgenden Bereinigungsschritte aus:
- Lokale Server beenden: Wenn Ihr
agents-cli playground-Server noch ausgeführt wird, beenden Sie ihn im Terminal, indem SieCtrl + Cdrücken. - Lokale Projektdateien entfernen: Löschen Sie das Gerüstverzeichnis des Agent-Projekts von Ihrem lokalen Computer.
rm -rf customer-support-agent
10. Zusammenfassung und nächste Schritte
Glückwunsch! Sie haben den gesamten lokalen Entwicklungszyklus eines KI-Agenten mit der Agents CLI und dem ADK 2.0 verwaltet.
Das haben Sie gelernt
- Tools einrichten: Sie haben die Agents CLI installiert und domänenspezifische Workflow-Skills für Antigravity konfiguriert.
- Projektgerüst erstellt: Ein vollständig strukturiertes
customer-support-agent-Projekt mithilfe von standardisierten Vorlagen erstellt. - Analyzed ADK 2.0 Structure: Graph-Workflows, LLM-Agents, Knoten, Kanten und bedingtes Routing.
- Managed Local Health: Es wurden automatisierte Codequalitätsprüfungen mit
agents-cli lintdurchgeführt. - Bestätigtes Verhalten: Der Agent wurde interaktiv mit Hot-Reloading in Echtzeit über die Playground-Umgebung getestet und es wurden Schnelltests über die Befehlszeile ausgeführt.
Wie geht es weiter?
Nachdem Sie den lokalen Entwicklungszyklus gemeistert haben, können Sie Ihren Agenten so erweitern und für die Produktion vorbereiten:
- Bewertung: Bewerten Sie Ihren Agent anhand eines Evalsets mit
agents-cli eval run, um die Genauigkeit zu messen und Regressionen zu finden. - Enterprise Cloud Scale: Bereitstellung und Observability:
agents-cli deployermöglicht es Ihnen, Ihren KI-Agenten in Produktionsumgebungen wie Agent Runtime oder Cloud Run zu verpacken und bereitzustellen. Richten Sie die Telemetrie für die Produktion ein, um Logs und Ausführungstraces an Cloud Trace und BigQuery zu streamen.