الحجة ضد اللجوء إلى الأسراب افتراضيًا
من أنماط الفشل الشائعة في هندسة الوكلاء أن تلجأ إلى سرب قبل أن تلجأ إلى دالة. تُفكَّك المهمة إلى أدوار، ويُضاف مشرف، ويُعلَن النظام "وكيليًا". وما بُني في الواقع هو نظام موزّع مع نموذج لغوي في الحلقة، والتكاليف هي تكاليف التوزيع المألوفة مضافًا إليها تكاليف اللاحتمية غير المألوفة.
كل وكيل إضافي يُدخل عملية تسليم. عند كل تسليم، يُسلسِل الوكيل المُنتِج حالته إلى نص، ويُفكِّك الوكيل المستهلك ذلك النص إلى سياق. هذه الرحلة ذهابًا وإيابًا فاقدة. نتيجة مُهيكلة تحمل درجة ثقة ومرجع مصدر وعلامة فشل جزئي تصبح، في النثر، جملة تُسقط الثلاثة جميعًا. والفقد ليس عشوائيًا؛ بل يرتبط ارتباطًا وثيقًا بالمعلومات التي يحتاجها الوكيل اللاحق بالضبط ليقرر المضي أو إعادة المحاولة أو التصعيد.
كما تنمو كلفة التنسيق أسرع مما يوفره التفكيك. إذا استغرقت مهمة T وحدة عمل وانقسمت إلى n مهمة فرعية، فالوفر المثالي نحو T/n. أما كلفة التنسيق فليست T/n؛ بل هي مجموع عمليات التسليم، وكل منها يتطلب prompt واستدعاء نموذج وتحليلًا وتحققًا. عمليًا، إضافة وكلاء بعد النقطة التي تصبح فيها المهام الفرعية مستقلة فعليًا تُنتج نظامًا أبطأ وأغلى وأصعب في التنقيح من الاستدعاء الواحد الذي استبدله.
أعمق مشكلة هي قابلية الاختبار. الكود الحتمي يمكن اختباره وحديًا. الدالة التي تأخذ مدخلًا مُنمَّطًا وتعيد مخرجًا مُنمَّطًا لها عقد يمكن التأكيد عليه. أما prompt المنسّق فليس كذلك. يمكنك تقييم مخرجاته على مجموعة بيانات، وينبغي لك ذلك، لكن لا يمكنك كتابة اختبار يفشل عندما يغيّر المنسّق سياسة توجيهه بصمت بين إصدارات النموذج. الـ prompt مواصفة معبَّر عنها بلغة بلا مُصرِّف.
هذه ليست حجة ضد الأنظمة متعددة الوكلاء. إنها حجة ضد التعامل معها كخيار افتراضي. نمط رئيس الأركان، كما ورد في هذا المقال حول تنسيق جلسات Claude Code، مفيد تحديدًا لأنه يسمّي الشروط التي تستحق فيها طبقة تنسيق أن تُبقى.
إشارات تبرر التنسيق
ثلاث إشارات، عمليًا، تميز مهمة تحتاج منسّقًا عن مهمة تحتاج سكربتًا.
مجموعات أدوات منفصلة أو سياقات منفصلة
إذا كانت المهمة الفرعية A تحتاج وصول قراءة إلى قاعدة شيفرة والمهمة الفرعية B تحتاج وصول كتابة إلى هدف نشر، فهما تحتاجان مجموعتي أدوات مختلفتين. الوكيل الواحد الذي يحمل الأداتين يجب أن يُؤتمن على كلتيهما، ويجب أن يحمل سياقه مخططات كلتيهما وبيانات اعتمادهما وأنماط فشلهما. فصلُهما يعني أن سياق كل وكيل أصغر وسلطته أضيق. والحجة نفسها تنطبق على نوافذ السياق: إذا كانت المادة الخام لمهمة فرعية ستستهلك معظم النافذة، والمادة الخام لأخرى ستستهلك الباقي، فسيقتطع الوكيل الواحد أو يلخّص، والتلخيص هو حيث يكمن فقدان المعلومات.

