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

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

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