Skills

ورشة عمل Skills

Status: proposal

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 جميعًا الخدمة نفسها.

دورة الحياة

text
إنشاء/تحديث -> معلّقمراجعة       -> معلّقتطبيق        -> مطبّقرفض          -> مرفوضعزل          -> معزولتغيير الهدف  -> قديم

لا يمكن مراجعة المقترح أو تطبيقه أو رفضه أو عزله إلا إذا كان pending.

تنظيم دورة الحياة

يتتبع Gateway الاستخدام الإجمالي لـ Skills في قاعدة بيانات الحالة المشتركة. ومرة يوميًا، يراجع Skills التي أنشأها وطبّقها Skill Workshop. تصبح Skills غير المستخدمة لأكثر من 30 يومًا stale؛ وبعد 90 يومًا تصبح archived ويجري استبعادها من لقطات Skills الجديدة للوكلاء. تظل ملفات Skills المؤرشفة دون تغيير على القرص. لا تخضع Skills المؤلفة يدويًا للتنظيم مطلقًا؛ فلا تدخل تنظيم دورة الحياة إلا Skills التي أنشأتها مقترحات Skill Workshop.

تتجاوز Skills المثبّتة انتقالات دورة الحياة. وتعود Skill القديمة إلى active بعد استخدامها وتشغيل عملية الفحص التالية. ولا تعود Skills المؤرشفة إلا من خلال استعادة صريحة:

تنطبق انتقالات دورة الحياة وعمليات الاستعادة على الجلسات الجديدة؛ وتحتفظ الجلسات قيد التشغيل بلقطة Skills الحالية لديها.

bash
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 واحد موجّه بالمعايير:

text
/learn/learn docs/runbook.md وhttps://example.com/guide؛ ركّز على الاسترداد

من دون طلب، يطلب /learn من الوكيل استخلاص سير العمل القابل لإعادة الاستخدام من المحادثة الحالية. ومع وجود طلب، يتعامل الوكيل مع المسارات وعناوين URL والملاحظات الملصقة ومراجع المحادثة بوصفها مصادر، مع مراعاة متطلبات التركيز والنطاق والتسمية. ويجمع المصادر باستخدام أدواته الحالية، ثم يستدعي skill_workshop مع action: "create".

يظل المقترح الناتج pending؛ ولا يطبّقه /learn مطلقًا. راجعه وطبّقه من خلال مسار الموافقة المعتاد أو باستخدام openclaw skills workshop.

الإنشاء:

text
أنشئ Skill باسم morning-catchup تنفّذ روتين صندوق الوارد الخاص بي يوم الاثنين.

تحديث Skill موجودة في مساحة العمل:

text
حدّث trip-planning ليتحقق أيضًا من خرائط المقاعد قبل الحجز.

التكرار على مقترح معلّق:

text
اعرض لي مقترح morning-catchup.راجعه ليضع أيضًا علامة على كل ما هو محدد بأنه عاجل.طبّق مقترح morning-catchup.

تُشغَّل عمليات apply وreject وquarantine التي يبدأها الوكيل دون مطالبة موافقة إضافية افتراضيًا. اضبط skills.workshop.approvalPolicy على "pending" لطلب موافقة الجهة المشغّلة قبل هذه الإجراءات.

عندما تكون الموافقة مطلوبة، تحدد المطالبة معرّف المقترح وSkill المستهدفة، وتعرض وصف المقترح وعدد ملفات الدعم وحجم المتن. تكون طلبات الموافقة محددة زمنيًا لتنتهي قبل مراقب مهلة أداة الوكيل. وإذا لم يصل قرار قبل انتهاء صلاحية المطالبة، فلن يُنفَّذ إجراء دورة الحياة: يظل المقترح معلّقًا ودون تغيير. اتخذ القرار لاحقًا في واجهة Skill Workshop أو شغّل openclaw skills workshop apply|reject|quarantine <proposal-id>. ينبغي ألا تعيد الوكلاء محاولة إجراء دورة حياة منتهي الصلاحية في حلقة.

CLI

bash
# إنشاء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 خاص بالمقترح فقط:

markdown
---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:

bash
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".

راجع التعلّم الذاتي للحصول على تفاصيل التمكين والأهلية والخصوصية والتكلفة، وحدّ المقترحات، واستكشاف الأخطاء وإصلاحها.

الموافقة والاستقلالية

json5
{  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"؛ وهي تترك النتائج دائمًا في صورة مقترحات معلقة.

التخزين

text
&lt;OPENCLAW_STATE_DIR&gt;/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؛ ويوضح هذا الأمر الآن أن ورشة المهارات مضمّنة، ويطبع تلميح السياسة نفسه عند انطباقه.

ذو صلة

Was this useful?
On this page

On this page