Resultados de Benchmark

Benchmarks de desempenho publicados que comparam ADK-Rust com outros frameworks de agentes. Todas as medições usam chamadas reais de LLM com configuração determinística para permitir a reprodução.

Resumo

MétricaADK-RustGemini Python SDKLangGraph
Inicialização a frio109 ms501 ms502 ms
Sobrecarga do loop do agente568 μs253 μs1228 ms

ADK-Rust alcança uma inicialização a frio aproximadamente 4,6× mais rápida do que ambos os frameworks Python, além de uma sobrecarga de loop inferior a um milissegundo. O SDK do Gemini para Python tem uma sobrecarga de loop ligeiramente menor devido à abstração mínima, mas a sobrecarga de ADK-Rust é insignificante em relação aos tempos de resposta típicos de LLM (500 ms–3 s).

Resultados das cargas de trabalho

simple_tool_call

Uma mensagem de usuário → uma chamada de ferramenta → uma resposta final. Mede o ciclo de ida e volta mínimo.

FrameworkTempo totalInicialização a frioSobrecarga do loopCV
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

Conversa com múltiplas interações que exige de 3 a 5 chamadas sequenciais de ferramentas, com raciocínio entre cada etapa.

FrameworkTempo totalInicialização a frioSobrecarga do loopCV
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

Uma única mensagem do usuário acionando 3 chamadas de ferramentas paralelas, despachadas simultaneamente.

FrameworkTempo totalInicialização a frioSobrecarga do loopCV
ADK-Rust2.3s109 ms568 μs3.9%
Gemini Python SDK3.7s501 ms253 μs5.6%
LangGraph4.8s502 ms1228 ms7.2%

Como Reproduzir

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

  • Variável de ambiente GOOGLE_API_KEY definida
  • Acesso à rede para o Gemini API
  • Para comparação entre frameworks: Python 3.11+ com google-genai e langgraph instalados

Metodologia

Ambiente de Teste

  • Modelo: Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)
  • Temperatura: 0 (determinístico)
  • Semente aleatória fixa para reprodutibilidade
  • 10 iterações de medição após 2 execuções de aquecimento
  • Rede: mesma máquina, mesma rede para todos os frameworks

Isolamento da Sobrecarga

A sobrecarga do framework é isolada subtraindo a latência medida de LLM do tempo total de execução:

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

Isso isola a contribuição do framework: serialização, desserialização, montagem de contexto, despacho de eventos e gerenciamento de estado.

O Que as Métricas Significam

MétricaDefiniçãoPor que isso importa
Inicialização a frioTempo desde o lançamento do processo até o recebimento da primeira resposta de LLMAfeta a inicialização de ambientes serverless/contêineres e a capacidade de resposta de CLI
Sobrecarga do loopTempo de processamento do framework por ida e volta de uma chamada de ferramentaAcumula-se em agentes de várias etapas (5 etapas × 1.2s = 6s desperdiçados)
Tempo totalTempo de relógio de parede de ponta a ponta para o fluxo de trabalho completoLatência percebida pelo usuário
CVCoeficiente de variação (std_dev / média × 100)Estabilidade da medição — menor = mais confiável

Configuração determinística

Todos os frameworks usam de forma idêntica:

  • Definições de ferramentas (mesmos nomes, esquemas e implementações simuladas)
  • Prompts do sistema e mensagens do usuário
  • Configurações do modelo (temperature=0, sem variação de amostragem)
  • Implementações de ferramentas (retornam respostas fixas, sem E/S)

Limitações

  • Os resultados dependem das condições da rede e da carga do Gemini API
  • Frameworks Python medidos com CPython 3.11 (não PyPy)
  • A inicialização a frio inclui a inicialização do interpretador Python para frameworks Python
  • A sobrecarga do loop para LangGraph inclui a travessia do grafo e a serialização do estado

Acompanhamento de regressões

Use benchmarks na CI para detectar regressões de desempenho:

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

As linhas de base são armazenadas em .adk-bench/baselines/ e podem ser submetidas ao repositório.

Leitura adicional


Anterior: ← Avaliação | Próximo: Controle de acesso →