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

1. فئتان من الفحوصات

كل قاعدة في حواجز الحماية وكل تقييم لجدار الحماية تقع في إحدى فئتين.

الفحوصات المدمجة / الحتمية

قاعدة قائمة حظر الكلمات المفتاحية (keyword)، والتعبير النمطي (regex)، وكشف PII (pii)، والطول الأقصى (max_chars) لحواجز الحماية كلها عمليات نصية ونمطية محلية بالكامل — لا استدعاء نموذج، لا قفزة شبكية، لا شيء يمكن أن يُهلك. تقييم قاعدة جدار الحماية (مطابقة أنماط glob لاسم الأداة، محمولات الوسائط، نطاق egress) هو نفسه: حتمي ومحلي. لأغراض عملية، هذه الفحوصات تُضيف زمن استجابة هامشي لطلبك. إنها آمنة للتشغيل على المسار الساخن وهي ما تُصنع منه قوالب حواجز الحماية المدمجة.

الفحوصات المتقدمة / الدلالية

llm_judge وgrounding وقواعد المورّد external تفوّض الفحص إلى نموذج أو مورّد. إنها تكلّف رحلة ذهاباً وإياباً. ثلاث خصائص تحدّد تلك التكلفة:
  1. الإرسال المتزامن. إذا كانت سياستك تحتوي قواعد متقدمة متعددة، تُرسَل بالتوازي — فحص بطيء واحد لا يُرتَّب أبداً خلف آخر.
  2. مهلة لكل قاعدة. لكل قاعدة متقدمة مهلة (judge_timeout_ms / grounding_timeout_ms / timeout_ms). الفحص الأرضي يكون افتراضياً ~3,000 مللي ثانية؛ الـ judge يستخدم قيمة قابلة للضبط (0 ← افتراضي المحرك). القاعدة محدودة — لا يمكنها التعليق إلى أجل غير مسمى.
  3. مفتوح عند الفشل افتراضياً. عندما تُهلك قاعدة أو يُعيد مورّدها خطأ، يُسجَّل الحدث لكن الطلب يستمر. اضبط judge_fail_open: false (judge) أو fail_open: false (external) للتحوّل إلى fail-closed بدلاً من ذلك.
لذا فإن أسوأ الحالات لأي عدد من القواعد المتقدمة هو أطول مهلة واحدة، وليس مجموع كل المهل.

2. نظرة عامة سريعة

نوع الفحصيضيف زمن استجابة؟كيف يُحدَّد
قائمة حظر keywordهامشي — مسح نصي محليلا شبكة؛ لا مهلة مطلوبة
regexهامشي — مطابقة RE2 محليةلا شبكة؛ لا مهلة مطلوبة
كشف piiهامشي — مسح regex/كيان محليلا شبكة؛ لا مهلة مطلوبة
max_charsهامشي — عدد الأحرفلا شبكة؛ لا مهلة مطلوبة
تقييم قاعدة جدار الحمايةهامشي — مطابقة glob + محموللا شبكة؛ لا مهلة مطلوبة
llm_judgeاستدعاء نموذج واحد محدودjudge_timeout_ms؛ مفتوح عند الفشل افتراضياً
groundingاستدعاء نموذج واحد محدودgrounding_timeout_ms (افتراضي ~3,000 مللي ثانية)؛ مفتوح عند الفشل افتراضياً
مورّد externalاستدعاء مورّد واحد محدودtimeout_ms؛ fail_open افتراضياً
قواعد متقدمة متعددةرحلة واحدة محدودة (إرسال متزامن)أسوأ حالة = أقصى مهلة واحدة، وليس المجموع

3. أين في دورة حياة الطلب تعمل الفحوصات

لا يحدث التطبيق كله في نفس النقطة. الفحص على المدخلات والمخرجات يضيف وقتاً في أماكن مختلفة:
العميل


[فحص حواجز المدخلات]     ← يضيف وقتاً هنا، قبل الأعلى


استدعاء النموذج الأعلى


[فحص حواجز المخرجات]    ← يضيف وقتاً هنا، بعد استجابة النموذج


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

