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.
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
sqlxvon 0.7 auf 0.8 aktualisiert (erforderlich für SQLite-Kompatibilität)- Rust 2024 Edition (erfordert Rust 1.85+)
Migrationsleitfaden
-
Cargo.toml aktualisieren:
adk-rust = "0.2.0" -
run_config: Nonezu RunnerConfig hinzufügen:RunnerConfig { // ... existing fields ... run_config: None, } -
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.