基准测试结果
已发布的性能基准测试,将 ADK-Rust 与其他智能体框架进行比较。所有测量均使用真实的 LLM 调用,并采用确定性配置以确保可复现性。
摘要
| 指标 | ADK-Rust | Gemini Python SDK | LangGraph |
|---|---|---|---|
| 冷启动 | 109 ms | 501 ms | 502 ms |
| 代理循环开销 | 568 μs | 253 μs | 1228 ms |
ADK-Rust 的冷启动速度比 Python 框架快约 4.6 倍,循环开销低于 1 毫秒。由于抽象层极少,Gemini Python SDK 的循环开销略低,但相较于典型 LLM 响应时间(500 毫秒–3 秒),ADK-Rust 的开销可以忽略不计。
工作负载结果
simple_tool_call
一条用户消息 → 一次工具调用 → 一条最终响应。用于测量最小往返时间。
| 框架 | 总时间 | 冷启动 | 循环开销 | 变异系数 |
|---|---|---|---|---|
| ADK-Rust | 1.2s | 109 ms | 568 μs | 4.2% |
| Gemini Python SDK | 1.8s | 501 ms | 253 μs | 6.1% |
| LangGraph | 2.1s | 502 ms | 1228 ms | 8.3% |
multi_step_reasoning
需要在每一步之间进行推理并连续调用 3–5 次工具的多轮对话。
| 框架 | 总耗时 | 冷启动 | 循环开销 | CV |
|---|---|---|---|---|
| ADK-Rust | 4.1s | 109 ms | 568 μs | 5.1% |
| Gemini Python SDK | 5.9s | 501 ms | 253 μs | 7.8% |
| LangGraph | 7.3s | 502 ms | 1228 ms | 9.4% |
parallel_tool_invocation
单条用户消息同时触发并发分派的 3 个并行工具调用。
| 框架 | 总时间 | 冷启动 | 循环开销 | 变异系数 |
|---|---|---|---|---|
| ADK-Rust | 2.3s | 109 ms | 568 μs | 3.9% |
| Gemini Python SDK | 3.7s | 501 ms | 253 μs | 5.6% |
| LangGraph | 4.8s | 502 ms | 1228 ms | 7.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-genai和langgraph的 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/ 中,并且可以提交到仓库。
延伸阅读
- 基准测试工具指南 — CLI 参考和配置
- ROADMAP.md — 未来版本的性能目标
adk-bench/README.md— 完整的基准测试框架文档