نمط الفشل: القدرة ممنوحة، النية غير مُتحقق منها
هذا هو النمط المتكرر. يُصرَّح للوكيل بـتصفح نظام، ثم يتصرف عليه. أو يُصرَّح له بـقراءة سجل، ثم يكتب واحدًا. معظم الحوادث تعيش في تلك الفجوة بين الفعل الذي مُنح للوكيل والفعل الذي نفذه فعليًا. المنح عادة ضمني: بيانات اعتماد بنطاق قراءة-كتابة، أداة بتوقيع http_request عام، حساب خدمة يمكنه الوصول إلى أي شيء على مقطع شبكة. النية عادة غير مُتحقق منها: لا يوجد أثر يقول "هذا الاستدعاء المحدد، ضد نقطة النهاية هذه المحددة، بهذه الحمولة المحددة، تم فحصه قبل أن يغادر العملية."
تسجيل ما بعد الحدث لا يمكنه سد هذه الفجوة. السجلات تخبرك بما حدث؛ لا ترفض الاستدعاء. إذا كانت السيطرة الوحيدة بين وكيل ونقطة نهاية إنتاجية هي جملة في توجيه النظام، فالسيطرة استشارية. نموذج تحت انحراف التوزيع، أو حقن توجيه محمول في مستند مسترجع، أو مخطط انحرف سيتعامل مع النصيحة كاقتراح. يجب أن يحدث الرفض في مكان لا يستطيع الوكيل الجدال معه.
عقد البيئة المعزولة له أربعة بنود
عقد البيئة المعزولة هو شرط مسبق قابل للفحص آليًا مرتبط بحدود أداة. ليس مستند سياسة وليس توجيهًا. له أربعة بنود، وجميعها تُنفَّذ خارج النموذج.
النطاق
النطاق هو المجموعة الدقيقة من نقاط النهاية والأفعال التي يجوز للوكيل استخدامها، معبرًا عنها كقائمة سماح. قائمة الحظر تفشل لأنها يجب أن تُعدّد كل إجراء خطير، وفضاء الإجراءات الخطيرة مفتوح. قائمة السماح تفشل مغلقة: أي شيء غير مذكور يُرفض. بشكل ملموس، النطاق هو مجموعة من الصفوف مثل (method, host, path-pattern, credential-id)، تُطابق قبل بناء الطلب. الأداة التي تعرض URL حر الشكل ليست محددة النطاق؛ إنها وكيل مع خطوات إضافية.

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

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