4. كيف تحدّد المهل وfail-open أسوأ الحالات

للقواعد المتقدمة مقياسان: المهلة — الحد الأقصى للوقت الفعلي الذي يُسمح للفحص به. الطلب ينتظر على الأكثر هذا الوقت لتلك القاعدة. الإرسال المتزامن يعني هذا الحد ينطبق لكل قاعدة، وليس لكل سياسة. إذا كان لديك ثلاث قواعد llm_judge كل منها بمهلة 2,000 مللي ثانية، تعمل الثلاثة في وقت واحد والانتظار الكلي هو ~2,000 مللي ثانية، وليس ~6,000 مللي ثانية. fail-open مقابل fail-closed — ماذا تفعل عندما لا تكتمل القاعدة في الوقت المحدد (أو يُخطئ المورّد):
الإعدادالسلوك عند المهلة / الخطأ
fail_open: true (الافتراضي)سجّل الحدث؛ دع الطلب يستمر كما لو اجتاز الفحص
fail_open: falseعامل المهلة / الخطأ كحجب؛ أعِد HTTP 400 guardrail_blocked
fail-open يحافظ على التوفّر بتكلفة فحص فائت. fail-closed يحافظ على ضمان السياسة بتكلفة التوفّر إذا كان الـ judge بطيئاً أو غير قابل للوصول. اختر بناءً على ما يهم أكثر لحالة استخدامك.

5. إرشادات عملية

أبقِ قواعد المسار الساخن مدمجة. إذا كان قلقك الأساسي هو PII أو تسرّب بيانات الاعتماد أو طول المطالبة أو قائمة حظر الكلمات — كلها قواعد مدمجة. إنها لا تضيف زمن استجابة قابلاً للقياس وينبغي أن تكون اختيارك الافتراضي لأي فحص يمكن لمطابقة النص التعامل معه. استخدم llm_judge وgrounding حيث تحتاج دلالات. السُّمية والتحرش والكشف عن الخروج عن الموضوع ونية حقن المطالبة وأمانة RAG ضبابية بحق — لا يلتقطها أي regex بشكل موثوق. هذه هي الحالات الصحيحة للقاعدة المتقدمة. اقبل أن كلاً منها يضيف استدعاء نموذج إضافياً محدوداً. اضبط المهل وفق ميزانية زمن الاستجابة لديك. إذا كان هدفك الشامل 1,000 مللي ثانية، اضبط judge_timeout_ms: 800 (أو أقل) حتى لا يستهلك الـ judge ميزانيتك بأكملها. المهلة الافتراضية للمحرك هي نقطة بداية آمنة؛ اخفضها إذا كانت متطلباتك صارمة. لتوجيه المخرجات، استدعاء النموذج منتهٍ بالفعل. يعمل فحص grounding بعد استجابة النموذج الأعلى — زمن الاستجابة الإضافي في الذيل فقط، وليس على المسار الحرج لزمن أول رمز. هذا يجعله مكاناً منخفض المخاطر لإضافة تطبيق دلالي. قواعد متقدمة متعددة؟ وزّع العمل. لأن القواعد المتقدمة تعمل بالتزامن، تكديس ثلاث قواعد llm_judge يكلّف تقريباً نفس تكلفة واحدة — أطول مهلة فردية تحدد الوقت الفعلي، وليس العدد. استخدم هذا لتطبيق طبقات فحوصات دلالية دون تكلفة إضافية.

أوضاع التطبيق

fail-open مقابل fail-closed — المرجع الكامل لضبط سلوك سياستك في ظل حالات المهلة والخطأ.

حواجز الحماية

أنواع القواعد وحقول الـ judge وعتبات التوجيه والمرجع الكامل لضبط حواجز الحماية.
القواعد المدمجة هامشية على كل مسار؛ القواعد المتقدمة تكلّف استدعاءً واحداً محدوداً ومتزامناً مفتوحاً عند الفشل — اضبط المهلة ووضع الفشل، وإجراءات التطبيق لا تضيف زمن استجابة غير محكوم لوكلائك.