api.orcarouter.ai:
حكم افتراضي deny بالإضافة إلى قاعدة allow واحدة أو أكثر مفتاحها
tool_name_glob. للغة المطابقة الكاملة
خلف تلك القواعد، انظر قواعد جدار الحماية.
تُؤلَّف قوائم السماح في وحدة التحكم تحت Security → Firewall، أو عبر
مسارات الإدارة
/api/workspace/firewall/* (جلستك / رمز الوصول — وليس
مفتاح ترحيل sk-orca-…). فقط استدعاءات /v1/* لوكيلك تستخدم مفتاح الترحيل.
إنشاء سياسة أو تحريرها إجراء Developer+.1. لماذا الحجب الافتراضي للوكلاء
قائمة الحجب (“ارفضshell.exec، ارفض db.delete، …”) ليست أبداً أكمل من آخر
تهديد فكّرت فيه. قائمة السماح تعكس عبء الإثبات: تحجب البوابة كل ما لا تسمح به
السياسة صراحةً، فأداة مجهولة مغلقة بحكم البناء.
الحكم الافتراضي = deny
أرضية السياسة. مع عدم مطابقة أي قاعدة، يُحجب كل استدعاء أداة.
قواعد السماح تعيد إدراج الأدوات
كل قاعدة
allow تسمّي الأدوات التي تستخدمها فعلاً — بالاسم الدقيق أو بـ
glob.default_verdict للسياسة. فقائمة السماح هي ببساطة: قواعد
allow عالية الأولوية لأدواتك الحقيقية، بأرضية deny تصطاد كل ما عداها.
2. مثال واحد: ضع قائمة سماح لأدوات وكيل بحثي
لنقل إن وكيلك يحتاج فقط أبداً إلى البحث في الويب والقراءة من قاعدة معرفة — أدوات مسمّاةweb.search وkb.read. كل ما عداها (shell، كتابات الملفات،
تعديلات قواعد البيانات، أي أداة قد يستحضرها حقن مطالبة) يجب أن يُرفض.
ابنِ السياسة كـ deny افتراضي + قاعدتي allow:
أنشئ السياسة بافتراضي deny
Security → Firewall → Policies → New policy. سمّها، اترك Enabled
مفعّلاً، واضبط الحكم الافتراضي على
deny. هذه الأرضية المغلقة — انظر
إنشاء سياسة.أضف قاعدة سماح لكل عائلة أدوات
في محرر القواعد أضف قاعدتين، كلتاهما
verdict = allow:priority | tool_name_glob | verdict |
|---|---|---|
10 | web.search | allow |
20 | kb.* | allow |
web.search مطابقة دقيقة؛ وkb.* glob بادئة يسمح بـ kb.read
وkb.search وأي أداة kb.* مستقبلية دون إعادة تحرير السياسة.web.search وkb.read يمرّان؛ واستدعاء shell.exec لا يطابق أي قاعدة
سماح، فيصطدم بأرضية deny، ويعود كـ HTTP 400 برمز firewall_blocked على
سطح inbound — انظر كيف يبدو الحجب.
3. الـ glob في شاشة واحدة
tool_name_glob قواعد صغيرة حسّاسة لحالة الأحرف — لا regex، زمن خطّي.
الأشكال المهمة لقائمة سماح:
| النمط | يسمح بـ |
|---|---|
web.search | تلك الأداة بالضبط. |
kb.* | بادئة — kb.read، kb.search (وليس kb المجرّد). |
*.search | لاحقة — web.search، kb.search، وsearch المجرّد. |
*.tools.* | داخلي — byo.tools.fetch وما شابه. |
4. اطرحها دون كسر وكيلك
الحجب الافتراضي هو الموقف الأكثر احتمالاً لحجب أداة نسيت أنك تحتاجها. مرحلها:ظلّلها أولاً
ظلّلها أولاً
فعّل وضع الظل. تقيّم السياسة وتسجّل
تماماً كما ستفعل حياً، لكن تخفّض كل deny إلى
audit بسبب مسبوق بـ
[shadow] would …. أجرِ حركة مرور حقيقية، ثم اقرأ تغذية الأحداث.ابحث عن الأدوات التي تستدعيها فعلاً
ابحث عن الأدوات التي تستدعيها فعلاً
الأدوات المكتشفة تسرد كل أداة رأتها
مساحة العمل، معلّمة covered أو gap. أحداث “would-deny” لوضع الظل
بالإضافة إلى الثغرات تخبرك بالضبط أي قواعد سماح لا تزال تحتاجها.
اختبر قبل أن تفرض
اختبر قبل أن تفرض
صندوق رمل Test يجري السياسة تجريبياً
مقابل استدعاء أداة عينة ويعيد الحكم، والقاعدة المطابقة، والسبب — لا شيء
يُرسَل، ولا شيء يُحفظ. أكّد أن
web.search يُسمح به وshell.exec يُرفض، ثم
أطفئ الظل.استدعاء inbound مرفوض لا يكلّف أي رموز نموذج — يُحجب قبل تشغيل النموذج
الأعلى — ومعلّم بـ skip-retry، فأداة محجوبة لن تحرق ميزانية إعادة محاولة
بإعادة الحجب. انظر الأحكام.
5. أين تذهب بعد ذلك
احجب أدوات محددة
العكس — احتفظ بأرضية سماح افتراضي وارفض أدوات مسمّاة.
التحقق من الوسائط
اسمح بأداة، لكن فقط بوسائط آمنة (
db.query لكن ليس DROP TABLE).أولوية القاعدة
كيف يرتّب أول-مطابقة-تفوز قواعد السماح لديك فوق أرضية الحجب.
الأحكام
allow، audit، deny، sanitize، pending_approval، cap_cost.
