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

1. قائمة تحقّق الاستقلالية الأدنى

مرّر كل مفتاح — جديد أو موجود — عبر هذه البوابات الست في محرّر المفاتيح (/console/token). ضبط أيٍّ منها يتطلب دور Developer أو أعلى؛ ومستويا السياسة (§5–6) يُنشآن بشكل منفصل ويُربطان هنا.
اضبط model_limits على القائمة الدقيقة التي يحتاجها هذا الوكيل (وفعّل model_limits_enabled). أي استدعاء لنموذج خارج القائمة يُرفض قبل أن يغادر البوابة، فلا يستطيع وكيل مختطَف التصعيد إلى نموذج أغلى أو أكثر قدرة. تحقّق: هل القائمة قصيرة بقدر ما يسمح العمل — نموذج واحد مثالياً؟ العمق: حدود النماذج.
اضبط allow_ips على عناوين المصدر أو CIDR الذي يستدعي منه الوكيل فعلاً. مفتاح مسرّب مُقدَّم من أي مكان آخر يُرفض في طبقة المصادقة. فارغ يعني أن كل عناوين IP مسموحة. تحقّق: لوكيل ثابت المضيف أو مجدوَل، هل القائمة غير فارغة ومحدّدة النطاق على ذلك الخروج؟ العمق: قائمة سماح IP.
اضبط credit_limit_usd على سقف ينبغي ألا يتجاوزه الوكيل في حياته. تفرضه البوابة مقابل إنفاق المفتاح. 0 يعني بلا حدود — حلقة انفلات يمكنها استنزاف رصيدك بأكمله. تحقّق: هل السقف ميزانية حقيقية، لا 0؟ العمق: الحصة والسقف والصلاحية.
اضبط expired_time على صلاحية مطلقة — نهاية السباق، أو النشر، أو تشغيل CI. -1 يعني لا تنتهي الصلاحية أبداً. مفتاح قصير العمر لا يمكنه أن يلبث كسطح هجوم منسي. تحقّق: هل لمفتاح زائل أو متعاقد صلاحية حقيقية، لا -1؟ العمق: المفاتيح المنتهية الصلاحية.
اربط حاجز حماية عبر guardrail_id بحيث يُفحص نص الطلب (وحيث يُدعَم، الاستجابة) بحثاً عن PII والأسرار ونيّة الحقن قبل أن يصل إلى النموذج. تحقّق: هل لمفتاح يتعامل مع مطالبات حساسة حاجز حماية مربوط، أو يرث افتراضي مساحة العمل؟ انظر §5.
اربط سياسة جدار حماية عبر firewall_policy_id بحيث يُقيَّم كل استدعاء أداة وإرسال MCP وegress يصدره هذا المفتاح مقابل قائمة سماح بما يحتاجه الوكيل شرعاً. تحقّق: هل لوكيل يستدعي أدوات سياسة جدار حماية مربوطة، أو يرث افتراضي مساحة العمل؟ انظر §6.
الحقول أعلاه هي الروافع الوحيدة القابلة للضبط من العميل على مفتاح — اضبطها كلها في وحدة التحكم؛ لا شيء هنا يتطلب تغييراً في كود الوكيل. قراءة مفتاح تُظهره مُخفىً؛ يُعرض النص الصريح مرة واحدة عند الإنشاء. انظر إخفاء المفتاح.

2. ماذا / كم مرة / أين

ثلاثة أسئلة تحوّل قائمة التحقّق من عمل لمرة واحدة إلى موقف.

ماذا

البوابات الست أعلاه، بالترتيب: model_limitsallow_ipscredit_limit_usdexpired_timeguardrail_idfirewall_policy_id.

كم مرة

على كل مفتاح عند الإنشاء، وعلى مراجعة متكرّرة — حين يتغيّر نطاق وكيل، حين تدوّر مفتاحاً، وعلى وتيرة ثابتة للمفاتيح طويلة العمر.

أين

في محرّر مفاتيح وحدة التحكم (/console/token)، كـ Developer+. السياستان تُنشآن في وحدتي تحكّمهما الخاصتين، ثم تُربطان على المفتاح.

3. مفتاح ملموس واحد بأدنى استقلالية

وكيل مجدوَل يلخّص تذاكر الدعم بنموذج رخيص واحد، من مضيف واحد، لا يحتاج استقلالية تقريباً. مفتاح مقسّى بالكامل:
الحقلالقيمةلماذا
model_limitsنموذج تلخيص واحدلا يستطيع التصعيد إلى نموذج طليعي
allow_ipsنطاق CIDR الصادر للمجدوِلمفتاح مسرّب عديم الفائدة في مكان آخر
credit_limit_usdسقف أسبوعيحلقة انفلات لا يمكنها استنزاف الرصيد
expired_timeنهاية النشرينتهي تلقائياً، لا يمكنه أن يلبث
guardrail_idحاجز حماية يُخفي PIIيُفحص نص الطلب
firewall_policy_idيسمح فقط بأدواتهلا استدعاءات أدوات مفاجئة
إذا اختُطف هذا الوكيل، فلا يزال بإمكانه استدعاء نموذج واحد فقط، ومن نطاق IP واحد فقط، حتى سقفه فقط، والأدوات التي تسمح بها سياسة جدار الحماية فقط. بقية مساحة العمل سليمة — ومسار تدقيق جدار الحماية يُظهر بالضبط ما كان مخوَّلاً للقيام به.
مفتاح بلا model_limits، بلا allow_ips، credit_limit_usd: 0، expired_time: -1، وبلا ربط سياسة له استقلالية قصوى. إذا تسرّب، يحصل حامله على كامل مساحة عملك. عامِل تلك التركيبة كاستنتاج، لا كافتراضي — انظر غير محدود مقابل محدود.

