انتقل إلى المحتوى الرئيسي

الوحدة 8 — الكلفة وزمن الاستجابة وحدود المقاربة

بعد ثلاث وحدات في تركيب الفريق، الوقت الآن لمقاييس صادقة: كم يُكلّف تنفيذ واحد فعلًا؟ كم يستغرق من الزمن؟ ما مقدار التفاوت بين تنفيذَين على نفس المدخلات؟ ومتى لا يستحقّ الأمر أن نُشغّل هذا الفريق أصلًا؟

عدد النداءات لكلّ تنفيذ

لا يوجد رقم سحريّ، لكن يمكن حسابه:

  • مهامّ عاديّة: نداء نموذج واحد لكلّ مهمّة (تعليمة + توليد المخرَج).
  • مهامّ بأدوات: نداء أوّل يقرّر الأداة، نداء ثانٍ يقرأ نتيجتها، وأحيانًا ثالث. عمومًا 2 إلى 4 نداءات لكلّ استخدام أداة.
  • تفويض بين وكلاء: كلّ سؤال أو تفويض يُضيف نداءَين (سؤال + جواب).
  • العملية الهرميّة: المدير يُضيف نداءً لكلّ قرار توزيع، وأحيانًا نداء تدقيق بعد كلّ نتيجة وكيل.

على خيطنا الأحمر بأربع مهامّ عاديّة، الحدّ الأدنى المتوقّع: 6 نداءات (نداءان للمحلِّل بسبب أداة القراءة، ونداء لكلّ من الآخرين، ونداء استرجاع من الذاكرة). في الممارسة، نُلاحظ متوسّطًا حول 8.

الفاتورة الحقيقيّة

قياس عشر تنفيذات متعاقبة على نفس ملفّ المواصفات، بعملية تتابعيّة، memory=True، ونماذج مختلطة (gpt-4o للمحلّل والمراجِع، gpt-4o-mini للمسؤول):

المقياسمتوسّطأدنىأعلى
النداءات لكلّ تنفيذ8.4612
رموز الدخل14 50011 20022 800
رموز الخرج4 1003 4005 600
الزمن (ثانية)523884
الكلفة (د.أ)0.480.320.71

ملاحظات:

  • التفاوت في الكلفة 2.2× بين أرخص وأغلى تنفيذ على نفس المدخلات. سبب رئيسيّ: النموذج يقرّر أحيانًا استدعاء أداة إضافيّة أو إعادة قراءة قسم.
  • الزمن يتضاعف حين يحدث خطأ أداة (timeout) وإعادة محاولة. تعديل max_iter يحدّ من ذلك.
  • المسؤول يستهلك 5٪ فقط من الرموز رغم أنّه ينفّذ نداءات كثيرة قصيرة. اختيار gpt-4o-mini له كان صحيحًا.

المقارنة مع البدائل

نفس المسار على وكيل واحد مُحكَم التعليمات (نموذج gpt-4o وحيد بلا CrewAI):

المقياسفريق CrewAIوكيل واحد
متوسّط الكلفة0.48 د.أ0.19 د.أ
متوسّط الزمن52 ث24 ث
جودة الوثيقة (تقييم بشريّ من 10)8.47.1

القراءة: الفريق يكلّف 2.5× ويستغرق 2.2×، مقابل تحسّن جودة 1.18×. هل يستحقّ؟ يعتمد على السياق: إن كانت الوثيقة تُقرأ ألف مرّة من عملاء، نعم. إن كانت مذكّرة داخليّة، لا.

أين ينبع التفاوت

