Resultados de referencia

Pruebas de rendimiento publicadas que comparan ADK-Rust con otros marcos de agentes. Todas las mediciones utilizan llamadas reales a LLM con una configuración determinista para garantizar la reproducibilidad.

Resumen

MétricaADK-RustGemini Python SDKLangGraph
Inicio en frío109 ms501 ms502 ms
Sobrecarga del bucle del agente568 μs253 μs1228 ms

ADK-Rust logra un arranque en frío aproximadamente 4,6 veces más rápido que ambos frameworks de Python, además de una sobrecarga del bucle inferior a un milisegundo. El SDK de Gemini para Python tiene una sobrecarga del bucle ligeramente menor debido a su mínima abstracción, pero la sobrecarga de ADK-Rust es insignificante en comparación con los tiempos de respuesta habituales de LLM (500 ms–3 s).

Resultados de las cargas de trabajo

simple_tool_call

Un mensaje de usuario → una llamada a una herramienta → una respuesta final. Mide el recorrido de ida y vuelta mínimo.

Marco de trabajoTiempo totalInicio en fríoSobrecarga del bucleCV
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

Conversación de varios turnos que requiere de 3 a 5 llamadas secuenciales a herramientas, con razonamiento entre cada paso.

Marco de trabajoTiempo totalInicio en fríoSobrecarga del bucleCV
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

Un único mensaje del usuario que activa 3 llamadas paralelas a herramientas, enviadas de forma concurrente.

Marco de trabajoTiempo totalInicio en fríoSobrecarga del bucleCV
ADK-Rust2.3s109 ms568 μs3.9%
Gemini Python SDK3.7s501 ms253 μs5.6%
LangGraph4.8s502 ms1228 ms7.2%

Cómo reproducir

# 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

Requisitos:

  • Variable de entorno GOOGLE_API_KEY configurada
  • Acceso de red a Gemini API
  • Para la comparación entre frameworks: Python 3.11+ con google-genai y langgraph instalados

Metodología

Entorno de prueba

  • Modelo: Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)
  • Temperatura: 0 (determinista)
  • Semilla aleatoria fija para garantizar la reproducibilidad
  • 10 iteraciones de medición después de 2 ejecuciones de calentamiento
  • Red: misma máquina y misma red para todos los frameworks

Aislamiento de la sobrecarga

La sobrecarga del framework se aísla restando la latencia medida de LLM del tiempo total de ejecución:

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

Esto aísla la contribución del framework: serialización, deserialización, ensamblaje del contexto, distribución de eventos y gestión del estado.

Qué significan las métricas

MétricaDefiniciónPor qué importa
Arranque en fríoTiempo desde el inicio del proceso hasta recibir la primera respuesta de LLMAfecta al inicio de servidores sin servidor/contenedores y a la capacidad de respuesta de CLI
Sobrecarga del bucleTiempo de procesamiento del framework por cada ida y vuelta de llamada a herramientaSe acumula en agentes de varios pasos (5 pasos × 1.2 s = 6 s desperdiciados)
Tiempo totalTiempo de reloj de extremo a extremo para el flujo de trabajo completoLatencia percibida por el usuario
CVCoeficiente de variación (std_dev / media × 100)Estabilidad de la medición — menor = más fiable

Configuración determinista

Todos los frameworks utilizan elementos idénticos:

  • Definiciones de herramientas (mismos nombres, esquemas e implementaciones simuladas)
  • Indicaciones del sistema y mensajes del usuario
  • Configuración del modelo (temperature=0, sin variación en el muestreo)
  • Implementaciones de herramientas (devuelven respuestas fijas, sin E/S)

Limitaciones

  • Los resultados dependen de las condiciones de red y de la carga de Gemini API
  • Los frameworks de Python se midieron con CPython 3.11 (no PyPy)
  • El arranque en frío incluye el inicio del intérprete de Python para los frameworks de Python
  • La sobrecarga del bucle para LangGraph incluye el recorrido del grafo y la serialización del estado

Seguimiento de regresiones

Utiliza benchmarks en CI para detectar regresiones de rendimiento:

# 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%

Las líneas base se almacenan en .adk-bench/baselines/ y se pueden confirmar en el repositorio.

Lecturas adicionales


Anterior: ← Evaluación | Siguiente: Control de acceso →