4. استدعاء الترحيل /v1 مقابل وحدة التحكم

تُضبَط قائمة التحقّق في وحدة التحكم بجلستك (مستخدم Developer+). لا يلمس وكيلك أبداً مسارات الإعداد تلك — إنه يقدّم مفتاح ترحيله المحدّد النطاق (sk-orca-…) على استدعاءات الاستدلال /v1/*، وتُفرَض الحدود والسياسات المربوطة أعلاه على كل واحد منها.
# استدعاء بيئة تشغيل الوكيل — مفتاح الترحيل، محدّد النطاق بقائمة التحقّق أعلاه.
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [{"role": "user", "content": "Summarize this ticket..."}]
  }'
إذا لم يتضمّن model_limits للمفتاح openai/gpt-4o-mini، يُرفض هذا الاستدعاء قبل أن يغادر البوابة. إذا لم يكن IP المستدعي في allow_ips، يُرفض في طبقة المصادقة. يبقى كود الوكيل كما هو؛ المفتاح يقرّر نطاق الانفجار.

5. البوابة 5 — حاجز الحماية المربوط

guardrail_id يربط سياسة محتوى مرتّبة ضمن نطاق مساحة العمل بالمفتاح. الحل هو حاجز الحماية الصريح للمفتاح (إن وُجد ومُفعّل)، وإلا افتراضي مساحة العمل، وإلا لا شيء.
حواجز الحماية مفتاح إطفاء صارم عند التعطيل: guardrail_id معطَّل أو محذوف يعني أن المفتاح يحصل على لا حاجز حماية — فهو لا يتراجع إلى افتراضي مساحة العمل. هذا عكس مستوى جدار الحماية (§6)، فتحقّق أن حاجز الحماية المربوط مُفعّل، لا مجرد مرتبط.
تعمل قواعد حاجز الحماية قبل النموذج (مرحلة المدخل) و، حيث يُدعَم، على الاستجابة (مرحلة المخرج)، بإجراءات block أو mask أو flag. الإعداد المسبق PII Shield، مثلاً، يُخفي PII في الطلب قبل أن يصل أبداً إلى النموذج. أنشئ حواجز الحماية واربطها كـ Developer+ — انظر حواجز الحماية و ربط السياسات.

6. البوابة 6 — سياسة جدار الحماية المربوطة + نطاق البوابة

firewall_policy_id يربط سياسة استدعاء أدوات ضمن نطاق مساحة العمل. يحكم الإجراءات التي يتخذها وكيل — الأدوات المُعلَن عنها، وtool_calls المُصدَرة من النموذج، وإرسالات MCP، وegress الصادر — مقابل قائمة قواعد مرتّبة أحكامها allow أو audit أو deny أو sanitize أو pending_approval أو cap_cost.
مستوى جدار الحماية يُحَل بشكل مختلف عن حواجز الحماية: سياسة جدار حماية مرتبطة معطّلة تتراجع إلى افتراضي مساحة العمل، فهي لا تُطفئ الفرض. لذا ربط سياسة وتعطيلها يعيد المفتاح إلى افتراضي مساحة العمل — لا يصبح أبداً بلا حماية صامتاً.
أسرع طريقة لضبط كلا المستويين دفعةً واحدة هي مستوى استقلالية — مفتاح واحد يضبط ذرّياً موقف جدار الحماية وحواجز الحماية لمساحة عملك (tight / balanced / permissive)، بتراجع بنقرة واحدة. انظر جدار الحماية §8.
is_firewall_gateway هو نوع مختلف من المفاتيح — يُسكّ فقط لمسارات Firewall MCP وخطّاف evaluate (/api/v1/firewall/*)، وليس أبداً للاستدلال. المفتاح العادي يحصل على 403 على تلك المسارات، ومفتاح بوابة على مسار الاستدلال مفرط النطاق. تفعيل العلامة، وقراءة النص الصريح لمفتاح بوابة، يتطلبان Admin+. مفتاح واحد، غرض واحد.

7. بعد قائمة التحقّق

خط الأساس للوكلاء الآمنين

الموقف الابتدائي الموصى به — مفتاح استقلالية واحد، ثم اضبط من حركة المرور الحقيقية.

ربط السياسات

كيف يرتبط guardrail_id وfirewall_policy_id ويُحَلّان.

الاستقلالية المفرطة

التهديد الذي بُنيت هذه القائمة لاحتوائه.

المفتاح المسرّب

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