Web interfaces
مساحات العمل
علامة تبويب مساحات العمل في واجهة التحكم هي مساحة ترتّبها أنت ووكلاؤك معًا. توجد علامات التبويب والأدوات ومواضعها على شبكة مكوّنة من 12 عمودًا وارتباطات بياناتها جميعًا في مستند واحد. ويمكن لأي جهة تستطيع تعديل ذلك المستند تكوين مساحة العمل: أنت، أو CLI openclaw workspaces، أو وكيل يستدعي أدوات workspace_*.
تمر كل عملية كتابة عبر المسار المُتحقَّق منه نفسه، لذا لا يمكن أن يختلف تخطيط المستخدم عن تخطيط الوكيل. وكل عملية كتابة مقبولة تزيد رقم الإصدار وتبث plugin.workspaces.changed، ولذلك يظهر تعديل الوكيل في متصفح مفتوح بالفعل دون إعادة تحميل.
تمكين مساحات العمل
يكون Plugin مساحات العمل المضمّن معطّلًا افتراضيًا. في واجهة التحكم، افتح Plugins، وابحث عن مساحات العمل، ثم حدّد Enable. ويمكنك أيضًا تمكينه من CLI:
openclaw plugins enable workspacesيضيف تمكين Plugin علامة تبويب مساحات العمل ويتيح CLI openclaw workspaces وأدوات الوكيل workspace_*. أما تعطيله فيزيل هذه الواجهات دون حذف قاعدة بيانات مساحة العمل أو أصول الأدوات.
مساحة العمل الافتراضية
عند التحميل الأول، تحصل على مساحة عمل نظرة عامة: بطاقات التكلفة والرموز، وحالة المثيل، والجلسات، وحالة Cron، وموجز النشاط. وهذا محتوى عادي لمساحة العمل — يمكنك سحبه أو طيّه أو إخفاؤه أو حذفه.
الأدوات المضمّنة
تُشحن تسع أدوات موثوقة مع Plugin وتُعرض بوصفها واجهة مستخدم أصلية:
stat-card، وmarkdown، وtable، وiframe-embed، وsessions، وusage، وcron،
وinstances، وactivity.
تعلن الأدوات بياناتها من خلال الارتباطات، ولا تجلبها بنفسها أبدًا:
| الارتباط | يُحل إلى |
|---|---|
static |
قيمة حرفية مخزنة في المستند (بحد أقصى 8 كيلوبايت). |
file |
ملف JSON أو Markdown أو CSV ضمن <stateDir>/workspaces/data/، ويمكن اختياريًا تضييق نطاقه باستخدام مؤشر JSON. |
rpc |
إحدى طرق Gateway المخصصة للقراءة فقط ضمن قائمة سماح ثابتة، وتحلّها واجهة التحكم الموثوقة. |
يُعد ارتباط 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
openclaw workspaces tabs listopenclaw workspaces tabs create --title Financialsopenclaw workspaces widget-scaffold revenue-chart --title "Revenue Chart"openclaw workspaces widget-approve revenue-chartيتطلب widget-approve جهازًا مقترنًا بنطاق operator.approvals؛ أما الموافقة من واجهة التحكم فلا تتطلب ذلك، لأن المتصفح يحتفظ به بالفعل.
التخزين
يوجد مستند مساحة العمل وسجل الأدوات المخصصة وحلقة تراجع تضم 20 إدخالًا في
<stateDir>/workspaces/workspaces.sqlite. وتظل أصول الأدوات التي ينشئها الوكيل على القرص ضمن
<stateDir>/workspaces/widgets/<name>/، وبيانات ارتباطات الملفات ضمن
<stateDir>/workspaces/data/، لأن الوكيل ينشئها باستخدام أدوات الملفات العادية ويخدم مسار الأداة وحدات البايت الخاصة بها.