Zurück zum Blog
Veröffentlichungv0.2.0stabilGraphen-AgentenEchtzeitBrowserEvaluierungStudio

ADK-Rust v0.2.0: Die erste stabile Version

Ankündigung von ADK-Rust v0.2.0 – die erste stabile Version mit Graphen-Agenten, Echtzeit-Sprache, Browser-Automatisierung, Evaluierungs-Framework und dem visuellen Builder von ADK Studio.

15 Min. Lesezeit

ADK-Rust v0.2.0: Die erste stabile Version

Wir freuen uns, ADK-Rust v0.2.0 anzukündigen – die erste stabile Version des Rust-Frameworks zum Erstellen produktionsreifer KI-Agenten. Diese Version markiert einen wichtigen Meilenstein mit bedeutenden neuen Funktionen, verbesserter Stabilität und einer Verpflichtung zur semantischen Versionierung für die Zukunft.

Was ist neu in v0.2.0

🔀 Graphen-Agenten (LangGraph-ähnliche Workflows)

Die neue adk-graph Crate bringt LangGraph-ähnliche Workflow-Orchestrierung zu Rust:

use adk_graph::{prelude::*, node::AgentNode};

let graph = GraphAgent::builder("support_router")
    .channels(&["input", "category", "response"])
    .node(classifier_node)
    .node(billing_node)
    .node(technical_node)
    .edge(START, "classifier")
    .conditional_edges("classifier", Router::by_field("category", vec![
        ("billing", "billing_agent"),
        ("technical", "technical_agent"),
    ]))
    .edge("billing_agent", END)
    .edge("technical_agent", END)
    .build()?;

Hauptmerkmale:

  • Zustandsverwaltung: Typisierte Zustandskanäle mit automatischem Merging
  • Bedingtes Routing: Routing basierend auf Zustandsfeldern oder benutzerdefinierter Logik
  • Checkpointing: SQLite und In-Memory-Backends für Fehlertoleranz
  • Human-in-the-Loop: Workflows für menschliche Genehmigung unterbrechen
  • Zyklische Graphen: Unterstützung für ReAct-Muster mit Iterationsgrenzen

🎙️ Echtzeit-Sprachagenten

Erstellen Sie sprachgesteuerte KI-Assistenten mit bidirektionalem Audio-Streaming:

use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel};

let agent = RealtimeAgent::builder("voice_assistant")
    .model(Arc::new(OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview")))
    .instruction("You are a helpful voice assistant.")
    .voice("alloy")
    .server_vad()  // Voice Activity Detection
    .build()?;

Unterstützte Anbieter:

  • OpenAI Echtzeit API (gpt-4o-realtime-preview, gpt-realtime)
  • Google Gemini Live API (gemini-2.0-flash-live-preview)

Funktionen:

  • Bidirektionales Audio-Streaming (PCM16, G711)
  • Serverseitige Spracherkennung (Voice Activity Detection)
  • Tool-Aufrufe während Sprachkonversationen
  • Multi-Agenten-Übergaben

🌐 Browser-Automatisierung

Die adk-browser Crate bietet 46 WebDriver-Tools für die Web-Automatisierung:

use adk_browser::{BrowserSession, BrowserToolset, BrowserConfig};

let session = Arc::new(BrowserSession::new(
    BrowserConfig::new().webdriver_url("http://localhost:4444")
));
let tools = BrowserToolset::new(session).all_tools();

let agent = LlmAgentBuilder::new("web_agent")
    .model(model)
    .instruction("Browse the web and extract information.")
    .tools(tools)
    .build()?;

Tool-Kategorien:

  • Navigation: browser_navigate, browser_back, browser_forward
  • Extraktion: browser_extract_text, browser_extract_links, browser_extract_html
  • Interaktion: browser_click, browser_type, browser_select
  • Formulare: browser_fill_form, browser_submit
  • Screenshots: browser_screenshot, browser_screenshot_element
  • JavaScript: browser_evaluate, browser_evaluate_async

📊 Framework zur Agenten-Evaluierung

Testen und validieren Sie das Agentenverhalten mit der adk-eval Crate:

use adk_eval::{Evaluator, EvaluationConfig, EvaluationCriteria};

let config = EvaluationConfig::with_criteria(
    EvaluationCriteria::exact_tools()
        .with_response_similarity(0.8)
);

let evaluator = Evaluator::new(config);
let report = evaluator
    .evaluate_file(agent, "tests/my_agent.test.json")
    .await?;

assert!(report.all_passed());

Evaluierungsfähigkeiten:

  • Validierung von Trajektorien (Tool-Aufrufsequenzen)
  • Antwortähnlichkeit (Jaccard, Levenshtein, ROUGE)
  • LLM-bewerteter semantischer Abgleich
  • Rubrik-basierte Bewertung mit benutzerdefinierten Kriterien
  • Sicherheits- und Halluzinationserkennung

🎨 ADK Studio: Visueller Agenten-Builder

Eine Drag-and-Drop-Oberfläche zum Erstellen von KI-Agenten:

cargo install adk-studio
adk-studio

Funktionen:

  • ReactFlow-Canvas für visuelles Workflow-Design
  • Vollständige Agenten-Palette: LLM, Sequenziell, Parallel, Schleife, Router
  • Tool-Integration: Funktion, MCP, Browser, Google Suche
  • Echtzeit-Chat-Tests mit SSE-Streaming
  • Ein-Klick-Codegenerierung für die Produktion Rust

🛡️ Schutzmechanismen

Input-/Output-Validierung mit der adk-guardrail Crate:

use adk_guardrail::{Guardrails, PiiRedactor, ContentFilter};

let guardrails = Guardrails::new()
    .add(PiiRedactor::default())
    .add(ContentFilter::block_harmful());

let safe_input = guardrails.process_input(user_message)?;
let safe_output = guardrails.process_output(agent_response)?;

Integrierte Schutzmechanismen:

  • PII-Redaktion (E-Mails, Telefonnummern, SSNs, Kreditkarten)
  • Inhaltsfilterung (schädlich, unangemessen)
  • JSON-Schema-Validierung
  • Benutzerdefinierte Validierungsregeln

🖼️ Dynamische UI-Generierung

Die adk-ui Crate ermöglicht Agenten das Rendern reichhaltiger Schnittstellen:

use adk_ui::{UiToolset, UI_AGENT_PROMPT};

let agent = LlmAgentBuilder::new("ui_assistant")
    .instruction(UI_AGENT_PROMPT)
    .tools(UiToolset::all_tools())
    .build()?;

Komponenten: 28 UI-Komponenten, darunter Karten, Tabellen, Diagramme, Formulare Vorlagen: 10 vorgefertigte Vorlagen für gängige Muster React Client: npm install @zavora-ai/adk-ui-react

Breaking Changes

RunnerConfig Änderungen

Die RunnerConfig Struktur enthält jetzt ein run_config Feld:

// Before (v0.1.x)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
})?;

