SKILL.md تحت:
- Memory تخزّن الحقائق، والتفضيلات، والكيانات، والسياق السابق.
- Skills تخزّن الإجراءات القابلة لإعادة الاستخدام التي يجب أن يتبعها الوكيل في المهام المستقبلية.
- Skill Workshop هي الجسر من دور مفيد إلى Skill دائمة في مساحة العمل، مع فحوصات أمان وموافقة اختيارية.
- كيفية التحقق من أصول animated GIF المأخوذة من مصادر خارجية
- كيفية استبدال أصول لقطات الشاشة والتحقق من الأبعاد
- كيفية تشغيل سيناريو QA خاص بالمستودع
- كيفية تصحيح فشل مزوّد متكرر
- كيفية إصلاح ملاحظة محلية قديمة لسير العمل
- حقائق مثل “المستخدم يحب اللون الأزرق”
- ذاكرة سيرة ذاتية واسعة
- أرشفة transcript خام
- الأسرار، أو بيانات الاعتماد، أو نص المطالبة المخفي
- التعليمات لمرة واحدة التي لن تتكرر
الحالة الافتراضية
إن Plugin المضمّنة تجريبية ومعطلة افتراضيًا ما لم يتم تفعيلها صراحةً فيplugins.entries.skill-workshop.
لا يضبط manifest الخاص بالـ plugin القيمة enabledByDefault: true. وتنطبق القيمة
الافتراضية enabled: true داخل مخطط إعداد الـ plugin فقط بعد أن يكون إدخال الـ plugin
قد تم اختياره وتحميله بالفعل.
يعني “تجريبية” ما يلي:
- أن الـ plugin مدعومة بالقدر الكافي للاختبار الاختياري وdogfooding
- وأن تخزين المقترحات، وحدود المراجع، وأساليب الالتقاط يمكن أن تتطور
- وأن pending approval هي وضع البداية الموصى به
- وأن auto apply مخصصة لإعدادات شخصية/مساحة عمل موثوقة، وليس لبيئات مشتركة أو معادية كثيرة المدخلات
التفعيل
إعداد أدنى آمن:- تكون أداة
skill_workshopمتاحة - تُدرج التصحيحات القابلة لإعادة الاستخدام الصريحة في قائمة انتظار كمقترحات معلقة
- يمكن لتمريرات المراجع القائمة على الحدود اقتراح تحديثات للـ Skills
- لا يُكتب أي ملف Skill حتى يتم تطبيق مقترح معلق
approvalPolicy: "auto" تستخدم المسار نفسه الخاص بالماسح scanner والحجر quarantine. وهي
لا تطبق المقترحات التي تحتوي على نتائج حرجة.
الإعداد
| المفتاح | الافتراضي | النطاق / القيم | المعنى |
|---|---|---|---|
enabled | true | boolean | يفعّل الـ plugin بعد تحميل إدخال الـ plugin. |
autoCapture | true | boolean | يفعّل الالتقاط/المراجعة بعد الدور في أدوار الوكيل الناجحة. |
approvalPolicy | "pending" | "pending", "auto" | إدراج المقترحات في الانتظار أو كتابة المقترحات الآمنة تلقائيًا. |
reviewMode | "hybrid" | "off", "heuristic", "llm", "hybrid" | يختار الالتقاط الصريح للتصحيح، أو مراجع LLM، أو كليهما، أو لا شيء. |
reviewInterval | 15 | 1..200 | تشغيل المراجع بعد هذا العدد من الأدوار الناجحة. |
reviewMinToolCalls | 8 | 1..500 | تشغيل المراجع بعد هذا العدد من استدعاءات الأدوات المرصودة. |
reviewTimeoutMs | 45000 | 5000..180000 | المهلة الخاصة بتشغيل المراجع المضمّن. |
maxPending | 50 | 1..200 | الحد الأقصى للمقترحات المعلقة/المحجورة المحتفَظ بها لكل مساحة عمل. |
maxSkillBytes | 40000 | 1024..200000 | الحد الأقصى لحجم ملف Skill/الملف المساعد المولد. |
مسارات الالتقاط
لدى Skill Workshop ثلاثة مسارات للالتقاط.اقتراحات الأدوات
يمكن للنموذج استدعاءskill_workshop مباشرة عندما يرى إجراءً قابلًا لإعادة الاستخدام
أو عندما يطلب منه المستخدم حفظ/تحديث Skill.
وهذا هو المسار الأكثر صراحة ويعمل حتى عندما تكون autoCapture: false.
الالتقاط الاستدلالي
عندما تكونautoCapture مفعّلة وتكون قيمة reviewMode هي heuristic أو hybrid، تقوم
الـ plugin بفحص الأدوار الناجحة بحثًا عن عبارات تصحيح صريحة من المستخدم:
next timefrom now onremember tomake sure toalways ... use/check/verify/record/save/preferprefer ... when/for/instead/usewhen asked
- مهام animated GIF ->
animated-gif-workflow - مهام لقطات الشاشة أو الأصول ->
screenshot-asset-workflow - مهام QA أو السيناريوهات ->
qa-scenario-workflow - مهام GitHub PR ->
github-pr-workflow - بديل احتياطي ->
learned-workflows
مراجع LLM
عندما تكونautoCapture مفعّلة وتكون قيمة reviewMode هي llm أو hybrid، تقوم
الـ plugin بتشغيل مراجع مضمّن مضغوط بعد بلوغ الحدود.
يتلقى المراجع:
- نص transcript الأخير، مع حد أقصى يبلغ آخر 12,000 محرف
- حتى 12 من Skills مساحة العمل الموجودة
- حتى 2,000 محرف من كل Skill موجودة
- تعليمات JSON-only
disableTools: truetoolsAllow: []disableMessageTool: true
{ "action": "none" } أو مقترحًا واحدًا. يمكن أن يكون الحقل action هو create أو append أو replace — ويفضل استخدام append/replace عندما توجد Skill ذات صلة بالفعل؛ واستخدم create فقط عندما لا تكون هناك Skill موجودة مناسبة.
مثال على create:
append القيمة section + body. أما replace فيستبدل oldText بـ newText في Skill المسماة.
دورة حياة المقترح
يصبح كل تحديث مولَّد مقترحًا يتضمن:idcreatedAtupdatedAtworkspaceDiragentIdاختياريsessionIdاختياريskillNametitlereasonsource:toolأوagent_endأوreviewerstatuschangescanFindingsاختياريquarantineReasonاختياري
pending- في انتظار الموافقةapplied- كُتب إلى<workspace>/skillsrejected- رُفض من قِبل المشغّل/النموذجquarantined- حُظر بسبب نتائج حرجة من الماسح
maxPending.
مرجع الأداة
تسجل الـ plugin أداة وكيل واحدة:status
عدّ المقترحات حسب الحالة لمساحة العمل النشطة.
list_pending
سرد المقترحات المعلقة.
status الصالحة:
pendingappliedrejectedquarantined
list_quarantine
سرد المقترحات المحجورة.
skill-workshop: quarantined <skill>.
inspect
جلب مقترح حسب المعرّف.
suggest
أنشئ مقترحًا. ومع approvalPolicy: "pending" (الافتراضي)، سيُدرج هذا في قائمة الانتظار بدلًا من الكتابة.
فرض كتابة آمنة (apply: true)
فرض كتابة آمنة (apply: true)
فرض وضع pending ضمن سياسة auto (apply: false)
فرض وضع pending ضمن سياسة auto (apply: false)
الإلحاق بقسم مسمّى
الإلحاق بقسم مسمّى
استبدال نص مطابق تمامًا
استبدال نص مطابق تمامًا
apply
طبّق مقترحًا معلقًا.
apply المقترحات المحجورة:
reject
ضع علامة على المقترح بأنه مرفوض.
write_support_file
اكتب ملفًا مساعدًا داخل دليل Skill موجود أو مقترح.
الأدلة المساعدة المسموح بها على المستوى الأعلى:
references/templates/scripts/assets/
maxSkillBytes، وتُفحص، وتُكتب بطريقة ذرية.
كتابات Skills
تكتب Skill Workshop فقط تحت:- تتحول إلى أحرف صغيرة
- تتحول المقاطع غير
[a-z0-9_-]إلى- - تُزال الرموز غير الأبجدية الرقمية في البداية/النهاية
- الحد الأقصى للطول هو 80 محرفًا
- يجب أن يطابق الاسم النهائي النمط
[a-z0-9][a-z0-9_-]{1,79}
create:
- إذا لم تكن Skill موجودة، تكتب Skill Workshop ملف
SKILL.mdجديدًا - إذا كانت موجودة بالفعل، تُلحق Skill Workshop المتن إلى
## Workflow
append:
- إذا كانت Skill موجودة، تُلحق Skill Workshop بالقسم المطلوب
- إذا لم تكن موجودة، تُنشئ Skill Workshop Skill دنيا ثم تُلحق
replace:
- يجب أن تكون Skill موجودة بالفعل
- يجب أن يكون
oldTextموجودًا مطابقًا تمامًا - يتم استبدال أول تطابق مطابق فقط
نموذج الأمان
تحتوي Skill Workshop على ماسح أمان لمحتوىSKILL.md المولَّد والملفات المساعدة.
تؤدي النتائج الحرجة إلى حجر المقترحات:
| معرّف القاعدة | يحظر محتوى يقوم بـ… |
|---|---|
prompt-injection-ignore-instructions | إخبار الوكيل بتجاهل التعليمات السابقة/الأعلى |
prompt-injection-system | الإشارة إلى مطالبات النظام، أو رسائل المطور، أو التعليمات المخفية |
prompt-injection-tool | تشجيع تجاوز صلاحيات/موافقات الأدوات |
shell-pipe-to-shell | تضمين curl/wget موصولة إلى sh أو bash أو zsh |
secret-exfiltration | ما يبدو أنه يرسل بيانات env/process env عبر الشبكة |
| معرّف القاعدة | يحذر من… |
|---|---|
destructive-delete | أوامر واسعة من نمط rm -rf |
unsafe-permissions | استخدام أذونات من نمط chmod 777 |
- تحتفظ بـ
scanFindings - تحتفظ بـ
quarantineReason - تظهر في
list_quarantine - لا يمكن تطبيقها عبر
apply
إرشادات المطالبة
عند التفعيل، تقوم Skill Workshop بحقن قسم مطالبة قصير يخبر الوكيل باستخدامskill_workshop من أجل الذاكرة الإجرائية الدائمة.
تركز الإرشادات على:
- الإجراءات، لا الحقائق/التفضيلات
- تصحيحات المستخدم
- الإجراءات الناجحة غير الواضحة
- المزالق المتكررة
- إصلاح الـ Skills القديمة/الضعيفة/الخاطئة عبر append/replace
- حفظ الإجراءات القابلة لإعادة الاستخدام بعد حلقات أدوات طويلة أو إصلاحات صعبة
- نص Skill قصير بصيغة الأمر
- عدم تفريغ transcripts
approvalPolicy:
- وضع pending: إدراج الاقتراحات في قائمة الانتظار؛ والتطبيق فقط بعد موافقة صريحة
- وضع auto: تطبيق تحديثات Skills الآمنة الخاصة بمساحة العمل عندما تكون قابلة لإعادة الاستخدام بوضوح
التكلفة وسلوك وقت التشغيل
لا يستدعي الالتقاط heuristic أي نموذج. تستخدم مراجعة LLM تشغيلًا مضمّنًا على نموذج الوكيل النشط/الافتراضي. وهي قائمة على حدود threshold بحيث لا تعمل افتراضيًا في كل دور. المراجع:- يستخدم سياق المزوّد/النموذج المهيأ نفسه عند توفره
- يعود احتياطيًا إلى القيم الافتراضية لوكيل وقت التشغيل
- لديه
reviewTimeoutMs - يستخدم سياق bootstrap خفيفًا
- لا يملك أدوات
- لا يكتب شيئًا مباشرة
- لا يستطيع إلا إصدار مقترح يمر عبر المسار العادي للماسح والموافقة/الحجر
أنماط التشغيل
استخدم Skill Workshop عندما يقول المستخدم:- “next time, do X”
- “from now on, prefer Y”
- “make sure to verify Z”
- “save this as a workflow”
- “this took a while; remember the process”
- “update the local skill for this”
- تشبه transcript
- ليست بصيغة الأمر
- تتضمن تفاصيل مزعجة لمرة واحدة
- لا تخبر الوكيل التالي بما يجب فعله
تصحيح الأخطاء
تحقق مما إذا كانت الـ plugin محمّلة:| العرض | السبب المرجح | ما الذي يجب فحصه |
|---|---|---|
| الأداة غير متاحة | إدخال الـ plugin غير مفعّل | plugins.entries.skill-workshop.enabled وopenclaw plugins list |
| لا يظهر أي مقترح تلقائي | autoCapture: false، أو reviewMode: "off"، أو لم تتحقق الحدود | الإعداد، وحالة المقترحات، وسجلات Gateway |
| لم يلتقط heuristic شيئًا | لم تطابق صياغة المستخدم أنماط التصحيح | استخدم skill_workshop.suggest صراحةً أو فعّل مراجع LLM |
| لم ينشئ المراجع مقترحًا | أعاد المراجع none، أو JSON غير صالح، أو انتهت المهلة | سجلات Gateway، وreviewTimeoutMs، والحدود |
| لم يتم تطبيق المقترح | approvalPolicy: "pending" | list_pending، ثم apply |
| اختفى المقترح من pending | تمت إعادة استخدام مقترح مكرر، أو pruning بسبب max pending، أو تم تطبيقه/رفضه/حجره | status، وlist_pending مع مرشحات الحالة، وlist_quarantine |
| ملف Skill موجود لكن النموذج يفوته | لم يتم تحديث لقطة Skill أو أن ضبط Skills يستبعده | حالة openclaw skills وأهلية Skills مساحة العمل |
skill-workshop: queued <skill>skill-workshop: applied <skill>skill-workshop: quarantined <skill>skill-workshop: heuristic capture skipped: ...skill-workshop: reviewer skipped: ...skill-workshop: reviewer found no update
سيناريوهات QA
سيناريوهات QA المدعومة بالمستودع:qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.mdqa/scenarios/plugins/skill-workshop-pending-approval.mdqa/scenarios/plugins/skill-workshop-reviewer-autonomous.md
reviewMode: "llm" ويمارس تمريرة المراجع المضمّنة.
متى يجب عدم تفعيل auto apply
تجنبapprovalPolicy: "auto" عندما:
- تحتوي مساحة العمل على إجراءات حساسة
- يعمل الوكيل على مدخلات غير موثوقة
- تُشارك Skills عبر فريق واسع
- ما زلت تضبط المطالبات أو قواعد الماسح
- يتعامل النموذج كثيرًا مع محتوى ويب/بريد إلكتروني معادٍ