OpenShell
OpenShell هو واجهة خلفية مُدارة لـ sandbox في OpenClaw. فبدلًا من تشغيل حاويات Docker محليًا، يفوض OpenClaw دورة حياة sandbox إلى CLI openshell،
الذي يوفّر بيئات بعيدة مع تنفيذ أوامر قائم على SSH.
يعيد plugin الخاص بـ OpenShell استخدام نقل SSH الأساسي نفسه وجسر نظام الملفات البعيد
كما في واجهة SSH الخلفية العامة. ويضيف
دورة حياة خاصة بـ OpenShell (sandbox create/get/delete وsandbox ssh-config)
ووضع مساحة عمل اختياريًا هو mirror.
المتطلبات المسبقة
- أن يكون CLI
openshellمثبتًا وموجودًا فيPATH(أو تعيين مسار مخصص عبرplugins.entries.openshell.config.command) - حساب OpenShell مع وصول إلى sandbox
- تشغيل OpenClaw Gateway على المضيف
البدء السريع
- فعّل plugin واضبط واجهة sandbox الخلفية:
- أعد تشغيل Gateway. في دورة الوكيل التالية، سيُنشئ OpenClaw sandbox من OpenShell ويوجه تنفيذ الأدوات من خلاله.
- تحقّق:
أوضاع مساحة العمل
هذا هو القرار الأهم عند استخدام OpenShell.mirror
استخدم plugins.entries.openshell.config.mode: "mirror" عندما تريد أن تظل مساحة العمل المحلية
هي المرجع الأساسي.
السلوك:
- قبل
exec، يزامن OpenClaw مساحة العمل المحلية إلى sandbox الخاصة بـ OpenShell. - بعد
exec، يزامن OpenClaw مساحة العمل البعيدة مرة أخرى إلى مساحة العمل المحلية. - ما زالت أدوات الملفات تعمل عبر جسر sandbox، لكن مساحة العمل المحلية تظل مصدر الحقيقة بين الدورات.
- إذا كنت تعدّل الملفات محليًا خارج OpenClaw وتريد أن تظهر هذه التغييرات في sandbox تلقائيًا.
- إذا كنت تريد أن تتصرف sandbox الخاصة بـ OpenShell بأكبر قدر ممكن مثل واجهة Docker الخلفية.
- إذا كنت تريد أن تعكس مساحة عمل المضيف كتابات sandbox بعد كل دورة
exec.
exec وبعده.
remote
استخدم plugins.entries.openshell.config.mode: "remote" عندما تريد أن تصبح
مساحة عمل OpenShell هي المرجع الأساسي.
السلوك:
- عند إنشاء sandbox لأول مرة، يهيّئ OpenClaw مساحة العمل البعيدة من مساحة العمل المحلية مرة واحدة.
- بعد ذلك، تعمل
execوreadوwriteوeditوapply_patchمباشرةً على مساحة عمل OpenShell البعيدة. - لا يقوم OpenClaw بمزامنة التغييرات البعيدة مرة أخرى إلى مساحة العمل المحلية.
- وما زالت قراءات الوسائط وقت الـ prompt تعمل لأن أدوات الملفات والوسائط تقرأ عبر جسر sandbox.
- عندما يجب أن تعيش sandbox أساسًا في الجهة البعيدة.
- عندما تريد حمل مزامنة أقل لكل دورة.
- عندما لا تريد أن تؤدي تعديلات المضيف المحلية إلى الكتابة فوق حالة sandbox البعيدة بصمت.
openclaw sandbox recreate لإعادة التهيئة.
اختيار وضع
mirror | remote | |
|---|---|---|
| مساحة العمل المرجعية | المضيف المحلي | OpenShell البعيدة |
| اتجاه المزامنة | ثنائي الاتجاه (كل exec) | تهيئة لمرة واحدة |
| الحمل لكل دورة | أعلى (رفع + تنزيل) | أقل (عمليات بعيدة مباشرة) |
| هل تظهر التعديلات المحلية؟ | نعم، في exec التالية | لا، حتى إعادة الإنشاء |
| الأفضل لـ | سير عمل التطوير | الوكلاء طويلو التشغيل، CI |
مرجع التكوين
يوجد كل تكوين OpenShell تحتplugins.entries.openshell.config:
| المفتاح | النوع | الافتراضي | الوصف |
|---|---|---|---|
mode | "mirror" أو "remote" | "mirror" | وضع مزامنة مساحة العمل |
command | string | "openshell" | المسار أو الاسم الخاص بـ CLI openshell |
from | string | "openclaw" | مصدر sandbox عند الإنشاء لأول مرة |
gateway | string | — | اسم OpenShell Gateway (--gateway) |
gatewayEndpoint | string | — | URL لنقطة نهاية OpenShell Gateway (--gateway-endpoint) |
policy | string | — | معرّف سياسة OpenShell لإنشاء sandbox |
providers | string[] | [] | أسماء المزوّدين المطلوب إرفاقها عند إنشاء sandbox |
gpu | boolean | false | طلب موارد GPU |
autoProviders | boolean | true | تمرير --auto-providers أثناء إنشاء sandbox |
remoteWorkspaceDir | string | "/sandbox" | مساحة العمل الأساسية القابلة للكتابة داخل sandbox |
remoteAgentWorkspaceDir | string | "/agent" | مسار تحميل مساحة عمل الوكيل (للوصول للقراءة فقط) |
timeoutSeconds | number | 120 | المهلة الزمنية لعمليات CLI openshell |
mode وscope وworkspaceAccess) ضمن
agents.defaults.sandbox كما هو الحال مع أي واجهة خلفية. راجع
Sandboxing للاطلاع على المصفوفة الكاملة.
أمثلة
إعداد remote بسيط
وضع mirror مع GPU
OpenShell لكل وكيل مع Gateway مخصصة
إدارة دورة الحياة
تُدار sandboxes الخاصة بـ OpenShell عبر CLI العادي الخاص بـ sandbox:remote، تكون إعادة الإنشاء مهمة بشكل خاص: فهي تحذف
مساحة العمل البعيدة المرجعية لذلك النطاق. وعند الاستخدام التالي، تتم تهيئة مساحة عمل بعيدة جديدة
من مساحة العمل المحلية.
أما في وضع mirror، فتعيد إعادة الإنشاء أساسًا ضبط بيئة التنفيذ البعيدة لأن
مساحة العمل المحلية تظل المرجع الأساسي.
متى تعيد الإنشاء
أعد الإنشاء بعد تغيير أي من الآتي:agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
القيود الحالية
- لا يتم دعم browser الخاص بـ sandbox على واجهة OpenShell الخلفية.
- لا ينطبق
sandbox.docker.bindsعلى OpenShell. - تنطبق مفاتيح runtime الخاصة بـ Docker ضمن
sandbox.docker.*على واجهة Docker الخلفية فقط.
كيف يعمل
- يستدعي OpenClaw الأمر
openshell sandbox create(مع العلامات--fromو--gateway، و--policyو--providersو--gpuوفق التكوين). - يستدعي OpenClaw الأمر
openshell sandbox ssh-config <name>للحصول على تفاصيل اتصال SSH الخاصة بـ sandbox. - يكتب core تكوين SSH إلى ملف مؤقت ويفتح جلسة SSH باستخدام جسر نظام الملفات البعيد نفسه الموجود في واجهة SSH الخلفية العامة.
- في وضع
mirror: يزامن من المحلي إلى البعيد قبلexec، ثم يشغّل، ثم يزامن مرة أخرى بعدexec. - في وضع
remote: يهيّئ مرة واحدة عند الإنشاء، ثم يعمل مباشرة على مساحة العمل البعيدة.
راجع أيضًا
- Sandboxing — الأوضاع، والنطاقات، ومقارنة الواجهات الخلفية
- Sandbox vs Tool Policy vs Elevated — تصحيح أخطاء الأدوات المحظورة
- Multi-Agent Sandbox and Tools — تجاوزات لكل وكيل
- Sandbox CLI — أوامر
openclaw sandbox