وكلاؤك بخير. لكن عملية التسليم بينهم ليست كذلك.

تُظهر معظم العروض التوضيحية للأنظمة متعددة الوكلاء (multi-agent) وكيلًا واحدًا يرتدي زيًا تنكريًا. فهي تُظهر الوكيل (أ) وهو يؤدي مهمة، ثم الوكيل (ب) وهو يؤدي مهمة أخرى. لكنها لا تُظهر ما يحدث عندما يفشل الوكيل (أ) في تزويد الوكيل (ب) بما يحتاجه.

لقد أطلقتُ ثلاثة أنظمة متعددة الوكلاء في بيئة الإنتاج هذا العام. لم تكن الوكلاء هي الجزء الصعب، بل كانت عمليات التسليم (handoffs).

عملية التسليم هي أكثر من مجرد تمرير نص. يجب عليك إدارة:

  • محاذاة المخطط (Schema alignment): يجب على الوكيل (ب) تحليل مخرجات الوكيل (أ) في كل مرة.
  • انتشار الفشل (Failure propagation): يجب أن يعرف النظام متى يفشل أحد الوكلاء.
  • نظافة السياق (Context hygiene): كل عملية تسليم تضيف ضجيجًا إلى نافذة السياق الخاصة بك.

الخطأ الأكبر هو التعامل مع الوكلاء كصناديق سوداء متصلة بخيط. تقوم بإرسال أمر (prompt) للوكيل (أ)، وتحصل على نتيجة، ثم تدفعها إلى الوكيل (ب). هذا يعمل حتى ينكسر النظام. وعندما ينكسر، لن تعرف السبب.

تجنب أنماط الفشل الثلاثة الشائعة هذه:

  1. الاقتطاع الصامت (Silent truncation): ينتج الوكيل (أ) الكثير من البيانات، فيقوم الوكيل (ب) بقص النهاية. بعد ذلك، يعالج الوكيل (ب) بيانات جزئية ويعطيك نتائج غير منطقية. قم بقياس عدد الرموز (tokens) في كل خطوة.

  2. انحراف المخطط (Schema drift): تقوم بتغيير الأمر (prompt) الخاص بالوكيل (أ)، فيقوم الآن بإرجاع تنسيق مختلف. يتعطل الوكيل (ب) لأنه يتوقع التنسيق القديم. استخدم المخرجات المهيكلة (structured output) مثل Pydantic بدلاً من الاعتماد على الأوامر.

  3. حالات التسابق (Race conditions): تقوم بتشغيل خمسة عمال في وقت واحد. ينتهي ثلاثة منهم، لكن اثنين لا يزالان يعملان. يبدأ المجمع (aggregator) الخاص بك مبكرًا ببيانات جزئية. هذا يعمل في الاختبارات ولكنه يفشل في بيئة الإنتاج. استخدم حاجزًا (barrier) لانتظار جميع المهام.

كان نظامي الأول ذكيًا ولكنه فوضوي. استخدم التوجيه الديناميكي (dynamic routing) وعمليات التسليم الضمنية. كان يعمل حتى واجه حركة مرور حقيقية وفشل بصمت.

كان نظامي الثاني قبيحًا ولكنه صحيح. استخدمت كل عملية تسليم عقدًا محدد النوع (typed contract). كان كل فشل صريحًا، وكان كل وكيل معزولًا.

يجمع نظامي الحالي بين الاثنين؛ فهو يستخدم انضباط النسخة الثانية ولكنه يخفي الكود الممل خلف إطار عمل (framework).

إذا كنت تبني أنظمة متعددة الوكلاء، فابدأ بالنسخة القبيحة والصحيحة. لا تحاول أن تكون ذكيًا في البداية. اجعلها تعمل بشكل صحيح في بيئة الإنتاج، ثم اجعلها أنيقة.

مشكلة التسليم لا تصبح أسهل، لكنك ستتوقف عن الشعور بالمفاجأة منها.

المصدر: https://dev.to/mrclaw207/your-agents-are-fine-the-handoff-between-them-isnt-2dij

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi