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

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

تداعيات التقييم
تحتاج تقييمات الموجّه إلى مدخلات خصومية، وليس مجموعات مهام محجوزة. تقيس المجموعة المحجوزة مدى تكرار اتفاق الموجّه مع تسمية. أما المجموعة الخصومية فتقيس ما يحدث عندما يكون الموجّه مخطئاً: هل يسبب الفرع الخاطئ ضرراً، أم يلتقطه الفارض؟ السؤال الثاني هو المهم للسلامة.
قِس تكلفة الفرع الخاطئ، وليس دقة الفرع. لكل توجيه خاطئ محتمل، قدّر أسوأ نتيجة: كتابة غير مصرح بها، تجاوز ميزانية، تسرب بيانات، حلقة عالقة. إذا كانت التكلفة محدودة بفارض لاحق، فإن دقة الموجّه مقياس أداء. وإذا كانت التكلفة غير محدودة، فإن الموجّه نقطة فرض متنكرة، وهذا عيب تصميمي.
هذا يعيد تأطير هدف التقييم. بدلاً من السؤال "كم مرة يختار الموجّه الأداة الصحيحة؟"، اسأل "ما هو نطاق التأثير عندما يختار الأداة الخاطئة؟" الجواب يحدد ما إذا كان يمكن أن يكون الموجّه رخيصاً وفاقداً للمعلومات أو ما إذا كان يحتاج إلى استبداله بنقطة قرار سياسات.
ما يعنيه هذا لمعماريات الوكلاء
نماذج القرار مثل Strands Decider من Amazon وClef من Cloudflare هي عناصر توجيه أولية مفيدة. إنها تقلل تكلفة التفرع وتجعل حلقات الوكلاء أكثر استجابة. لكنها ليست أسطح تحكم. التعامل معها على هذا النحو ينقل نمط الفشل بدلاً من إزالته. النمط الصحيح هو نمط طبقي: موجّه سريع وفاقد للمعلومات داخل حلقة المخطِّط، وفارض لاحق يفشل مغلقاً، وأثر تدقيق يسجل لقطة مدخلات الموجّه. هذا النمط يقبل قيود الموجّه ويضع عبء الفرض حيث ينتمي.
المقايضة صريحة: تدفع ثمن الفرض في زمن الاستجابة والتعقيد، وتكسب الاحتواء. لا يمكنك الحصول على الاحتواء من مصنّف لا يرى الحالة الكاملة ولا يستطيع الرفض. العمل الهندسي هو وضع الموجّه حيث تكون قراراته الفاقدة للمعلومات آمنة، وبناء الفارض الذي يلتقط الباقي.
