Skills
ورشة عمل Skills
Skill Workshop هو المسار الخاضع للحوكمة في OpenClaw لإنشاء Skills مساحة العمل
وتحديثها. لا تكتب الوكلاء ولا الجهات المشغّلة SKILL.md مباشرةً عبر هذا
المسار، بل ينشئون مقترحًا (مسودة معلّقة تتضمن المحتوى وربط الهدف
وحالة الماسح والتجزئات وبيانات التراجع الوصفية) لا يصبح Skill نشطة
إلا عند تطبيقه.
لا يكتب Skill Workshop إلا Skills مساحة العمل. ولا يمس مطلقًا Skills المضمّنة أو التابعة لـ Plugin أو ClawHub أو الجذر الإضافي أو المُدارة أو الخاصة بالوكيل الشخصي أو النظام.
آلية العمل
- المقترح أولًا: يُخزَّن المحتوى المُنشأ بوصفه
PROPOSAL.md، وليسSKILL.md. - التطبيق هو عملية الكتابة المباشرة الوحيدة: لا تؤدي عمليات الإنشاء والتحديث والمراجعة مطلقًا إلى تغيير Skills النشطة.
- مقيّد بمساحة العمل: تستهدف عمليات الإنشاء جذر
skills/لمساحة العمل؛ ولا يُسمح بالتحديثات إلا لـ Skills مساحة العمل القابلة للكتابة. - منع الاستبدال: تفشل عملية الإنشاء إذا كانت Skill المستهدفة موجودة بالفعل.
- مرتبط بالتجزئة: ترتبط مقترحات التحديث بالتجزئة الحالية للهدف وتصبح
staleإذا تغيرت Skill المباشرة قبل التطبيق. - مقيّد بالماسح: يعيد التطبيق تشغيل ماسح الأمان قبل الكتابة.
- قابل للاسترداد: يكتب التطبيق بيانات التراجع الوصفية قبل المساس بالملفات المباشرة.
- واجهات متسقة: تستدعي الدردشة وCLI وGateway جميعًا الخدمة نفسها.
دورة الحياة
إنشاء/تحديث -> معلّقمراجعة -> معلّقتطبيق -> مطبّقرفض -> مرفوضعزل -> معزولتغيير الهدف -> قديملا يمكن مراجعة المقترح أو تطبيقه أو رفضه أو عزله إلا إذا كان pending.
تنظيم دورة الحياة
يتتبع Gateway الاستخدام الإجمالي لـ Skills في قاعدة بيانات الحالة المشتركة. ومرة
يوميًا، يراجع Skills التي أنشأها وطبّقها Skill Workshop. تصبح Skills غير المستخدمة لأكثر
من 30 يومًا stale؛ وبعد 90 يومًا تصبح archived ويجري
استبعادها من لقطات Skills الجديدة للوكلاء. تظل ملفات Skills المؤرشفة دون تغيير على
القرص. لا تخضع Skills المؤلفة يدويًا للتنظيم مطلقًا؛ فلا تدخل تنظيم دورة الحياة إلا Skills التي
أنشأتها مقترحات Skill Workshop.
تتجاوز Skills المثبّتة انتقالات دورة الحياة. وتعود Skill القديمة إلى active
بعد استخدامها وتشغيل عملية الفحص التالية. ولا تعود Skills المؤرشفة إلا من خلال
استعادة صريحة:
تنطبق انتقالات دورة الحياة وعمليات الاستعادة على الجلسات الجديدة؛ وتحتفظ الجلسات قيد التشغيل بلقطة Skills الحالية لديها.
openclaw skills curator statusopenclaw skills curator pin <skill>openclaw skills curator unpin <skill>openclaw skills curator restore <skill>تقبل جميع أوامر المنظّم --json. وتُبلغ الحالة أيضًا عن مرشحي التداخل الحتميين
بوصفهم اقتراحات فقط؛ ولا تدمج Skills مطلقًا ولا تستدعي نموذجًا.
الدردشة
اطلب من الوكيل Skill التي تريدها؛ فيستدعي skill_workshop ويعيد
معرّف مقترح.
التعلّم من العمل الأخير
استخدم /learn لتحويل المحادثة الحالية أو المصادر المسماة إلى مقترح Skill واحد
موجّه بالمعايير:
/learn/learn docs/runbook.md وhttps://example.com/guide؛ ركّز على الاستردادمن دون طلب، يطلب /learn من الوكيل استخلاص سير العمل القابل لإعادة الاستخدام من
المحادثة الحالية. ومع وجود طلب، يتعامل الوكيل مع المسارات وعناوين URL والملاحظات الملصقة
ومراجع المحادثة بوصفها مصادر، مع مراعاة متطلبات التركيز والنطاق
والتسمية. ويجمع المصادر باستخدام أدواته الحالية، ثم يستدعي
skill_workshop مع action: "create".
يظل المقترح الناتج pending؛ ولا يطبّقه /learn مطلقًا. راجعه
وطبّقه من خلال مسار الموافقة المعتاد أو باستخدام openclaw skills workshop.
الإنشاء:
أنشئ Skill باسم morning-catchup تنفّذ روتين صندوق الوارد الخاص بي يوم الاثنين.تحديث Skill موجودة في مساحة العمل:
حدّث trip-planning ليتحقق أيضًا من خرائط المقاعد قبل الحجز.التكرار على مقترح معلّق:
اعرض لي مقترح morning-catchup.راجعه ليضع أيضًا علامة على كل ما هو محدد بأنه عاجل.طبّق مقترح morning-catchup.تُشغَّل عمليات apply وreject وquarantine التي يبدأها الوكيل دون مطالبة
موافقة إضافية افتراضيًا. اضبط skills.workshop.approvalPolicy على "pending"
لطلب موافقة الجهة المشغّلة قبل هذه الإجراءات.
عندما تكون الموافقة مطلوبة، تحدد المطالبة معرّف المقترح وSkill
المستهدفة، وتعرض وصف المقترح وعدد ملفات الدعم وحجم المتن.
تكون طلبات الموافقة محددة زمنيًا لتنتهي قبل مراقب مهلة أداة الوكيل. وإذا لم
يصل قرار قبل انتهاء صلاحية المطالبة، فلن يُنفَّذ إجراء دورة الحياة:
يظل المقترح معلّقًا ودون تغيير. اتخذ القرار لاحقًا في واجهة Skill Workshop أو شغّل
openclaw skills workshop apply|reject|quarantine <proposal-id>. ينبغي ألا
تعيد الوكلاء محاولة إجراء دورة حياة منتهي الصلاحية في حلقة.
CLI
# إنشاءopenclaw skills workshop propose-create \ --name morning-catchup \ --description "متابعة يومية لصندوق الوارد: الفرز، الأرشفة، الإبراز، إعداد المسودات، التخطيط" \ --proposal ./PROPOSAL.md # تحديث Skill موجودة في مساحة العملopenclaw skills workshop propose-update trip-planning --proposal ./PROPOSAL.md # العرض والفحصopenclaw skills workshop listopenclaw skills workshop inspect <proposal-id> # المراجعة قبل الموافقةopenclaw skills workshop revise <proposal-id> --proposal ./PROPOSAL.md # الإنهاءopenclaw skills workshop apply <proposal-id>openclaw skills workshop reject <proposal-id> --reason "مكرر"openclaw skills workshop quarantine <proposal-id> --reason "يحتاج إلى مراجعة أمنية"يقبل كل أمر فرعي --agent <id> (مساحة العمل المستهدفة؛ وتكون افتراضيًا
المستنتجة من cwd، ثم الوكيل الافتراضي) و--json (مخرجات منظّمة).
كما تقبل propose-create وpropose-update وrevise أيضًا --goal <text> و
--evidence <text> لتسجيل سياق المقترح إلى جانب --proposal.
محتوى المقترح
أثناء التعليق، يُخزَّن المقترح بوصفه PROPOSAL.md مع frontmatter
خاص بالمقترح فقط:
---name: "morning-catchup"description: "متابعة يومية لصندوق الوارد: الفرز، الأرشفة، الإبراز، إعداد المسودات، التخطيط"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---عند التطبيق، يكتب Skill Workshop ملف SKILL.md النشط ويزيل
الحقول الخاصة بالمقترح فقط: status وversion للمقترح وdate للمقترح.
ملفات الدعم
استخدم --proposal-dir عندما تحتاج Skill المقترحة إلى ملفات بجانب
PROPOSAL.md:
openclaw skills workshop propose-create \ --name weekly-update \ --description "ملخص الجمعة: الإحصاءات، أبرز النقاط، أهم ثلاثة أمور للأسبوع المقبل" \ --proposal-dir ./weekly-update-proposalيجب أن يحتوي الدليل على PROPOSAL.md. ويجب أن توجد ملفات الدعم ضمن
assets/ أو examples/ أو references/ أو scripts/ أو templates/. يفحص Skill
Workshop هذه الملفات ويحسب تجزئاتها ويخزنها مع المقترح، ثم يكتبها
بجانب SKILL.md المباشر عند التطبيق فقط.
مسارات ملفات الدعم المرفوضة: المسارات المطلقة، ومقاطع المسارات المخفية، واجتياز المسار، والمسارات المتداخلة، والملفات القابلة للتنفيذ، والنصوص غير المشفرة بـ UTF-8، والبايتات الفارغة، والمسارات الواقعة خارج مجلدات الدعم القياسية.
أداة الوكيل
يستخدم النموذج skill_workshop مع action مطلوب واحد:
create | update | revise | list | inspect | apply | reject | quarantine.
وتنطبق المعلمات الأخرى بحسب الإجراء:
| المعلمة | تُستخدم بواسطة | ملاحظات |
|---|---|---|
name |
create، inspect، revise |
مطلوبة لـ create؛ وتحدد مقترحًا معلّقًا بالاسم في الحالات الأخرى |
description |
create، update، revise |
160 بايت كحد أقصى |
skill_name |
update |
اسم Skill الموجودة أو مفتاحها |
proposal_content |
create، update، revise |
يُخزَّن بوصفه PROPOSAL.md؛ ومحدود بـ skills.workshop.maxSkillBytes |
support_files |
create، update، revise |
مصفوفة من { path, content } |
goal، evidence |
create، update، revise |
سياق نصي حر |
proposal_id |
inspect، revise، apply، reject، quarantine |
المقترح المستهدف |
reason |
apply، reject، quarantine |
اختياري |
query، status، limit |
list |
التصفية/التقسيم إلى صفحات؛ الحد الأقصى لـ limit هو 50، والافتراضي 20 |
يجب على الوكلاء استخدام skill_workshop لعمل Skills المُنشأة. ويجب ألا
ينشئوا ملفات المقترحات أو يغيروها من خلال write أو edit أو exec أو أوامر shell
أو عمليات نظام الملفات المباشرة.
Skills المقترحة
يكتشف OpenClaw التعليمات الدائمة مثل «في المرة القادمة» و«تذكّر أن»، والتصحيحات التفاعلية
عند انتهاء دورة تفاعلية، بما في ذلك الدورات الفاشلة. وفي الدورة التالية، يعرض الوكيل حفظ
أحدث سير عمل مكتشف من خلال skill_workshop؛ ويقرر المستخدم ما إذا كان سينشئ
مقترحًا. لا ينشئ هذا الاقتراح المضمّن Skill ولا يغيرها من تلقاء نفسه. فعّل
skills.workshop.autonomous.enabled لإنشاء مقترحات معلّقة مباشرةً بدلًا من ذلك. في واجهة Control
UI، توفر علامة التبويب Workshop الإعداد نفسه كمفتاح تبديل التعلّم الذاتي في رأس الصفحة،
وكزر تمكين على لوحة المقترحات الفارغة.
فحص الجلسات السابقة
يمكن لواجهة Control UI مراجعة الأعمال الأقدم من دون تمكين التعلّم الذاتي المستقل. افتح Plugins → Workshop وحدد البحث عن أفكار لـ Skills. يبدأ الفحص بأحدث الجلسات المؤهلة ويراجع نافذة محدودة من العمل الجوهري. ويتخطى جلسات cron وheartbeat وhook والوكيل الفرعي وACP والجلسات المملوكة لـ Plugin وجلسات المراجعة الداخلية، إضافةً إلى المحادثات التي تحتوي على أقل من ست دورات للنموذج.
يستخدم المراجع النموذج المضبط للوكيل المحدد ويتلقى حزمة نصوص منقحة الأسرار ومحدودة الحجم. ويطبّق المعيار المتحفظ نفسه المطبق على مراجعة الخبرة: نمط استرداد ملموس أو إجراء مستقر من شأنه إزالة استدعاءين مستقبليين على الأقل للنموذج أو الأدوات. ينبغي ألا ينتج العمل الروتيني والحقائق المنفردة أي مقترح.
يمكن لفحص واحد إنشاء أو مراجعة ثلاثة مقترحات معلّقة على الأكثر. ولا يمكنه تطبيق Skill مباشرة أو رفضها أو عزلها أو تعديلها. يعرض Workshop التغطية التراكمية، مثل تمت مراجعة 20 جلسة · 18 يونيو–اليوم · عُثر على فكرتين. حدد فحص عمل أقدم للمتابعة من مؤشر أقدم جلسة المخزّن. وبعد استنفاد السجل المتاح، يصبح الإجراء فحص عمل جديد.
المراجعة التاريخية يدوية حتى عندما تكون
skills.workshop.autonomous.enabled هي false. تبدأ كل نقرة تشغيلًا للنموذج،
لذا تنطبق شروط التسعير ومعالجة البيانات الخاصة بموفّر الخدمة. يُخزَّن المؤشر وأعداد التغطية
في قاعدة بيانات حالة OpenClaw المشتركة؛ ولا يُنسخ محتوى النص المنسوخ
إلى حالة الفحص.
عند تمكين الالتقاط الذاتي، يمكن لـ OpenClaw أيضًا إجراء مراجعة متحفظة بعد إنجاز عمل ناجح
وجوهري، وبعد أن يصبح نظام الوكلاء بأكمله خاملًا. يمكن لهذه المراجعة المعزولة إنشاء
مقترح معلق واحد على الأكثر أو تنقيحه. ولا يمكنها تحديث مهارة قيد الاستخدام، أو تطبيق مقترح أو رفضه أو عزله،
حتى عندما تكون approvalPolicy هي "auto".
راجع التعلّم الذاتي للحصول على تفاصيل التمكين والأهلية والخصوصية والتكلفة، وحدّ المقترحات، واستكشاف الأخطاء وإصلاحها.
الموافقة والاستقلالية
{ skills: { workshop: { autonomous: { enabled: false, }, allowSymlinkTargetWrites: false, approvalPolicy: "auto", maxPending: 50, maxSkillBytes: 40000, }, },}| الإعداد | القيمة الافتراضية | التأثير |
|---|---|---|
autonomous.enabled |
false |
ينشئ مقترحات معلقة من التصحيحات الصريحة، وبعد مهلة خمول، من العمل الجوهري المكتمل الذي يوفّر استردادًا قابلًا لإعادة الاستخدام أو وفورات ملموسة في رحلات الذهاب والإياب. |
allowSymlinkTargetWrites |
false |
يتيح للتطبيق الكتابة عبر الروابط الرمزية لمهارات مساحة العمل التي يكون هدفها الحقيقي مدرجًا في skills.load.allowSymlinkTargets. |
approvalPolicy |
"auto" |
تتخطى "auto" مطالبة إضافية لإجراءات apply أو reject أو quarantine التي يبدأها الوكيل (ولا يزال يتعين على الوكيل استدعاء الإجراء). تتطلب "pending" الموافقة. |
maxPending |
50 |
يضع حدًا أقصى للمقترحات المعلقة والمعزولة لكل مساحة عمل (1-200). |
maxSkillBytes |
40000 |
يضع حدًا أقصى لحجم نص المقترح بالبايت (1024-200000). |
يتعرّف الالتقاط الذاتي على القواعد المستقبلية (على سبيل المثال، «من الآن فصاعدًا») والتصحيحات التفاعلية (على سبيل المثال، «هذا ليس ما طلبته»). ويُجمّع التعليمات الجديدة حسب الموضوع في ما يصل إلى ثلاثة مقترحات لكل دور، ويوجّه مطابقات المفردات إلى مهارات مساحة العمل الحالية القابلة للكتابة، كما ينقّح مقترحه المعلق عندما يستهدف تصحيح آخر المهارة نفسها.
بالنسبة إلى العمل الجوهري الناجح من دون تصحيح صريح، يقرر تشغيل معزول للنموذج المحدد
ما إذا كان المسار المكتمل يتجاوز الحد المتحفظ للمقترحات. ولا يُطلب من النموذج الأمامي
أن يتعلّم قبل الرد. ويحافظ المراجع في الخلفية على التشغيل الأمامي بوصفه مصدر المقترح،
ولا يمكنه الوصول إلى أدوات الوكيل العامة، ولا اتخاذ قرارات دورة الحياة. ولا تبدأ المراجعة إلا عندما
يبلّغ وقت التشغيل الأمامي عن كلٍّ من نموذجه المحسوم الدقيق وأن skill_workshop كانت متاحة بالفعل.
ولذلك تفشل سياسة الأدوات التقييدية أو غير المعروفة بصورة مغلقة ولا تنشئ أي مقترح.
راجع التعلّم الذاتي للاطلاع على السلوك الكامل للمراجعة الذاتية ونموذج السلامة.
يقتصر وصف المقترح دائمًا على 160 بايت، بصرف النظر عن
maxSkillBytes.
أساليب Gateway
| الأسلوب | النطاق |
|---|---|
skills.proposals.list |
operator.read |
skills.proposals.inspect |
operator.read |
skills.proposals.historyStatus |
operator.read |
skills.proposals.historyScan |
operator.admin |
skills.proposals.create |
operator.admin |
skills.proposals.update |
operator.admin |
skills.proposals.revise |
operator.admin |
skills.proposals.requestRevision |
operator.admin |
skills.proposals.apply |
operator.admin |
skills.proposals.reject |
operator.admin |
skills.proposals.quarantine |
operator.admin |
skills.curator.status |
operator.read |
skills.curator.pin |
operator.admin |
skills.curator.unpin |
operator.admin |
skills.curator.restore |
operator.admin |
تتوفر requestRevision في Gateway فقط (ولا يوجد مكافئ لها في CLI أو أدوات الوكيل): فهي
تمرّر تعليمات تنقيح ذات نص حر إلى جلسة محادثة الوكيل المالك
بدلًا من استبدال PROPOSAL.md مباشرةً، وذلك لواجهات المستخدم التي تطلب من الوكيل
التنقيح بدلًا من إرسال محتوى جديد حرفيًا.
تُعد historyStatus وhistoryScan أسلوبَي دعم لواجهة التحكم. تقبل historyScan
القيمة direction: "older" | "newer"؛ وهي تترك النتائج دائمًا في صورة
مقترحات معلقة.
التخزين
<OPENCLAW_STATE_DIR>/skill-workshop/ proposals.json proposals/<proposal-id>/ proposal.json PROPOSAL.md rollback.json assets/ examples/ references/ scripts/ templates/دليل الحالة الافتراضي: ~/.openclaw.
proposal.json: سجل المقترح المعتمد.proposals.json: فهرس سريع لإعداد القوائم، وقابل لإعادة البناء من مجلدات المقترحات.PROPOSAL.md: مقترح مهارة معلق.rollback.json: بيانات تعريف الاسترداد التي تُكتب قبل أن يطبّق الإجراء التغييرات على الملفات قيد الاستخدام.
الحدود
| الحد | القيمة |
|---|---|
| الوصف | 160 بايت |
| نص المقترح | skills.workshop.maxSkillBytes (القيمة الافتراضية 40,000؛ الحد الأقصى الصارم 1 MiB) |
| ملفات الدعم | 64 لكل مقترح |
| حجم ملف الدعم | 256 KiB لكل ملف، و2 MiB إجمالًا |
| المقترحات المعلقة + المعزولة | skills.workshop.maxPending لكل مساحة عمل (القيمة الافتراضية 50) |
استكشاف الأخطاء وإصلاحها
| المشكلة | الحل |
|---|---|
Skill proposal description is too large |
اختصر description إلى 160 بايت أو أقل. |
Skill proposal content is too large |
اختصر نص المقترح أو ارفع skills.workshop.maxSkillBytes. |
Target skill changed after proposal creation |
نقّح المقترح وفقًا للهدف الحالي، أو أنشئ مقترحًا جديدًا. |
Proposal scan failed |
افحص نتائج الماسح، ثم نقّح المقترح أو اعزله. |
untrusted symlink target |
اضبط skills.load.allowSymlinkTargets ومكّن skills.workshop.allowSymlinkTargetWrites فقط لجذور المهارات المشتركة المقصودة. |
Support file paths must be under one of... |
انقل ملفات الدعم إلى assets/ أو examples/ أو references/ أو scripts/ أو templates/. |
| لا يظهر المقترح في القائمة | تحقّق من مساحة عمل --agent المحددة ومن OPENCLAW_STATE_DIR. |
لا يستطيع الوكيل استدعاء skill_workshop |
تحقّق من سياسة الأدوات النشطة ووضع التشغيل. تتضمن coding الأداة؛ ويجب أن تدرجها سياسات tools.allow التقييدية صراحةً، كما يجب أن تستخدم عمليات التشغيل المعزولة جلسة وكيل عادية على جانب المضيف أو CLI. |
تشخيص سياسة الأدوات
عند تمكين الالتقاط الذاتي، تشغّل openclaw doctor عملية التحقق
core/doctor/skill-workshop-tool-policy للوكيل الافتراضي. وإذا كانت السياسة
تخفي skill_workshop، يسمّي التحذير أول طبقة إعداد مستبعِدة
والتغيير الدقيق المطلوب إجراؤه في allow أو alsoAllow. قد تظل أدلة التشغيل الأقدم تستخدم
openclaw plugins inspect skill-workshop؛ ويوضح هذا الأمر الآن أن ورشة المهارات
مضمّنة، ويطبع تلميح السياسة نفسه عند انطباقه.
ذو صلة
- المهارات لمعرفة ترتيب التحميل والأسبقية وإمكانية الظهور
- التعلّم الذاتي لمقترحات المهارات المتحفظة بعد التشغيل
- إنشاء المهارات للتعرّف على أساسيات
SKILL.mdالمكتوبة يدويًا - إعداد المهارات لمخطط
skills.workshopالكامل - CLI للمهارات لأوامر
openclaw skills