400 من تحكّم أمني ليس عيباً في مطالبتك. إنه
سياسة تؤدّي عملها. عملك هو إيجاد أي سياسة، ثم تقرّر ما إذا كنت ستصلح
الاستدعاء أو تخفّف القاعدة.
1. لماذا حُجب طلب llm الخاص بي؟ — ابدأ برمز الخطأ
كل حجب أمني على البوابة المُستضافة يعيد HTTP 400 برمزcode قابل
للقراءة آلياً في جسم الخطأ على هيئة OpenAI. ذلك الرمز هو أول مفترق على
الطريق — يخبرك بأي مستوى تحكّم تصحّح وأي تغذية تفتح.
guardrail_blocked
أُطلقت قاعدة محتوى حاجز حماية على إدخال
طلبك أو إخراج النموذج. تتبّعها في تغذية Matches.
انظر §2.
firewall_blocked
رفضت قاعدة جدار حماية استدعاء أداة.
تتبّعها في تغذية Events. انظر
§3.
firewall_approval_pending
استدعاء أداة مُعلَّق لموافقة بشرية — وليس مرفوضاً. حُلّه، لا تصحّحه.
انظر §4.
الرموز الثلاثة جميعاً skip-retry: إعادة تشغيل الاستدعاء المطابق تماماً
توجّه إلى نفس السياسة وتحجب مجدداً. إعادة المحاولة زمن انتظار مهدور —
أصلح الإدخال أو القاعدة بدلاً من ذلك. جدول الرموز الكامل يعيش في
رموز الأخطاء.
2. guardrail_blocked — اعثر على القاعدة في Matches
guardrail_blocked يعني أن سياسة محتوى مرتبطة بمفتاحك (أو افتراضي مساحة
عملك) شغّلت إجراء block مقابل إدخال الطلب أو إخراج النموذج. رسالة
الحجب تسمّي حاجز الحماية والقاعدة، والطلب لا يكلّفك أي حصة — حجب
الإدخال يُطلق قبل القياس؛ وحجب الإخراج يُرجِع الحصة المستهلكة مسبقاً.
تتبّعها:
افتح تغذية Matches
في وحدة التحكم، اذهب إلى تبويب Matches في صفحة حواجز الحماية
(
GET /api/guardrail/match، Member). كل قاعدة تُطلق تهبط هنا — مع
RuleType وAction وStage وسلسلة Detail مثل
pii: email, phone أو matched 3 keyword(s).رشّح إلى الحجب
رشّح بـ
action = block ووقت طلبك. يخبرك الصف المطابق بنوع القاعدة
(pii، regex، keyword، max_chars، llm_judge، grounding،
external) وما إذا أُطلق في مرحلة input أو output.مثال واحد ملموس
ترسل رداً للدعم يحتوي على SSN عميل. حاجز حمايتكpii-shield لديه تجاوز
entity_actions يحجب على ssn:
400 guardrail_blocked. تُظهر تغذية Matches
RuleType: pii، Action: block، Stage: input، Detail: pii: ssn.
الإصلاح قرار منتج، لا تغيير كود: خفّف التجاوز إلى mask
(لا يرى النموذج SSN أبداً، يمضي الاستدعاء)، أو احتفظ بالحجب وجرّد SSN
أعلى. انظر حواجز الحماية لمرجع نوع القاعدة
وكيان PII الكامل.
3. firewall_blocked — اعثر على الحكم في Events
firewall_blocked يعني أن سياسة جدار حماية
رفضت استدعاء أداة. على سطح inbound يظهر كـ 400؛ وعبر بوابة MCP يظهر
كـخطأ أداة (firewall deny: <reason>) فيستطيع النموذج التفاعل بدلاً من
الانهيار. يحمل metadata الخطأ رمز السبب وعوامل المخاطرة والدرجة.
تتبّعها في تغذية Events (GET /api/workspace/firewall/events،
Developer+) — السجل الخام وراء كل تقييم. يحمل كل حدث حكماً والسطح الذي
رُئي عليه:
| الحكم | ماذا يعني لحجبك |
|---|---|
deny | قاعدة (أو default_verdict) حجبت الاستدعاء. هذا هو firewall_blocked لديك. |
audit | مسموح لكن مُسجَّل — متضمناً [shadow] “would deny” إذا كانت السياسة في وضع الظل. |
cap_cost | تجاوز الإنفاق المتراكم للتشغيل سقف السنتات لكل قاعدة؛ يُحل إلى deny. |
رشّح Events إلى الرفض
رشّح بـ
verdict=deny، ثم بـ tool أو run_id أو session_id
لعزل الاستدعاء الدقيق. يسمّي الحدث القاعدة المطابقة والسطح —
inbound أو response أو mcp أو egress.اقرأ السبب على القاعدة المطابقة
سلسلة السبب (مثل
destructive shell command،
egress host not allowed) تخبرك ما إذا طابقت القاعدة على اسم الأداة،
أو عبارة args_match، أو وجهة egress. يفك
مسرد الأحكام و
مرجع glob وJSONPath شفرة المطابقة.4. firewall_approval_pending — إنه مُعلَّق، لا مرفوض
firewall_approval_pending هو 400 الوحيد الذي لا ينبغي أن تعامله
كحجب. حكم pending_approval علّق استدعاء الأداة لإنسان؛ يحمل جسم الخطأ
معرّف موافقة. الاستدعاء لم يفشل — إنه ينتظر.
- يحلّها مراجِع — من وحدة التحكم (Developer+) أو عبر استدعاء webhook
مُوقَّع بـ HMAC خاص بك (
POST /api/v1/firewall/approvals/:id/callback). - يستطلع وكيلك
GET /api/v1/firewall/approvals/:id(رمز البوابة) على المعرّف من الخطأ. - بمجرد الموافقة، أعد تقديم الاستدعاء الأصلي بترويسة
X-OrcaRouter-Firewall-Approvalأحادية الاستخدام، وتمرّره البوابة تلك المرة الواحدة.
5. ليس حجباً أمنياً؟ استبعد المفتاح أولاً
ليس كل400 حكم حاجز حماية أو جدار حماية. قبل أن تغوص في التغذيات، استبعد
قيود المفتاح — تلك ترفض قبل تشغيل أي سياسة ولا تحمل الرموز الأمنية
أعلاه:
رُفض النموذج قبل استدعاء النموذج الأعلى
رُفض النموذج قبل استدعاء النموذج الأعلى
قائمة سماح
model_limits للمفتاح لا تتضمن النموذج المطلوب. تُرفض
طلبات نموذج خارج القائمة مقدّماً. أضِف النموذج إلى المفتاح أو استدعِ
واحداً مسموحاً.رُفض عند المصادقة بـ IP
رُفض عند المصادقة بـ IP
للمفتاح قائمة سماح
allow_ips وجاء الطلب من عنوان خارجها. أضِف
IP / CIDR المستدعي أو استدعِ من شبكة مسموحة.بلغ سقف الإنفاق
بلغ سقف الإنفاق
سقف
credit_limit_usd للمفتاح مستنفَد (0 يعني غير محدود). ارفع
السقف أو دوّر إلى مفتاح بفسحة.403 على مسارات /api/v1/firewall/*
403 على مسارات /api/v1/firewall/*
تتطلب خطّافات البوابة (
evaluate، إرسال MCP) مفتاحاً بـ
is_firewall_gateway=true. مفتاح ترحيل عادي يحصل على 403. اسكُك
مفتاحاً ضمن نطاق بوابة جدار الحماية لتلك المسارات.6. مسار الفرز في دقيقتين
حجب على نص مطالبة أو استجابة
الرمز هو
guardrail_blocked ← افتح Matches، رشّح
action=block، اقرأ Stage + Detail. أصلح المحتوى أو القاعدة؛
أثبت ذلك في تبويب Test بحاجز الحماية.حجب على استدعاء أداة
الرمز هو
firewall_blocked ← افتح Events، رشّح
verdict=deny، اقرأ السطح + السبب. أصلح الاستدعاء أو القاعدة؛
أثبت ذلك في تبويب Test بجدار الحماية.الاستدعاء مُعلَّق
الرمز هو
firewall_approval_pending ← استطلع معرّف الموافقة
وأعد التقديم بترويسة الموافقة. لا شيء للتصحيح.لا شيء مما سبق
لا رمز أمني ← افحص المفتاح:
model_limits، allow_ips،
credit_limit_usd، أو 403 لنطاق بوابة مفقود.7. مراجع ذات صلة
رموز الأخطاء
جدول الرموز الكامل — كل حجب وتعليق ورفض يمكن للبوابة إعادته.
مسرد الأحكام
ماذا يعني كل حكم لجدار الحماية ومتى يُحَل إلى deny.
Glob وJSONPath
فك شفرة
tool_name_glob وargs_match اللذين طابقا استدعاءك.حواجز الحماية مقابل جدار الحماية
أي مستوى أُطلق — فحص نص أم حوكمة إجراء.
