Einführung in ADK-Rust

Agent Development Kit (ADK) ist ein flexibles und modulares Framework zur Entwicklung und Bereitstellung von KI-Agenten. Obwohl ADK für Gemini und das Google-Ökosystem optimiert ist, ist es modellunabhängig, bereitstellungsunabhängig und auf Kompatibilität mit anderen Frameworks ausgelegt. ADK wurde entwickelt, um die Agentenentwicklung stärker an die Softwareentwicklung anzulehnen und es Entwicklern zu erleichtern, agentenbasierte Architekturen zu erstellen, bereitzustellen und zu orchestrieren, die von einfachen Aufgaben bis hin zu komplexen Workflows reichen.

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

Installation

Fügen Sie ADK-Rust zu Ihrem Projekt hinzu:

cargo add adk-rust

Oder fügen Sie es zu Ihrer Cargo.toml hinzu:

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

Schnellbeispiel

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-3.7-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 wichtigen Grundelementen, die zusammen leistungsfähige KI-Agenten erstellen:

Agenten

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

  • 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 Unterstützung für die Einbindung von Menschen.
  • CustomAgent: Ermöglicht die Implementierung benutzerdefinierter Logik mit vollständiger Kontrolle über das Verhalten des Agenten.
  • Workflow-Agenten: Deterministische Agenten, die vordefinierten Ausführungspfaden folgen:
    • SequentialAgent: Führt Subagenten der Reihe nach aus
    • ParallelAgent: Führt Subagenten gleichzeitig aus
    • LoopAgent: Führt Subagenten iterativ aus, bis eine Bedingung erfüllt ist

Werkzeuge

Werkzeuge erweitern die Fähigkeiten von Agenten über die Konversation hinaus, sodass sie mit externen APIs interagieren, Informationen suchen oder benutzerdefinierte Vorgänge ausführen können:

  • FunctionTool: Verpackt jede asynchrone Rust-Funktion als Werkzeug
  • GoogleSearchTool: Integrierte Websuchfunktion
  • BrowserToolset: 46 WebDriver-Werkzeuge für Webautomatisierung (Navigation, Formulare, Screenshots usw.)
  • ExitLoopTool: Steuert die Beendigung der Schleife in LoopAgent
  • McpToolset: Verbindet einen MCP-Server und stellt geprüfte Werkzeuge, Ressourcen, Prompts, Vervollständigung, Abonnements, Anforderung von Informationen und ausgehandelte Aufgaben bereit
  • McpServerManager: Fügt eine sich ändernde Registrierung lokaler MCP-Server hinzu, aktualisiert, überwacht, startet sie neu, speichert sie dauerhaft und fasst sie zusammen, während die Anwendung ausgeführt wird

Sitzungen

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

  • Sitzungs-ID: Eindeutige Kennung für die Unterhaltung
  • Ereignisse: Der Unterhaltungsverlauf (Nachrichten des Benutzers, Antworten des Agents, Tool-Aufrufe)
  • Status: Arbeitsspeicher für die Unterhaltung mit bereichsbezogenen Präfixen (app:, user:, temp:)

Callbacks

Benutzerdefinierter Code, der an bestimmten Punkten während der Ausführung des Agents ausgeführt wird:

  • before_agent / after_agent: Abfangen von Agent-Aufrufen
  • before_model / after_model: Abfangen von LLM-Aufrufen
  • before_tool / after_tool: Abfangen von Tool-Ausführungen

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

Artefakte

Speicher für Binärdaten von Dateien, Bildern oder anderen nicht textbasierten Inhalten:

  • Artefakte mit Versionsverwaltung speichern und laden
  • Namensbereichsbegrenzung auf Sitzungs- oder Benutzerebene
  • Austauschbare Speicher-Backends

Ereignisse

Die grundlegende Kommunikationseinheit, die Dinge repräsentiert, die während einer Sitzung geschehen:

  • Nachrichten des Benutzers
  • Antworten des Agents
  • Tool-Aufrufe und Ergebnisse
  • Statusänderungen

Ereignisse bilden den Unterhaltungsverlauf und ermöglichen die Wiederholung und das Debugging.

Modelle

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

  • Gemini: gemini-3.7-flash, gemini-3.6-flash, gemini-3.5-flash-lite
  • OpenAI: gpt-5.6-terra, gpt-5.6-sol, gpt-5.6-luna, Azure-OpenAI-Bereitstellungen
  • Anthropic: claude-sonnet-5, claude-opus-5, claude-fable-5
  • DeepSeek: deepseek-v4-flash, deepseek-v4-pro
  • Groq: Hochgeschwindigkeitsinferenz mit openai/gpt-oss-120b und openai/gpt-oss-20b
  • 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 denselben Trait zur austauschbaren Verwendung:

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ührungsablauf verwaltet, Agent-Interaktionen orchestriert und Backend-Dienste koordiniert. Der Runner übernimmt:

  • Aufruf von Agents und Verarbeitung von Antworten
  • Ausführung von Tools
  • Verwaltung von Sitzungen und Zuständen
  • Streaming von Ereignissen

Funktionsflags

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

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

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

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

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

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

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

Verfügbare Funktionen:

  • agents: Agent-Implementierungen (LlmAgent, CustomAgent, Workflow-Agenten)
  • 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: Ultraschnelle Inferenz mit Groq
  • ollama: Lokale Ollama-Modelle
  • tools: Tool-System und integrierte Tools
  • sessions: Sitzungsverwaltung
  • artifacts: Artefaktspeicher
  • memory: Speichersystem mit semantischer Suche und einem bi-temporalen Wissensgraph-Backend (GraphMemoryService)
  • runner: Laufzeitumgebung für die Agentenausführung
  • server: HTTP-Server (REST + A2A)
  • telemetry: Tracing-Hilfsfunktionen; telemetry-otlp nur beim Exportieren von OTLP hinzufügen
  • cli: CLI-Launcher; cli-openai, cli-anthropic oder ein anderes CLI-Provider-Feature nur bei Bedarf hinzufügen
  • mcp: Integration des Model Context Protocol für adk-tool
  • record-payloads: Vollständige Erfassung von Tracing-Nutzdaten aktivieren
  • graph: Graphbasierte Workflows (Standardvoreinstellung)
  • realtime: Sprach- und multimodales Streaming — OpenAI Realtime und Gemini Live, bidirektionales Audio, Videoframes, affektiver Dialog, serverseitige Tools (Enterprise-Voreinstellung)
  • browser: Browserautomatisierung (Enterprise-Voreinstellung)
  • eval: Agentenbewertung (Standardvoreinstellung)
  • rag: RAG-Pipeline (Enterprise-Voreinstellung)
  • code: Codeausführung (vollständige Voreinstellung)
  • sandbox: Sandboxed-Ausführung (vollständige Voreinstellung)
  • audio: Audioverarbeitung (vollständige Voreinstellung)

Andere Sprachen

ADK ist in mehreren Sprachen verfügbar:


Weiter: Schnellstart →

Einführung in ADK-Rust - ADK-Rust Dokumentation | ADK-Rust