openclaw workspaces، أو وكيل يستدعي أدوات workspace_*.
تمر كل عملية كتابة عبر المسار المُتحقَّق منه نفسه، لذا لا يمكن أن يختلف تخطيط المستخدم عن تخطيط الوكيل. وكل عملية كتابة مقبولة تزيد رقم الإصدار وتبث plugin.workspaces.changed، ولذلك يظهر تعديل الوكيل في متصفح مفتوح بالفعل دون إعادة تحميل.
تمكين مساحات العمل
يكون Plugin مساحات العمل المضمّن معطّلًا افتراضيًا. في واجهة التحكم، افتح Plugins، وابحث عن مساحات العمل، ثم حدّد Enable. ويمكنك أيضًا تمكينه من CLI:openclaw workspaces وأدوات الوكيل workspace_*. أما تعطيله فيزيل هذه الواجهات دون حذف قاعدة بيانات مساحة العمل أو أصول الأدوات.
مساحة العمل الافتراضية
عند التحميل الأول، تحصل على مساحة عمل نظرة عامة: بطاقات التكلفة والرموز، وحالة المثيل، والجلسات، وحالة Cron، وموجز النشاط. وهذا محتوى عادي لمساحة العمل — يمكنك سحبه أو طيّه أو إخفاؤه أو حذفه.الأدوات المضمّنة
تُشحن تسع أدوات موثوقة مع Plugin وتُعرض بوصفها واجهة مستخدم أصلية:stat-card، وmarkdown، وtable، وiframe-embed، وsessions، وusage، وcron،
وinstances، وactivity.
تعلن الأدوات بياناتها من خلال الارتباطات، ولا تجلبها بنفسها أبدًا:
يُعد ارتباط
file أبسط طريقة لوضع أرقامك الخاصة في مساحة عمل: اكتب ملف JSON في دليل البيانات ووجّه إليه stat-card.
المصدر
تحمل علامات التبويب والأدوات ختمcreatedBy — بالقيمة user أو system أو agent:<id> — ويُعيَّن استنادًا إلى الجهة التي أجرت الكتابة. ولا يمكن للجهة المستدعية توفيره، ولذلك لا يستطيع الوكيل نسب عمله إليك، كما أن شارة “الذكاء الاصطناعي” على أداة أنشأها وكيل تعني دائمًا ما تنص عليه.
الأدوات المخصصة
يمكن للوكيل إنشاء أداة HTML فعلية باستخدامworkspace_widget_scaffold (ويمكنك أنت أيضًا إنشاؤها باستخدام openclaw workspaces widget-scaffold <name>). ويُعامل الرمز الذي ينشئه الوكيل على أنه عدائي:
- تدخل الأداة المُنشأة في السجل بالحالة معلّقة. ولا يُنشأ أي iframe، ويعيد مسار الأصول 404 لملفاتها، إلى أن يوافق عليها مشغّل.
- الموافقة قرار منفصل عن تعديل التخطيط: يتطلب
workspaces.widget.approveنطاقoperator.approvals، وهو النطاق نفسه الذي يحمي موافقات التنفيذ. - تُعرض الأداة الموافق عليها داخل
<iframe sandbox="allow-scripts">— وليسallow-same-originمطلقًا — ولذلك يكون أصلها معتمًا ولا يمكنها الوصول إلى DOM الخاص بالصفحة الأم أو مساحة تخزينها أو ملفات تعريف الارتباط الخاصة بها. - تُخدَّم أصولها مع
connect-src 'none'، ما يحظر اتصالات الشبكة من السكربتات مثلfetchوXHR وWebSockets. ولا تحتفظ بأي بيانات اعتماد ولا تتواصل مع Gateway مطلقًا. - لا تصل البيانات إليها إلا من خلال جسر
postMessageذي إصدار محدد. ويمكن للرمز المخصص تلقي ارتباطاتstaticالمعلنة، وهي قيم مساحة عمل أنشأها الوكيل أو المشغّل بالفعل. وتظل ارتباطات RPC والملفات داخل الأدوات المضمّنة الموثوقة: تسمح المتصفحات لإطار فرعي معزول بالانتقال داخل إطاره الخاص، ولذلك لا تُرسل البيانات ذات الامتيازات مطلقًا إلى HTML أنشأه وكيل.
CLI
widget-approve جهازًا مقترنًا بنطاق operator.approvals؛ أما الموافقة من واجهة التحكم فلا تتطلب ذلك، لأن المتصفح يحتفظ به بالفعل.
التخزين
يوجد مستند مساحة العمل وسجل الأدوات المخصصة وحلقة تراجع تضم 20 إدخالًا في<stateDir>/workspaces/workspaces.sqlite. وتظل أصول الأدوات التي ينشئها الوكيل على القرص ضمن
<stateDir>/workspaces/widgets/<name>/، وبيانات ارتباطات الملفات ضمن
<stateDir>/workspaces/data/، لأن الوكيل ينشئها باستخدام أدوات الملفات العادية ويخدم مسار الأداة وحدات البايت الخاصة بها.