نتائج الاختبارات المعيارية

اختبارات معيارية منشورة للأداء تقارن ADK-Rust بأطر عمل الوكلاء الأخرى. تستخدم جميع القياسات استدعاءات حقيقية لـ LLM مع إعدادات حتمية لضمان إمكانية إعادة الإنتاج.

الملخص

المقياسADK-RustGemini Python SDKLangGraph
بدء التشغيل البارد109 ms501 ms502 ms
النفقات العامة لحلقة الوكيل568 μs253 μs1228 ms

يحقق ADK-Rust بدء تشغيل بارد أسرع بنحو 4.6 مرات من كلا إطاري Python، مع زمن عبء للحلقة أقل من ميلي ثانية. يتميز SDK الخاص بـ Gemini Python بزمن عبء للحلقة أقل قليلًا بفضل التجريد المحدود، إلا أن زمن عبء ADK-Rust لا يُذكر مقارنةً بأزمنة الاستجابة المعتادة لـ LLM (من 500 مللي ثانية إلى 3 ثوانٍ).

نتائج أعباء العمل

simple_tool_call

رسالة مستخدم واحدة ← استدعاء أداة واحد ← استجابة نهائية واحدة. يقيس الحد الأدنى لزمن الرحلة ذهابًا وإيابًا.

إطار العملإجمالي الوقتبدء التشغيل الباردالحمل الزائد للحلقةCV
ADK-Rust1.2s109 ms568 μs4.2%
Gemini Python SDK1.8s501 ms253 μs6.1%
LangGraph2.1s502 ms1228 ms8.3%

multi_step_reasoning

محادثة متعددة الأدوار تتطلب إجراء 3–5 استدعاءات متسلسلة للأدوات مع الاستدلال بين كل خطوة.

الإطارالوقت الإجماليبدء التشغيل الباردالحمل الزائد للحلقةمعامل التباين
ADK-Rust4.1s109 ms568 μs5.1%
Gemini Python SDK5.9s501 ms253 μs7.8%
LangGraph7.3s502 ms1228 ms9.4%

parallel_tool_invocation

رسالة مستخدم واحدة تؤدي إلى إرسال 3 استدعاءات متوازية للأدوات بشكل متزامن.

الإطارالزمن الإجماليبدء التشغيل الباردالحمل الزائد للحلقةCV
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
  • للمقارنة بين أطر العمل: Python 3.11+ مع تثبيت google-genai وlanggraph

المنهجية

بيئة الاختبار

  • النموذج: Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)
  • درجة الحرارة: 0 (حتمي)
  • بذرة عشوائية ثابتة لضمان إمكانية إعادة الإنتاج
  • 10 تكرارات للقياس بعد تشغيلين تمهيديين
  • الشبكة: الجهاز نفسه، والشبكة نفسها لجميع أطر العمل

عزل الحمل الزائد

يتم عزل الحمل الزائد لإطار العمل عن طريق طرح زمن استجابة LLM المقاس من إجمالي وقت التنفيذ:

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

يعزل هذا مساهمة إطار العمل: التسلسل، وإلغاء التسلسل، وتجميع السياق، وإرسال الأحداث، وإدارة الحالة.

معنى المقاييس

المقياسالتعريفسبب الأهمية
البدء الباردالوقت من تشغيل العملية إلى استلام استجابة LLM الأولىيؤثر في بدء تشغيل الخوادم عديمة الحالة/الحاويات، واستجابة CLI
الحمل الزائد للحلقةوقت معالجة إطار العمل لكل رحلة ذهابًا وإيابًا لاستدعاء الأداةيتراكم مع الوكلاء متعددي الخطوات (5 خطوات × 1.2s = 6s مهدرة)
الوقت الإجماليالوقت الفعلي من البداية إلى النهاية لسير العمل الكاملزمن الاستجابة الذي يلاحظه المستخدم
معامل التباينمعامل التباين (std_dev / المتوسط × 100)استقرار القياس — الأقل = أكثر موثوقية

التكوين الحتمي

تستخدم جميع الأطر ما يلي بشكل متطابق:

  • تعريفات الأدوات (الأسماء والمخططات والتنفيذات الوهمية نفسها)
  • مطالبات النظام ورسائل المستخدم
  • إعدادات النموذج (temperature=0، دون اختلاف في أخذ العينات)
  • تنفيذات الأدوات (إرجاع استجابات ثابتة، دون عمليات إدخال/إخراج)

القيود

  • تعتمد النتائج على ظروف الشبكة وحِمل 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/ ويمكن تثبيتها في المستودع.

قراءة إضافية


السابق: ← التقييم | التالي: التحكم في الوصول →

نتائج الاختبارات المعيارية - وثائق ADK-Rust | ADK-Rust