الأمان والتجريد
الصندوق الرملي مقابل سياسة الأدوات مقابل الوضع المتقدم
يحتوي OpenClaw على ثلاثة ضوابط مرتبطة (لكن مختلفة):
- الصندوق الرملي (
agents.defaults.sandbox.*/agents.list[].sandbox.*) يقرر مكان تشغيل الأدوات (Docker مقابل المضيف). - سياسة الأدوات (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) تقرر الأدوات المتاحة/المسموح بها. - الوضع المتقدم (
tools.elevated.*,agents.list[].tools.elevated.*) هو منفذ هروب يعمل بـ exec فقط للتشغيل على المضيف عندما تكون في الصندوق الرملي.
تصحيح سريع
استخدم المفتش لمعرفة ما يفعله OpenClaw فعليًا:
openclaw sandbox explain
openclaw sandbox explain --session agent:main:main
openclaw sandbox explain --agent work
openclaw sandbox explain --json
يطبع:
- وضع/نطاق/وصول مساحة العمل الفعال للصندوق الرملي
- ما إذا كانت الجلسة حاليًا في الصندوق الرملي (رئيسية مقابل غير رئيسية)
- القائمة المسموح بها/المرفوضة للأدوات في الصندوق الرملي الفعال (وما إذا كان مصدرها من الوكيل/العام/الافتراضي)
- بوابات الوضع المتقدم ومسارات مفاتيح الإصلاح
الصندوق الرملي: مكان تشغيل الأدوات
يتم التحكم في التجريد بواسطة agents.defaults.sandbox.mode:
"off": كل شيء يعمل على المضيف."non-main": يتم تجريد الجلسات غير الرئيسية فقط (شائع في "المفاجآت" للمجموعات/القنوات)."all": يتم تجريد كل شيء.
راجع التجريد للحصول على المصفوفة الكاملة (النطاق، نقاط تركيب مساحة العمل، الصور).
نقاط الربط (فحص أمني سريع)
docker.bindsيخترق نظام ملفات الصندوق الرملي: أي شيء تقوم بتركيبه يكون مرئيًا داخل الحاوية بالوضع الذي قمت بتعيينه (:roأو:rw).- الافتراضي هو القراءة والكتابة إذا حذفت الوضع؛ يُفضل
:roللمصادر/الأسرار. scope: "shared"يتجاهل نقاط الربط الخاصة بكل وكيل (تطبق فقط نقاط الربط العامة).- ربط
/var/run/docker.sockيسلم فعليًا تحكم المضيف إلى الصندوق الرملي؛ افعل هذا فقط عن قصد. - الوصول إلى مساحة العمل (
workspaceAccess: "ro"/"rw") مستقل عن أوضاع الربط.
سياسة الأدوات: الأدوات الموجودة/القابلة للاستدعاء
هناك طبقتان مهمتان:
- ملف تعريف الأداة:
tools.profileوagents.list[].tools.profile(القائمة المسموح بها الأساسية) - ملف تعريف أداة المزود:
tools.byProvider[provider].profileوagents.list[].tools.byProvider[provider].profile - سياسة الأداة العامة/لكل وكيل:
tools.allow/tools.denyوagents.list[].tools.allow/agents.list[].tools.deny - سياسة أداة المزود:
tools.byProvider[provider].allow/denyوagents.list[].tools.byProvider[provider].allow/deny - سياسة أداة الصندوق الرملي (تطبق فقط عند التجريد):
tools.sandbox.tools.allow/tools.sandbox.tools.denyوagents.list[].tools.sandbox.tools.*
قواعد عامة:
denyتفوز دائمًا.- إذا كانت
allowغير فارغة، يتم التعامل مع كل شيء آخر على أنه محظور. - سياسة الأداة هي التوقف الصارم: لا يمكن لـ
/execتجاوز أداةexecمرفوضة. /execيغير فقط الإعدادات الافتراضية للجلسة للمرسلين المصرح لهم؛ لا يمنح وصولاً للأدوات. تقبل مفاتيح أداة المزود إماprovider(مثلgoogle-antigravity) أوprovider/model(مثلopenai/gpt-5.2).
مجموعات الأدوات (اختصارات)
تدعم سياسات الأدوات (العامة، الوكيل، الصندوق الرملي) إدخالات group:* التي تتوسع إلى أدوات متعددة:
{
tools: {
sandbox: {
tools: {
allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"],
},
},
},
}
المجموعات المتاحة:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: جميع أدوات OpenClaw المدمجة (تستثني إضافات المزود)
الوضع المتقدم: "التشغيل على المضيف" بـ exec فقط
الوضع المتقدم لا يمنح أدوات إضافية؛ يؤثر فقط على exec.
- إذا كنت في الصندوق الرملي، فإن
/elevated on(أوexecمعelevated: true) يعمل على المضيف (قد لا تزال الموافقات تنطبق). - استخدم
/elevated fullلتخطي موافقات exec للجلسة. - إذا كنت تعمل مباشرة بالفعل، فإن الوضع المتقدم لا يؤثر فعليًا (لا يزال محميًا بالبوابات).
- الوضع المتقدم ليس محددًا بالمهارة ولا يتجاوز السماح/الرفض للأداة.
/execمنفصل عن الوضع المتقدم. يقوم فقط بتعديل الإعدادات الافتراضية لـ exec لكل جلسة للمرسلين المصرح لهم.
البوابات:
- التمكين:
tools.elevated.enabled(واختياريًاagents.list[].tools.elevated.enabled) - قوائم السماح للمرسلين:
tools.elevated.allowFrom.<provider>(واختياريًاagents.list[].tools.elevated.allowFrom.<provider>)
راجع الوضع المتقدم.
إصلاحات شائعة لـ "سجن الصندوق الرملي"
"تم حظر الأداة X بواسطة سياسة أداة الصندوق الرملي"
مفاتيح الإصلاح (اختر واحدة):
- تعطيل الصندوق الرملي:
agents.defaults.sandbox.mode=off(أو لكل وكيلagents.list[].sandbox.mode=off) - السماح بالأداة داخل الصندوق الرملي:
- إزالتها من
tools.sandbox.tools.deny(أو لكل وكيلagents.list[].tools.sandbox.tools.deny) - أو إضافتها إلى
tools.sandbox.tools.allow(أو السماح لكل وكيل)
- إزالتها من
"اعتقدت أن هذه جلسة رئيسية، لماذا هي في الصندوق الرملي؟"
في وضع "non-main"، مفاتيح المجموعة/القناة ليست رئيسية. استخدم مفتاح الجلسة الرئيسية (الذي يظهره sandbox explain) أو غيّر الوضع إلى "off".