Skills
ورشة عمل Skills
ورشة Skills هي المسار المحكوم في OpenClaw لإنشاء Skills مساحة العمل وتحديثها.
لا يكتب الوكلاء والمشغلون ملفات SKILL.md النشطة مباشرة عبر هذا
المسار. بل ينشئون مقترحًا أولًا. المقترح هو مسودة معلّقة تحتوي على
محتوى Skill المقترح، وربط الهدف، وحالة الماسح، والتجزئات، وبيانات تعريف
ملفات الدعم، وبيانات تعريف الرجوع. ولا يصبح Skill حيًا إلا عند تطبيقه.
تكتب ورشة Skills مهارات مساحة العمل فقط. ولا تعدّل Skills المضمّنة، أو Plugin، أو ClawHub، أو الجذر الإضافي، أو المُدارة، أو وكيلًا شخصيًا، أو Skills النظام.
كيف تعمل
- المقترح أولًا: يُخزّن محتوى Skill المُولّد باسم
PROPOSAL.md، وليسSKILL.md. - التطبيق هو الكتابة الحية الوحيدة: لا تغيّر عمليات الإنشاء، والتحديث، والمراجعة Skills النشطة.
- مقيّدة بمساحة العمل: تستهدف عمليات الإنشاء جذر
skills/الخاص بمساحة العمل. ولا تُسمح التحديثات إلا لمهارات مساحة العمل القابلة للكتابة. - لا استبدال قسري: تفشل عملية الإنشاء إذا كان Skill الهدف موجودًا بالفعل.
- مربوط بالتجزئة: ترتبط مقترحات التحديث بتجزئة الهدف الحالية وتصبح قديمة إذا تغيّر Skill الحي قبل التطبيق.
- محكومة بالماسح: تعيد عملية التطبيق تشغيل الفحص قبل الكتابة.
- قابلة للاسترداد: تكتب عملية التطبيق بيانات تعريف الرجوع قبل تغيير الملفات الحية.
- أسطح متسقة: تستدعي الدردشة، وCLI، وGateway كلها خدمة ورشة Skills نفسها.
دورة الحياة
create/update -> pendingrevise -> pendingapply -> appliedreject -> rejectedquarantine -> quarantinedtarget change -> staleلا يمكن مراجعة أو تطبيق أو رفض أو عزل إلا المقترحات ذات الحالة pending.
الدردشة
اطلب من الوكيل Skill الذي تريده. يستدعي الوكيل skill_workshop ويعيد
معرّف مقترح.
إنشاء:
Make a skill called morning-catchup that runs my Monday inbox routine.تحديث Skill موجود في مساحة العمل:
Update trip-planning to also check seat maps before booking.التكرار على مقترح معلّق:
Show me the morning-catchup proposal.Revise it to also flag anything marked urgent.Apply the morning-catchup proposal.افتراضيًا، تُظهر عمليات apply وreject وquarantine التي يبدأها الوكيل
مطالبة موافقة قبل تشغيلها. اضبط skills.workshop.approvalPolicy على
"auto" لتخطي المطالبة في البيئات الموثوقة.
CLI
إنشاء مقترح Skill جديد:
openclaw skills workshop propose-create \ --name morning-catchup \ --description "Daily inbox catch-up: triage, archive, surface, draft, plan" \ --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 "Duplicate"openclaw skills workshop quarantine <proposal-id> --reason "Needs security review"محتوى المقترح
أثناء التعليق، يُخزّن المقترح باسم PROPOSAL.md مع frontmatter خاص
بالمقترح فقط:
---name: "morning-catchup"description: "Daily inbox catch-up: triage, archive, surface, draft, plan"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---عند التطبيق، تكتب ورشة Skills ملف SKILL.md النشط وتزيل الحقول الخاصة
بالمقترح فقط: status، وversion الخاص بالمقترح، وdate الخاص بالمقترح.
ملفات الدعم
استخدم --proposal-dir عندما يحتاج Skill المقترح إلى ملفات بجانب
PROPOSAL.md:
openclaw skills workshop propose-create \ --name weekly-update \ --description "Friday wrap-up: stats, highlights, next week's top three" \ --proposal-dir ./weekly-update-proposalيجب أن يحتوي الدليل على PROPOSAL.md. يجب أن تكون ملفات الدعم ضمن:
assets/examples/references/scripts/templates/
تفحص ورشة Skills ملفات الدعم وتجزئها وتخزنها مع المقترح. ولا تُكتب بجانب
ملف SKILL.md الحي إلا عند التطبيق.
تشمل مسارات ملفات الدعم المرفوضة المسارات المطلقة، ومقاطع المسار المخفية، واجتياز المسارات، والمسارات المتداخلة، والملفات التنفيذية من أدلة المقترحات، والنص غير UTF-8، والبايتات الفارغة، والملفات خارج مجلدات الدعم القياسية.
أداة الوكيل
يستخدم النموذج skill_workshop:
action: create | update | revise | list | inspect | apply | reject | quarantineيجب على الوكلاء استخدام skill_workshop لأعمال Skill المُولّدة. ويجب ألا
ينشئوا أو يغيّروا ملفات المقترحات عبر write أو edit أو exec أو أوامر
الصدفة أو عمليات نظام الملفات المباشرة.
الموافقة والاستقلالية
{ skills: { workshop: { autonomous: { enabled: false, }, allowSymlinkTargetWrites: false, approvalPolicy: "pending", maxPending: 50, maxSkillBytes: 40000, }, },}autonomous.enabled: يسمح لـ OpenClaw بإنشاء مقترحات معلّقة من إشارات محادثة دائمة بعد دورات ناجحة. الافتراضي:false.allowSymlinkTargetWrites: يسمح للتطبيق بالكتابة عبر روابط Skills الرمزية في مساحة العمل التي يكون هدفها الحقيقي مدرجًا فيskills.load.allowSymlinkTargets. الافتراضي:false.approvalPolicy: "pending": يتطلب مطالبة موافقة قبلapplyأوrejectأوquarantineالتي يبدأها الوكيل.approvalPolicy: "auto": يتخطى مطالبة الموافقة تلك. يجب أن يظل الوكيل مستدعيًا للإجراء.maxPending: يحد عدد المقترحات المعلّقة والمعزولة لكل مساحة عمل.maxSkillBytes: يحد حجم متن المقترح. الافتراضي:40000.
تُقيّد أوصاف المقترحات دائمًا بـ 160 بايت.
أساليب Gateway
skills.proposals.listskills.proposals.inspectskills.proposals.createskills.proposals.updateskills.proposals.reviseskills.proposals.applyskills.proposals.rejectskills.proposals.quarantineتتطلب الأساليب للقراءة فقط operator.read. وتتطلب الأساليب المُعدِّلة
operator.admin.
التخزين
<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: مقترح Skill معلّق.rollback.json: بيانات تعريف الاسترداد المكتوبة قبل أن يغيّر التطبيق الملفات الحية.
الحدود
- الوصف: 160 بايت.
- متن المقترح:
skills.workshop.maxSkillBytes(الافتراضي 40,000). - ملفات الدعم: 64 لكل مقترح.
- حجم ملف الدعم: 256 كيلوبايت لكل ملف، و2 ميغابايت إجمالًا.
- المقترحات المعلّقة والمعزولة:
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 فقط لجذور Skills المشتركة المقصودة. |
Support file paths must be under one of... |
انقل ملفات الدعم إلى assets/ أو examples/ أو references/ أو scripts/ أو templates/. |
| لا يظهر المقترح في القائمة | تحقق من مساحة العمل المحددة عبر --agent وOPENCLAW_STATE_DIR. |
لا يستطيع الوكيل استدعاء skill_workshop |
تحقق من سياسة الأدوات النشطة ووضع التشغيل. يتضمن coding الأداة؛ ويجب أن تدرج سياسات tools.allow التقييدية الأداة صراحةً، كما يجب أن تستخدم عمليات التشغيل المعزولة جلسة وكيل عادية على جانب المضيف أو CLI. |
ذات صلة
- Skills لترتيب التحميل، والأسبقية، والرؤية
- إنشاء Skills للأساسيات المكتوبة يدويًا في
SKILL.md - إعدادات Skills للمخطط الكامل لـ
skills.workshop - CLI الخاص بـ Skills لأوامر
openclaw skills