// After (v0.2.0)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
    run_config: None,  // NEW: Optional RunConfig for execution settings
})?;

Abhängigkeits-Updates

  • sqlx von 0.7 auf 0.8 aktualisiert (erforderlich für SQLite-Kompatibilität)
  • Rust 2024 Edition (erfordert Rust 1.85+)

Migrationsleitfaden

  1. Cargo.toml aktualisieren:

    adk-rust = "0.2.0"
  2. run_config: None zu RunnerConfig hinzufügen:

    RunnerConfig {
        // ... existing fields ...
        run_config: None,
    }
  3. sqlx aktualisieren, falls SQLite-Sitzungen verwendet werden:

    sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }

Leistungsverbesserungen

  • Streaming-Optimierung: Reduzierte Speicherzuweisungen beim Event-Streaming
  • Sitzungs-Caching: Verbesserte Leistung beim Sitzungs-Lookup
  • Tool-Ausführung: Parallele Tool-Ausführung, wo möglich

Dokumentation

Alle Dokumentation wurde für v0.2.0 aktualisiert:

Die Dokumentation ist jetzt in 9 Sprachen verfügbar: Englisch, Spanisch, Chinesisch, Japanisch, Portugiesisch, Deutsch, Französisch, Arabisch, Hindi und Koreanisch.

Was kommt als Nächstes

Wir arbeiten bereits an v0.3.0 mit geplanten Funktionen:

  • Cloud-Integrationen (AWS Bedrock, Azure OpenAI, GCP Vertex AI)
  • Erweiterte Speichersysteme mit mehr Vektordatenbank-Backends
  • Workflow-Vorlagen und vorgefertigte Agentenmuster
  • Tools zur Leistungsanalyse und -optimierung

Erste Schritte

# Create a new project
cargo new my_agent
cd my_agent

# Add ADK-Rust
echo 'adk-rust = "0.2.0"' >> Cargo.toml
echo 'tokio = { version = "1.40", features = ["full"] }' >> Cargo.toml

# Set your API key
export GOOGLE_API_KEY="your-api-key"

# Run an example
cargo run --example quickstart

Danke

Ein großes Dankeschön an alle, die zu dieser Version durch Code, Dokumentation, Fehlerberichte und Feedback beigetragen haben. ADK-Rust wird von der Community für die Community entwickelt.

Links:

Viel Spaß beim Bauen! 🦀🤖

Bereit, ADK-Rust v0.5.0 auszuprobieren?

Beginnen Sie mit dem leistungsstärksten Rust-Framework zum Erstellen von KI-Agenten.