Einführung in ADK-Rust
Das Agent Development Kit (ADK) ist ein flexibles und modulares Framework für die Entwicklung und Bereitstellung von KI-Agenten. Obwohl für Gemini und das Google-Ökosystem optimiert, ist ADK modellunabhängig, bereitstellungsunabhängig und für die Kompatibilität mit anderen Frameworks konzipiert. ADK wurde entwickelt, um die Agentenentwicklung softwareähnlicher zu gestalten und es Entwicklern zu erleichtern, Agentenarchitekturen zu erstellen, bereitzustellen und zu orchestrieren, die von einfachen Aufgaben bis hin zu komplexen Workflows reichen.
Hinweis: ADK-Rust v0.2.0 erfordert Rust 1.85.0 oder höher
Installation
Fügen Sie ADK-Rust Ihrem Projekt hinzu:
cargo add adk-rust
Oder fügen Sie es Ihrer Cargo.toml hinzu:
[dependencies]
adk-rust = "0.2.0"
tokio = { version = "1.40", features = ["full"] }
Kurzbeispiel
use adk_rust::prelude::*;
use std::sync::Arc;
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("GOOGLE_API_KEY")?;
let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
let agent = LlmAgentBuilder::new("assistant")
.description("A helpful AI assistant")
.model(Arc::new(model))
.build()?;
println!("Agent '{}' ready!", agent.name());
Ok(())
}
Architekturübersicht
ADK-Rust verwendet eine geschichtete Architektur, die auf Modularität und Erweiterbarkeit ausgelegt ist:
┌─────────────────────────────────────────────────────────────┐
│ Anwendungsschicht │
│ CLI • REST-Server • Web-UI │
├─────────────────────────────────────────────────────────────┤
│ Runner-Schicht │
│ Agenten-Ausführung • Kontextverwaltung │
├─────────────────────────────────────────────────────────────┤
│ Agenten-Schicht │
│ LlmAgent • CustomAgent • Workflow-Agenten │
├─────────────────────────────────────────────────────────────┤
│ Dienstschicht │
│ Modelle • Tools • Sessions • Artefakte • Speicher │
└─────────────────────────────────────────────────────────────┘
Kernkonzepte
ADK-Rust basiert auf mehreren Schlüsselprimitiven, die zusammenwirken, um leistungsstarke KI-Agenten zu erstellen:
Agenten
Die grundlegende Arbeitseinheit, die für spezifische Aufgaben konzipiert ist. ADK-Rust bietet verschiedene Agenten-Typen:
- LlmAgent: Verwendet ein großes Sprachmodell für die Argumentation und Entscheidungsfindung. Dies ist der primäre Agenten-Typ für die meisten Anwendungsfälle.
- RealtimeAgent: Sprachfähige Agenten, die die OpenAI Realtime API oder Gemini Live API für bidirektionales Audio-Streaming nutzen.
- GraphAgent: Workflow-Orchestrierung im LangGraph-Stil mit Zustandsverwaltung, Checkpointing und Human-in-the-Loop-Unterstützung.
- CustomAgent: Ermöglicht die Implementierung benutzerdefinierter Logik mit voller Kontrolle über das Agentenverhalten.
- Workflow Agents: Deterministische Agenten, die vordefinierten Ausführungspfaden folgen:
SequentialAgent: Führt Sub-Agenten der Reihe nach ausParallelAgent: Führt Sub-Agenten gleichzeitig ausLoopAgent: Führt Sub-Agenten iterativ aus, bis eine Bedingung erfüllt ist
Werkzeuge
Tools verleihen Agenten Fähigkeiten jenseits der Konversation, indem sie ihnen ermöglichen, mit externen APIs zu interagieren, Informationen zu suchen oder benutzerdefinierte Operationen durchzuführen:
- FunctionTool: Wickeln Sie jede
asyncRust-Funktion als Tool ein - GoogleSearchTool: Eingebaute Web-Suchfunktion
- BrowserToolset: 46 WebDriver-Tools für die Webautomatisierung (Navigation, Formulare, Screenshots usw.)
- ExitLoopTool: Steuert die Schleifenbeendigung in LoopAgent
- McpToolset: Integration mit Model Context Protocol-Servern
Sitzungen
Sessions verwalten den Kontext einer einzelnen Konversation, einschließlich:
- Session ID: Eindeutiger Bezeichner für die Konversation
- Events: Der Konversationsverlauf (Benutzernachrichten, Agentenantworten, Tool-Aufrufe)
- State: Arbeitsspeicher für die Konversation mit bereichsbezogenen Präfixen (
app:,user:,temp:)
Rückrufe
Benutzerdefinierter Code, der zu bestimmten Zeitpunkten in der Ausführung des Agenten ausgeführt wird:
before_agent/after_agent: Agenten-Aufrufe abfangenbefore_model/after_model: LLM-Aufrufe abfangenbefore_tool/after_tool: Tool-Ausführungen abfangen
Rückrufe ermöglichen Protokollierung, Schutzmaßnahmen, Caching und Verhaltensmodifikation.
Artefakte
Binärdatenspeicher für Dateien, Bilder oder andere Nicht-Text-Inhalte:
- Artefakte speichern und laden mit Versionierung
- Namespace-Bereichsdefinition (Sitzungs- oder Benutzerebene)
- Pluggable Storage-Backends
Ereignisse
Die grundlegende Kommunikationseinheit, die Dinge darstellt, die während einer Sitzung geschehen:
- Benutzernachrichten
- Agentenantworten
- Tool-Aufrufe und Ergebnisse
- Zustandsänderungen
Ereignisse bilden den Konversationsverlauf und ermöglichen die Wiederholung und Fehlerbehebung.
Modelle
Das zugrunde liegende LLM, das LlmAgents antreibt. ADK-Rust ist für Gemini optimiert, unterstützt aber mehrere Anbieter über das Llm trait:
- Gemini: Googles Gemini-Modelle (
gemini-3-pro-preview,gemini-2.5-flash,gemini-2.5-pro) - OpenAI:
gpt-5.2,gpt-4o,gpt-4o-mini, Azure OpenAI - Anthropic:
claude-sonnet-4-5,claude-opus-4-5,claude-sonnet-4 - DeepSeek:
deepseek-chat,deepseek-reasonermit Denkmodus - Groq: Ultraschnelle Inferenz mit
llama-3.3-70b-versatile,mixtral-8x7b-32768 - Ollama: Lokale Inferenz mit
llama3.2,qwen2.5,mistral,phi4 - mistral.rs: Hochleistungs-lokale Inferenz mit Hardwarebeschleunigung
Alle Anbieter implementieren dasselbe trait für den austauschbaren Gebrauch:
pub trait Llm: Send + Sync {
async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}
Runner
Die Engine, die den Ausführungsfluss verwaltet, Agenteninteraktionen orchestriert und sich mit Backend-Diensten koordiniert. Der Runner übernimmt:
- Agentenaufruf und Antwortverarbeitung
- Tool-Ausführung
- Sitzungs- und Zustandsverwaltung
- Event-Streaming
Feature-Flags
adk-rust nutzt Cargo Features für Modularität:
# Full installation (default)
adk-rust = "0.2.0"
# Minimal: Only agents + Gemini
adk-rust = { version = "0.2.0", default-features = false, features = ["minimal"] }
# Custom: Pick what you need
adk-rust = { version = "0.2.0", default-features = false, features = ["agents", "gemini", "tools"] }
Verfügbare Features:
agents: Agent-Implementierungen (LlmAgent, CustomAgent, Workflow-Agents)models: Modell-Integrationen (Gemini)openai: OpenAI-Modelle (GPT-5, GPT-4o)anthropic: Anthropic-Modelle (Claude 4.5, Claude 4)deepseek: DeepSeek-Modelle (chat, reasoner)groq: Groq ultraschnelle Inferenzollama: Lokale Ollama-Modelletools: Tool-System und integrierte Toolssessions: Session-Verwaltungartifacts: Artefakt-Speicherungmemory: Memory-System mit semantischer Sucherunner: Agent-Ausführungs-Runtimeserver: HTTP-Server (REST + A2A)telemetry: OpenTelemetry-Integrationcli: CLI-Starter
Andere Sprachen
adk ist in mehreren Sprachen verfügbar:
- Python:
pip install google-adk- Dokumentation - Go:
go get google.golang.org/adk- Dokumentation - Java: Maven/Gradle - Dokumentation
Weiter: Schnellstart →