استقلال حقيقي
الوكيل الثاني يستحق كلفته عندما يكون مستقلًا فعليًا، لا عندما يكون إعادة صياغة للأول. الاستقلال يعني أنه لا يشارك الوكيل الأول سياقه ولا افتراضاته ولا أنماط فشله. المدقق الذي يقرأ السياق نفسه والاستدلال نفسه سيميل إلى الاتفاق مع المُنتِج، لأنه يشغّل التوزيع نفسه على الرموز نفسها. أما المدقق الذي يقرأ الأثر فقط، ويملك أدواته الخاصة لفحصه، فيمكنه أن يختلف. وهذا الاختلاف هو القيمة.
مهام طويلة الأفق
بعض المهام طويلة الأفق بما يكفي لأن سياقًا واحدًا لا يستوعبها. هجرة تمس مئات الملفات، مهمة بحثية تتراكم مصادرها على مدى ساعات، استجابة لحادث تمتد عبر أنظمة متعددة: هذه تتجاوز ما يمكن لنافذة واحدة الاحتفاظ به، ونمط الفشل ليس إجابة خاطئة بل إجابة منسية. هنا وظيفة المنسّق ليست الاستدلال حول المهمة بل إدارة سجل ما أُنجز وما تبقى.
إذا لم تكن أي من هذه الإشارات الثلاث موجودة، فالإجابة الهندسية الصادقة هي سكربت. سكربت يستدعي نموذجًا واحدًا، ويتحقق من المخرج مقابل مخطط، ويعيد المحاولة عند الفشل، هو قابل للاختبار وقابل للمراقبة ورخيص. وهو أيضًا، في معظم الحالات، أسرع.
تنفيذ النمط
عندما يكون التنسيق مبررًا، تحدد تفاصيل التنفيذ ما إذا كان سينجح. ثلاث آليات تهم أكثر من اختيار الإطار.
سجل مهام مرجعي واحد
ينبغي للوكلاء أن يقرأوا ويكتبوا في سجل مشترك واحد، لا أن يتبادلوا ملخصات نثرية. السجل هو مصدر الحقيقة لما جُرِّب وما نجح وما هو معطَّل. كل مدخل سجل: معرّف المهمة والحالة والمدخلات والمخرجات وأي خطأ. يطالب الوكلاء بالمهام ويحدّثون الحالة ويضيفون النتائج. المنسّق
هذا يقلب النمط المعتاد. فبدلًا من أن يحتفظ المنسّق بالحالة في سياقه ويلخصها للعاملين، تعيش الحالة خارج كل سياق وتُقرأ عند الطلب. العامل الذي يحتاج معرفة ما إذا كانت تبعية قد نجحت يقرأ السجل بدلًا من الوثوق بملخص. يبقى سياق المنسّق صغيرًا، وهذا هو المقصود.

عقود التسليم كحمولات مُنمَّطة
ينبغي أن يكون التسليم حمولة مُنمَّطة، لا ملخصًا نثريًا. عرّف المخطط مرة واحدة، وتحقق على الجانبين، وافشل بصوت عالٍ عند عدم التطابق. عقد أدنى لنتيجة وكيل فرعي قد يبدو هكذا:
{
"task_id": "string",
"status": "succeeded | failed | blocked",
"artefacts": [{"path": "string", "hash": "string"}],
"claims": [{"text": "string", "evidence": "string"}],
"open_questions": ["string"]
}
المخطط يفعل شيئين. فهو يُلزم الوكيل المُنتِج بالتمييز بين ما فعله وما يعتقده، وهما شيئان مختلفان. ويمنح الوكيل المستهلك واجهة مستقرة، فتغيير في استدلال المُنتِج لا يغيّر مدخل المستهلك بصمت. وحيث لا يمكن ملء حقل، يجب على الوكيل أن يقول ذلك، وblocked حالة صالحة. الملخصات النثرية تخفي هذه الحالة بالضبط.
قِس زمن التسليم وفقدان المعلومات
زمن التسليم قابل للقياس: الوقت من إكمال المُنتِج إلى بدء المستهلك، والوقت المستغرق في التحقق وإعادة المحاولات. أما فقدان المعلومات فأصعب لكنه ليس مستحيلًا. قِسه بمقارنة ما أصدره المُنتِج بما تصرف عليه المستهلك. إذا كانت حمولة المُنتِج تحتوي ثلاثة أسئلة مفتوحة ولم يعالج إجراء المستهلك التالي أيًا منها، فذلك فقدان، ويستحق التسجيل. وعلى مدى تشغيلات كثيرة، يخبرك توزيع هذه الخسائر أين تكون العقود رقيقة جدًا.
تعامل مع كليهما كمقاييس من الدرجة الأولى، إلى جانب معدل نجاح المهمة والكلفة لكل مهمة. نظام تنسيق صحيح لكن عمليات تسليمه تستغرق وقتًا أطول من العمل الذي تنسقه هو نظام ينبغي طيّه عائدًا إلى سكربت.
المقايضة الصادقة
نمط رئيس الأركان ليس مجانيًا، وليس صحيحًا دائمًا. تكاليفه حقيقية: أجزاء متحركة أكثر، وprompts أكثر للصيانة، وأنماط فشل أكثر للمراقبة، وتجربة تنقيح تمتد عبر سياقات متعددة لا سياق واحد. وفوائده حقيقية أيضًا، لكنها مشروطة. تظهر عندما تحتاج المهام الفرعية إلى سياق مختلف أو أدوات مختلفة أو تحقق مستقل، وتختفي إلى حد كبير عندما لا تحتاج.
الانضباط العملي هو البدء بالسكربت. اكتب الاستدعاء الواحد، وتحقق من مخرجاته، وقِس أين يفشل. وعندما يفشل لأن السياق كبير جدًا، أو الأدوات متعارضة، أو التحقق غير مستقل، أضف المنسّق. ليس قبل ذلك. النمط استجابة لمجموعة محددة من القيود، وتطبيقه دون تلك القيود يُنتج مظهر التطور على حساب الشيء نفسه.
