إعداد الصندوق المعزول والأدوات في تعدد الوكلاء
يمكن لكل وكيل في إعداد متعدد الوكلاء تجاوز سياسة الصندوق المعزول وسياسة الأدوات العامة. تغطي هذه الصفحة الإعدادات لكل وكيل، وقواعد الأولوية، والأمثلة.- الواجهات الخلفية وأوضاع الصندوق المعزول: راجع العزل.
- تصحيح الأدوات المحظورة: راجع الصندوق المعزول مقابل سياسة الأدوات مقابل الوضع المرتفع و
openclaw sandbox explain. execالمرتفع: راجع الوضع المرتفع.
agentDir عند
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
لا تتم مشاركة بيانات الاعتماد بين الوكلاء. لا تعِد استخدام agentDir بين الوكلاء مطلقًا.
إذا كنت تريد مشاركة بيانات الاعتماد، فانسخ auth-profiles.json إلى agentDir الخاص بالوكيل الآخر.
أمثلة على الإعدادات
المثال 1: وكيل شخصي + وكيل عائلي مقيّد
- الوكيل
main: يعمل على المضيف، مع وصول كامل إلى الأدوات - الوكيل
family: يعمل في Docker (حاوية واحدة لكل وكيل)، ومعه أداةreadفقط
المثال 2: وكيل عمل مع صندوق معزول مشترك
المثال 2b: ملف تعريف عام للبرمجة + وكيل مخصص للمراسلة فقط
- تحصل الوكلاء الافتراضية على أدوات البرمجة
- الوكيل
supportمخصص للمراسلة فقط (+ أداة Slack)
المثال 3: أوضاع صندوق معزول مختلفة لكل وكيل
أولوية الإعدادات
عندما توجد إعدادات عامة (agents.defaults.*) وإعدادات خاصة بالوكيل (agents.list[].*) معًا:
إعدادات الصندوق المعزول
تتجاوز الإعدادات الخاصة بالوكيل الإعدادات العامة:- تتجاوز
agents.list[].sandbox.{docker,browser,prune}.*القيمagents.defaults.sandbox.{docker,browser,prune}.*لذلك الوكيل (ويتم تجاهلها عندما تُحل قيمة نطاق الصندوق المعزول إلى"shared").
قيود الأدوات
ترتيب التصفية هو:- ملف تعريف الأداة (
tools.profileأوagents.list[].tools.profile) - ملف تعريف أداة المزوّد (
tools.byProvider[provider].profileأوagents.list[].tools.byProvider[provider].profile) - سياسة الأدوات العامة (
tools.allow/tools.deny) - سياسة أداة المزوّد (
tools.byProvider[provider].allow/deny) - سياسة الأدوات الخاصة بالوكيل (
agents.list[].tools.allow/deny) - سياسة مزوّد الوكيل (
agents.list[].tools.byProvider[provider].allow/deny) - سياسة أدوات الصندوق المعزول (
tools.sandbox.toolsأوagents.list[].tools.sandbox.tools) - سياسة أدوات الوكيل الفرعي (
tools.subagents.tools، عند الاقتضاء)
agents.list[].tools.sandbox.tools، فإنه يستبدل tools.sandbox.tools لذلك الوكيل.
إذا تم تعيين agents.list[].tools.profile، فإنه يتجاوز tools.profile لذلك الوكيل.
تقبل مفاتيح أدوات المزوّد إما provider (مثل google-antigravity) أو provider/model (مثل openai/gpt-5.4).
تدعم سياسات الأدوات صيغ الاختصار group:* التي تتوسع إلى عدة أدوات. راجع مجموعات الأدوات للحصول على القائمة الكاملة.
يمكن لتجاوزات الوضع المرتفع لكل وكيل (agents.list[].tools.elevated) زيادة تقييد exec المرتفع لوكلاء محددين. راجع الوضع المرتفع للتفاصيل.
الترحيل من وكيل واحد
قبل (وكيل واحد):agent.* القديمة بواسطة openclaw doctor؛ ويفضَّل استخدام agents.defaults + agents.list مستقبلًا.
أمثلة على تقييد الأدوات
وكيل للقراءة فقط
وكيل تنفيذ آمن (من دون تعديل الملفات)
وكيل مخصص للتواصل فقط
sessions_history في ملف التعريف هذا عرض استرجاع محدودًا ومنقحًا
بدلًا من تفريغ خام للنص الحواري. ويزيل الاسترجاع الخاص بالمساعد وسوم التفكير،
وبنية <relevant-memories>،
وحمولات XML النصية العادية لاستدعاءات الأدوات
(بما في ذلك <tool_call>...</tool_call>،
و<function_call>...</function_call>، و<tool_calls>...</tool_calls>،
و<function_calls>...</function_calls>، وكتل استدعاءات الأدوات المقتطعة)،
وبنية استدعاءات الأدوات المخفّضة، ورموز التحكم الخاصة بالنماذج المسرّبة بتنسيق ASCII/العرض الكامل،
وXML المشوّه لاستدعاءات أدوات MiniMax قبل التنقيح/الاقتطاع.
مشكلة شائعة: "non-main"
تعتمد agents.defaults.sandbox.mode: "non-main" على session.mainKey (الافتراضي "main")،
وليس على معرّف الوكيل. تحصل جلسات المجموعات/القنوات دائمًا على مفاتيحها الخاصة، لذلك
تُعامل على أنها غير main وسيتم عزلها. إذا كنت تريد أن لا يُعزل وكيل أبدًا،
فعيّن agents.list[].sandbox.mode: "off".
الاختبار
بعد إعداد الصندوق المعزول والأدوات في تعدد الوكلاء:-
تحقق من تحديد الوكيل:
-
تحقق من حاويات الصندوق المعزول:
-
اختبر قيود الأدوات:
- أرسل رسالة تتطلب أدوات مقيّدة
- تحقق من أن الوكيل لا يستطيع استخدام الأدوات المرفوضة
-
راقب السجلات:
استكشاف الأخطاء وإصلاحها
الوكيل غير معزول رغم mode: "all"
- تحقق مما إذا كانت هناك قيمة عامة
agents.defaults.sandbox.modeتتجاوز ذلك - تكون إعدادات الوكيل الخاصة ذات أولوية، لذا عيّن
agents.list[].sandbox.mode: "all"
الأدوات ما تزال متاحة رغم قائمة الرفض
- تحقق من ترتيب تصفية الأدوات: عام → وكيل → صندوق معزول → وكيل فرعي
- يمكن لكل مستوى زيادة التقييد فقط، لا إعادة المنح
- تحقق عبر السجلات:
[tools] filtering tools for agent:${agentId}
الحاوية غير معزولة لكل وكيل
- عيّن
scope: "agent"في إعدادات الصندوق المعزول الخاصة بالوكيل - القيمة الافتراضية هي
"session"، ما ينشئ حاوية واحدة لكل جلسة
راجع أيضًا
- العزل — المرجع الكامل للصندوق المعزول (الأوضاع، والنطاقات، والواجهات الخلفية، والصور)
- الصندوق المعزول مقابل سياسة الأدوات مقابل الوضع المرتفع — لتصحيح “لماذا تم حظر هذا؟”
- الوضع المرتفع
- التوجيه متعدد الوكلاء
- إعدادات الصندوق المعزول
- إدارة الجلسات