基准测试结果

已发布的性能基准测试,将 ADK-Rust 与其他智能体框架进行比较。所有测量均使用真实的 LLM 调用,并采用确定性配置以确保可复现性。

摘要

指标ADK-RustGemini Python SDKLangGraph
冷启动109 ms501 ms502 ms
代理循环开销568 μs253 μs1228 ms

ADK-Rust 的冷启动速度比 Python 框架快约 4.6 倍,循环开销低于 1 毫秒。由于抽象层极少,Gemini Python SDK 的循环开销略低,但相较于典型 LLM 响应时间(500 毫秒–3 秒),ADK-Rust 的开销可以忽略不计。

工作负载结果

simple_tool_call

一条用户消息 → 一次工具调用 → 一条最终响应。用于测量最小往返时间。

框架总时间冷启动循环开销变异系数
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

需要在每一步之间进行推理并连续调用 3–5 次工具的多轮对话。

框架总耗时冷启动循环开销CV
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

单条用户消息同时触发并发分派的 3 个并行工具调用。

框架总时间冷启动循环开销变异系数
ADK-Rust2.3s109 ms568 μs3.9%
Gemini Python SDK3.7s501 ms253 μs5.6%
LangGraph4.8s502 ms1228 ms7.2%

如何复现

# 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

要求:

  • 已设置 GOOGLE_API_KEY 环境变量
  • 可访问 Gemini API 的网络
  • 对于跨框架比较:安装了 google-genailanggraph 的 Python 3.11+ 环境

方法

测试环境

  • 模型:Gemini 3.5 Flash-Lite(gemini-3.5-flash-lite
  • 温度:0(确定性)
  • 使用固定随机种子以确保可复现
  • 预热运行 2 次后进行 10 次测量迭代
  • 网络:所有框架使用同一台机器和同一网络

开销隔离

通过从总执行时间中减去测得的 LLM 延迟来隔离框架开销:

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

这将隔离框架的贡献:序列化、反序列化、上下文组装、事件分发和状态管理。

指标含义

指标定义重要性
冷启动从进程启动到收到第一个 LLM 响应的时间影响无服务器/容器启动以及 CLI 响应速度
循环开销每次工具调用往返的框架处理时间会在多步骤 agent 中累积(5 个步骤 × 1.2 秒 = 浪费 6 秒)
总时间完整工作流的端到端实际耗时用户感知的延迟
CV变异系数(std_dev / 平均值 × 100)测量稳定性——越低越可靠

确定性配置

所有框架使用相同的:

  • 工具定义(名称、架构、模拟实现均相同)
  • 系统提示和用户消息
  • 模型设置(temperature=0,无采样变化)
  • 工具实现(返回固定响应,无 I/O)

限制

  • 结果取决于网络状况和 Gemini API 负载
  • Python 框架使用 CPython 3.11 进行测量(不使用 PyPy)
  • 冷启动包含 Python 框架的 Python 解释器启动时间
  • LangGraph 的循环开销包括图遍历和状态序列化

跟踪性能回归

在 CI 中使用基准测试来捕获性能回归:

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

基线存储在 .adk-bench/baselines/ 中,并且可以提交到仓库。

延伸阅读


上一页← 评估 | 下一页访问控制 →