Benchmark-Ergebnisse

Veröffentlichte Leistungsbenchmarks, die ADK-Rust mit anderen Agent-Frameworks vergleichen. Alle Messungen verwenden echte LLM-Aufrufe mit deterministischer Konfiguration zur Reproduzierbarkeit.

Zusammenfassung

MetrikADK-RustGemini Python SDKLangGraph
Kaltstart109 ms501 ms502 ms
Overhead der Agentenschleife568 μs253 μs1228 ms

ADK-Rust erreicht einen etwa 4,6-mal schnelleren Kaltstart als beide Python-Frameworks und einen Schleifen-Overhead von unter einer Millisekunde. Der Gemini-Python-SDK weist aufgrund der minimalen Abstraktion einen geringfügig niedrigeren Schleifen-Overhead auf, aber der Overhead von ADK-Rust ist im Vergleich zu den typischen Antwortzeiten von LLM (500 ms–3 s) vernachlässigbar.

Ergebnisse der Workloads

simple_tool_call

Eine einzelne Benutzernachricht → ein Tool-Aufruf → eine abschließende Antwort. Misst den minimalen Roundtrip.

FrameworkGesamtzeitKaltstartSchleifen-OverheadCV
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

Mehrfachrunden-Konversation, die 3–5 aufeinanderfolgende Tool-Aufrufe mit einer Begründung zwischen jedem Schritt erfordert.

FrameworkGesamtzeitKaltstartSchleifen-OverheadCV
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

Eine einzelne Benutzernachricht, die 3 parallel ausgeführte Tool-Aufrufe gleichzeitig auslöst.

RahmenwerkGesamtzeitKaltstartSchleifen-OverheadCV
ADK-Rust2.3s109 ms568 μs3.9%
Gemini Python SDK3.7s501 ms253 μs5.6%
LangGraph4.8s502 ms1228 ms7.2%

So reproduzieren

# Run all benchmarks
cargo adk bench

# Run a specific workload
cargo adk bench --workload simple_tool_call

# Save results as a baseline
cargo adk bench --save-baseline v1.0.0

# Compare against baseline
cargo adk bench --check-regression v1.0.0 --tolerance 10

# Output as JSON for CI
cargo adk bench --output json --output-file results.json

Anforderungen:

  • Umgebungsvariable GOOGLE_API_KEY gesetzt
  • Netzwerkzugriff auf Gemini API
  • Für den Vergleich zwischen Frameworks: Python 3.11+ mit installiertem google-genai und langgraph

Methodik

Testumgebung

  • Modell: Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)
  • Temperatur: 0 (deterministisch)
  • Festgelegter Zufalls-Seed zur Reproduzierbarkeit
  • 10 Messiterationen nach 2 Aufwärmläufen
  • Netzwerk: derselbe Rechner, dasselbe Netzwerk für alle Frameworks

Isolierung des Overheads

Der Framework-Overhead wird isoliert, indem die gemessene LLM-Latenz von der gesamten Ausführungszeit abgezogen wird:

loop_overhead = total_time - sum(llm_response_times) - sum(tool_execution_times)

Dadurch wird der Beitrag des Frameworks isoliert: Serialisierung, Deserialisierung, Kontextzusammenstellung, Ereignisverarbeitung und Zustandsverwaltung.

Bedeutung der Metriken

MetrikDefinitionWarum dies wichtig ist
KaltstartZeit vom Start des Prozesses bis zum Empfang der ersten LLM-AntwortBeeinflusst den Start von Serverless-/Container-Umgebungen und die Reaktionsfähigkeit von CLI
Schleifen-OverheadVerarbeitungszeit des Frameworks pro Tool-Aufruf-RoundtripSummiert sich bei Agenten mit mehreren Schritten (5 Schritte × 1.2 s = 6 s Verschwendung)
GesamtzeitEnd-to-End-Wanduhrzeit für den vollständigen WorkflowVom Nutzer wahrgenommene Latenz
CVVariationskoeffizient (std_dev / Mittelwert × 100)Messstabilität — niedriger = zuverlässiger

Deterministische Konfiguration

Alle Frameworks verwenden identische:

  • Tooldefinitionen (gleiche Namen, Schemas, Mock-Implementierungen)
  • System-Prompts und Benutzernachrichten
  • Modelleinstellungen (temperature=0, keine Sampling-Variationen)
  • Tool-Implementierungen (geben feste Antworten zurück, keine E/A)

Einschränkungen

  • Ergebnisse hängen von den Netzwerkbedingungen und der Gemini-API-Auslastung ab
  • Python-Frameworks wurden mit CPython 3.11 gemessen (nicht PyPy)
  • Der Kaltstart umfasst den Start des Python-Interpreters für Python-Frameworks
  • Der Schleifen-Overhead für LangGraph umfasst die Graphdurchquerung und die Serialisierung des Zustands

Regressionen nachverfolgen

Verwenden Sie Benchmarks in CI, um Performance-Regressionen zu erkennen:

# In CI pipeline after merge to main
cargo adk bench --check-regression v1.0.0 --tolerance 10

# Exit code 1 if any metric regressed >10%

Baselines werden in .adk-bench/baselines/ gespeichert und können in das Repository übernommen werden.

Weiterführende Informationen


Zurück: ← Evaluation | Weiter: Zugriffskontrolle →