Einführung in ADK-Rust

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 modell-agnostisch, deployment-agnostisch und auf Kompatibilität mit anderen Frameworks ausgelegt. ADK wurde entwickelt, um die Entwicklung von Agenten eher wie Softwareentwicklung wirken zu lassen, damit Entwickler agentische Architekturen, die von einfachen Aufgaben bis zu komplexen Workflows reichen, leichter erstellen, bereitstellen und orchestrieren können.

Hinweis: ADK-Rust erfordert Rust 1.95.0 oder höher.

Installation

Füge ADK-Rust zu deinem Projekt hinzu:

cargo add adk-rust

Oder füge es zu deinem Cargo.toml hinzu:

[dependencies]
adk-rust = "2.0.0"
tokio = { version = "1.40", features = ["full"] }

Kurzes Beispiel

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:

Rendering architecture…

Kernkonzepte

ADK-Rust basiert auf mehreren zentralen Grundelementen, die zusammenarbeiten, um leistungsstarke KI-Agenten zu erstellen:

Agenten

Die grundlegende Arbeitseinheit, die für bestimmte Aufgaben entwickelt wurde. ADK-Rust bietet mehrere Agententypen:

  • LlmAgent: Verwendet ein Large Language Model für Schlussfolgerungen und Entscheidungsfindung. Dies ist der primäre Agententyp für die meisten Anwendungsfälle.
  • RealtimeAgent: Sprachfähige Agenten, die OpenAI Realtime API oder Gemini Live API für bidirektionales Audio-Streaming verwenden.
  • GraphAgent: LangGraph-artige Workflow-Orchestrierung mit Zustandsverwaltung, Checkpointing und Human-in-the-Loop-Unterstützung.
  • CustomAgent: Ermöglicht es dir, benutzerdefinierte Logik mit voller Kontrolle über das Agentenverhalten zu implementieren.
  • Workflow-Agenten: Deterministische Agenten, die vordefinierten Ausführungspfaden folgen:
    • SequentialAgent: Führt Unteragenten in Reihenfolge aus
    • ParallelAgent: Führt Unteragenten gleichzeitig aus
    • LoopAgent: Führt Unteragenten iterativ aus, bis eine Bedingung erfüllt ist

Werkzeuge

Werkzeuge geben Agenten Fähigkeiten über die Unterhaltung hinaus und ermöglichen es ihnen, mit externen APIs zu interagieren, Informationen zu suchen oder benutzerdefinierte Operationen auszuführen:

  • FunctionTool: Jede asynchrone Rust-Funktion als Tool einbinden
  • GoogleSearchTool: Integrierte Websuche-Funktion
  • BrowserToolset: 46 WebDriver-Tools für Webautomatisierung (Navigation, Formulare, Screenshots usw.)
  • ExitLoopTool: Beendigung der Steuerungsschleife in LoopAgent
  • McpToolset: Einen MCP-Server verbinden und geprüfte Tools, Ressourcen, Prompts, Completion, Subscriptions, Elicitation und ausgehandelte Aufgaben bereitstellen
  • McpServerManager: Einen sich ändernden Registry lokaler MCP-Server hinzufügen, aktualisieren, überwachen, neu starten, persistieren und aggregieren, während die Anwendung läuft

Sitzungen

Sitzungen verwalten den Kontext einer einzelnen Unterhaltung, einschließlich:

  • Session-ID: Eindeutiger Bezeichner für die Unterhaltung
  • Ereignisse: Der Verlauf der Unterhaltung (Benutzernachrichten, Agentenantworten, Tool-Aufrufe)
  • Status: Arbeitsspeicher für die Unterhaltung mit bereichsbezogenen Präfixen (app:, user:, temp:)

Callbacks

Benutzerdefinierter Code, der an bestimmten Punkten in der Ausführung des Agenten läuft:

  • before_agent / after_agent: Agent-Aufrufe abfangen
  • before_model / after_model: LLM-Aufrufe abfangen
  • before_tool / after_tool: Tool-Ausführungen abfangen

Callbacks ermöglichen Protokollierung, Guardrails, Caching und Verhaltensänderungen.

Artefakte

Binärspeicher für Dateien, Bilder oder andere nicht-textuelle Inhalte:

  • Artefakte mit Versionierung speichern und laden
  • Namensraum-Abgrenzung (auf Sitzungsebene oder Benutzerebene)
  • Austauschbare Storage-Backends

Ereignisse

Die grundlegende Kommunikationseinheit, die Dinge darstellt, die während einer Sitzung passieren:

  • Benutzernachrichten
  • Agentenantworten
  • Tool-Aufrufe und Ergebnisse
  • Statusänderungen