فحص عشرين تنفيذًا أظهر مصادر التفاوت الرئيسيّة، مرتّبة بأثرها:

  1. قرار أداة إضافيّة: النموذج قد يبحث ثلاث مرّات على الويب في مرّة، ومرّة واحدة في أخرى. الأثر: ~30٪ من التفاوت.
  2. إعادة محاولة بعد فشل أداة: timeout أو نتيجة فارغة تُشعل جولة إضافيّة. الأثر: ~25٪.
  3. جولة تفويض بين المراجِع والمحرِّر: المراجِع قد يطلب تعديلًا. الأثر: ~20٪.
  4. حجم استرجاعات الذاكرة الطويلة: تنمو تدريجيًّا. الأثر: ~15٪.
  5. تفاوت داخليّ في النموذج نفسه: تنفيذات مختلفة تعطي نصوصًا مختلفة الطول. الأثر: ~10٪.

قواعد الحدّ من الكلفة

  • حدّد max_iter صراحةً على كلّ وكيل: 5 إلى 8 كافٍ عادةً. الافتراض قد يكون 25.
  • استعمل نماذج مختلطة: نموذج قوي للمحوريّين، خفيف للمنسّق.
  • قنّن مخرجات الأدوات: كلّ أداة تُعيد بيانات كبيرة يجب أن يكون لها حدّ.
  • راقب long_term_memory.db: نظّفه دوريًّا إن كنت تُشغّل الفريق كثيرًا.
  • استعمل التوازي حين يمكن: مهامّ مستقلّة يمكن تشغيلها في نفس الوقت عبر async_execution=True على Task.

حدود CrewAI في الإنتاج

الإطار ممتاز للنماذج الأوّليّة والمخرجات ذات القيمة العالية، لكنّه ليس الحلّ الشامل:

  • الحالة العابرة: Crew.kickoff() تنفيذ واحد كامل. لا يوجد استئناف بعد انقطاع في المنتصف. للمهامّ الطويلة، LangGraph أنسب.
  • التزامن: تشغيل خمسة عشر فريقًا متزامنًا في نفس العمليّة يفرض تصميمًا حذرًا للأدوات (لا حالات مشتركة).
  • الملاحظة: السجلّات الافتراضيّة نصّيّة. لتتبّع في الإنتاج، تكامل مع OpenTelemetry أو LangSmith يجب أن يُبنى يدويًّا.
  • الحدّ من الإفراط في المزوّد: لا يوجد RateLimiter مدمج في CrewAI؛ يجب لفّه على النموذج قبل التمرير.

متى لا تستعمل فريقًا

خلاصة الوحدة 1 مؤكّدة بأرقام هذه الوحدة:

  • مسار من خطوتَين قابل للتنبّؤ: سكربت بايثون بنداءَي نموذج. أخفّ 10×.
  • مهمّة واحدة مركّبة قابلة للتوصيف في تعليمة واحدة: وكيل واحد بأدوات. أخفّ 3×.
  • مسار بحلقة تحكّم صريحة: LangGraph يعطي مرونة أكبر بكلفة تشغيل مقارنة.
  • CrewAI مثاليّ لـ: فريق من 3 إلى 6 وكلاء متخصّصين على مهمّة تستحقّ عدّة زوايا نظر.
تنبيه الفاتورة

قبل الإطلاق، شغّل الفريق ثلاثين مرّة على مدخلات نموذجيّة، وحسبَ الفاتورة الشهريّة المتوقّعة. تفاوت في الكلفة الفرديّة يعني تفاوت في الفاتورة الشهريّة. اضبط ميزانيّة تنبيه مع مزوّدك.

الخلاصة

  • فريق من أربعة وكلاء بعملية تتابعيّة يُنتج ~8 نداءات نموذج و0.48 د.أ لكلّ تنفيذ في خيطنا الأحمر.
  • التفاوت 2× بين تنفيذَين على نفس المدخلات؛ منابعه أداء الأدوات وقرارات النموذج.
  • مقارنةً بوكيل واحد، الفريق يكلّف 2.5× ويعطي جودة أعلى بـ1.18× — التبرير يعتمد على قيمة المخرَج.
  • CrewAI ليس الحلّ الشامل: LangGraph أنسب للمسارات الطويلة، والوكيل الواحد كافٍ للمهامّ البسيطة.