Ereignisse bilden den Gesprächsverlauf und ermöglichen Wiedergabe und Debugging.

Modelle

Das zugrunde liegende LLM, das LlmAgents antreibt. ADK-Rust ist für Gemini optimiert, unterstützt aber über das Llm-Trait mehrere Anbieter:

  • Gemini: Googles Gemini-Modelle (gemini-3-pro, gemini-3-flash, gemini-2.5-flash, gemini-2.5-pro)
  • OpenAI: gpt-5.1, gpt-5, gpt-5-mini, Azure OpenAI
  • Anthropic: claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5
  • DeepSeek: deepseek-r1, deepseek-v3.1, deepseek-chat mit Thinking-Modus
  • Groq: Ultraschnelle Inferenz mit llama-4-scout, llama-3.1-70b-versatile, mixtral-8x7b-32768
  • Ollama: Lokale Inferenz mit qwen3.6:35b-a3b, qwen3.5, llama3.2:3b, deepseek-r1:14b
  • mistral.rs: Hochleistungsfähige lokale Inferenz mit Hardwarebeschleunigung

Alle Anbieter implementieren dasselbe Trait für austauschbare Nutzung:

pub trait Llm: Send + Sync {
    async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
    async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}

Ausführer

Die Engine, die den Ausführungsfluss verwaltet, Agent-Interaktionen orchestriert und mit Backend-Diensten koordiniert. Der Runner übernimmt:

  • Aufruf von Agents und Verarbeitung von Antworten
  • Ausführung von Tools
  • Verwaltung von Sessions und Zuständen
  • Ereignis-Streaming

Feature-Flags

ADK-Rust verwendet Cargo-Features für Modularität. Vier Presets steuern, welche Crates kompiliert werden:

# Minimal (default) — Gemini, agents, runner, sessions
adk-rust = "2.0.0"

# Standard — adds tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills
adk-rust = { version = "2.0.0", features = ["standard"] }

# Enterprise — standard + realtime, browser, RAG, payments, AWP
adk-rust = { version = "2.0.0", features = ["enterprise"] }

# Full — enterprise + audio, code execution, sandbox
adk-rust = { version = "2.0.0", features = ["full"] }

# Equivalent explicit minimal selection
adk-rust = { version = "2.0.0", default-features = false, features = ["minimal"] }

# Custom: Pick what you need
adk-rust = { version = "2.0.0", default-features = false, features = ["agents", "gemini", "tools"] }

Verfügbare Features:

  • agents: Agent-Implementierungen (LlmAgent, CustomAgent, Workflow-Agents)
  • models: Modellintegrationen (Gemini)
  • openai: OpenAI-Modelle (GPT-5, GPT-5 Mini)
  • anthropic: Anthropic-Modelle (Claude 4.6, Claude 4.5)
  • deepseek: DeepSeek-Modelle (chat, reasoner)
  • groq: Groq-Super-Schnell-Inferenz
  • ollama: Lokale Ollama-Modelle
  • tools: Tool-System und integrierte Tools
  • sessions: Sitzungsverwaltung
  • artifacts: Artefaktspeicherung
  • memory: Speichersystem mit semantischer Suche und einem bi-temporalen Knowledge-Graph-Backend (GraphMemoryService)
  • runner: Laufzeitumgebung für Agent-Ausführung
  • server: HTTP-Server (REST + A2A)
  • telemetry: Tracing-Helfer; füge telemetry-otlp nur beim Export von OTLP hinzu
  • cli: CLI-Launcher; füge cli-openai, cli-anthropic oder ein anderes CLI-Provider-Feature nur bei Bedarf hinzu
  • mcp: Model Context Protocol-Integration für adk-tool
  • record-payloads: aktiviere die vollständige Erfassung von Tracing-Nutzdaten
  • graph: Graph-basierte Workflows (Standardpreset)
  • realtime: Sprache + multimodales Streaming — OpenAI Realtime & Gemini Live, bidirektionales Audio, Videoframes, affektiver Dialog, serverseitige Tools (Enterprise-Preset)
  • browser: Browser-Automatisierung (Enterprise-Preset)
  • eval: Agent-Bewertung (Standardpreset)
  • rag: RAG-Pipeline (Enterprise-Preset)
  • code: Code-Ausführung (Full-Preset)
  • sandbox: Sandbox-Ausführung (Full-Preset)
  • audio: Audioverarbeitung (Full-Preset)

Andere Sprachen

ADK ist in mehreren Sprachen verfügbar:


Nächster Schritt: Schnellstart →