Skills (OpenClaw)
يستخدم OpenClaw مجلدات Skills متوافقة مع AgentSkills لتعليم الوكيل كيفية استخدام الأدوات. كل Skill هو دليل يحتوي علىSKILL.md يتضمن YAML frontmatter وتعليمات. يحمّل OpenClaw Skills المجمّعة بالإضافة إلى تجاوزات محلية اختيارية، ويقوم بتصفيتها وقت التحميل استنادًا إلى البيئة، والتهيئة، ووجود الملفات التنفيذية.
المواقع والأولوية
يحمّل OpenClaw Skills من هذه المصادر:- مجلدات Skills إضافية: تُهيَّأ عبر
skills.load.extraDirs - Skills المجمّعة: تُشحن مع التثبيت (حزمة npm أو OpenClaw.app)
- Skills المُدارة/المحلية:
~/.openclaw/skills - Skills الوكيل الشخصية:
~/.agents/skills - Skills وكيل المشروع:
<workspace>/.agents/skills - Skills مساحة العمل:
<workspace>/skills
<workspace>/skills (الأعلى) ← <workspace>/.agents/skills ← ~/.agents/skills ← ~/.openclaw/skills ← Skills المجمّعة ← skills.load.extraDirs (الأدنى)
Skills لكل وكيل مقابل Skills المشتركة
في إعدادات الوكلاء المتعددين، يمتلك كل وكيل مساحة عمل خاصة به. وهذا يعني:- توجد Skills الخاصة بكل وكيل في
<workspace>/skillsلذلك الوكيل فقط. - توجد Skills وكيل المشروع في
<workspace>/.agents/skillsوتُطبَّق على مساحة العمل تلك قبل مجلدskills/العادي الخاص بمساحة العمل. - توجد Skills الوكيل الشخصية في
~/.agents/skillsوتُطبَّق عبر مساحات العمل على ذلك الجهاز. - توجد Skills المشتركة في
~/.openclaw/skills(المُدارة/المحلية) وتكون مرئية إلى جميع الوكلاء على الجهاز نفسه. - يمكن أيضًا إضافة مجلدات مشتركة عبر
skills.load.extraDirs(بأدنى أولوية) إذا كنت تريد حزمة Skills مشتركة يستخدمها عدة وكلاء.
قوائم السماح الخاصة بـ Skills لكل وكيل
موقع Skill وإمكانية رؤيته عنصران منفصلان للتحكم.- يحدد الموقع/الأولوية أي نسخة من Skill بالاسم نفسه تفوز.
- وتحدد قوائم السماح الخاصة بالوكيل أي Skills مرئية يمكن للوكيل استخدامها فعليًا.
agents.defaults.skills كأساس مشترك، ثم تجاوز لكل وكيل عبر
agents.list[].skills:
- احذف
agents.defaults.skillsإذا أردت Skills غير مقيّدة افتراضيًا. - احذف
agents.list[].skillsللوراثة منagents.defaults.skills. - عيّن
agents.list[].skills: []لعدم استخدام أي Skills. - تمثل القائمة غير الفارغة في
agents.list[].skillsالمجموعة النهائية لذلك الوكيل؛ ولا تندمج مع القيم الافتراضية.
Plugins + Skills
يمكن أن تشحن Plugins Skills خاصة بها عن طريق إدراج أدلةskills في
openclaw.plugin.json (مسارات نسبةً إلى جذر plugin). يتم تحميل Skills الخاصة بالـ Plugin
عند تمكين plugin. حاليًا، تُدمج هذه الأدلة في نفس المسار منخفض الأولوية الخاص بـ skills.load.extraDirs، لذلك فإن Skillًا مجمّعًا أو مُدارًا أو خاصًا بالوكيل أو بمساحة العمل يحمل الاسم نفسه سيتجاوزها.
يمكنك تقييدها عبر metadata.openclaw.requires.config في إدخال تهيئة الـ plugin.
راجع Plugins للاكتشاف/التهيئة والأدوات لسطح
الأدوات الذي تعلّمه تلك Skills.
ClawHub (التثبيت + المزامنة)
ClawHub هو سجل Skills العام لـ OpenClaw. تصفحه على https://clawhub.ai. استخدم أوامرopenclaw skills
الأصلية لاكتشاف Skills أو تثبيتها أو تحديثها، أو استخدم CLI المنفصل clawhub عندما
تحتاج إلى مسارات عمل النشر/المزامنة.
الدليل الكامل: ClawHub.
المسارات الشائعة:
- تثبيت Skill في مساحة عملك:
openclaw skills install <skill-slug>
- تحديث جميع Skills المثبتة:
openclaw skills update --all
- المزامنة (الفحص + نشر التحديثات):
clawhub sync --all
openclaw skills install الأصلي بالتثبيت في دليل skills/ الخاص بمساحة العمل النشطة. كما يقوم CLI المنفصل clawhub بالتثبيت أيضًا في ./skills تحت
دليل العمل الحالي (أو يعود إلى مساحة عمل OpenClaw المهيأة).
وسيلتقط OpenClaw ذلك باعتباره <workspace>/skills في الجلسة التالية.
ملاحظات الأمان
- تعامل مع Skills التابعة لجهات خارجية باعتبارها تعليمة برمجية غير موثوق بها. اقرأها قبل تمكينها.
- فضّل التشغيل داخل sandbox للمدخلات غير الموثوق بها والأدوات الخطِرة. راجع العزل.
- لا يقبل اكتشاف Skills في مساحة العمل والأدلة الإضافية إلا جذور Skills وملفات
SKILL.mdالتي يبقىrealpathالمحلول الخاص بها داخل الجذر المهيأ. - تقوم عمليات تثبيت تبعيات Skills المدعومة من Gateway (
skills.install، والإعداد الأولي، وواجهة إعدادات Skills) بتشغيل ماسح التعليمة البرمجية الخطِرة المدمج قبل تنفيذ بيانات التثبيت الوصفية. وتحظر النتائجcriticalافتراضيًا ما لم يعيّن المستدعي صراحة تجاوز الخطورة؛ أما النتائج المريبة فتعرض تحذيرات فقط. - يختلف
openclaw skills install <slug>عن ذلك: فهو ينزّل مجلد Skill من ClawHub إلى مساحة العمل ولا يستخدم مسار بيانات التثبيت الوصفية المذكور أعلاه. - يقوم
skills.entries.*.envوskills.entries.*.apiKeyبحقن الأسرار في عملية المضيف لذلك الدور الخاص بالوكيل (وليس في sandbox). أبقِ الأسرار خارج prompts والسجلات. - للحصول على نموذج تهديد أشمل وقوائم تحقق، راجع الأمان.
التنسيق (متوافق مع AgentSkills وPi)
يجب أن يتضمنSKILL.md على الأقل:
- نتبع مواصفة AgentSkills من حيث التخطيط والغرض.
- يدعم المحلل المستخدم بواسطة الوكيل المضمّن مفاتيح frontmatter أحادية السطر فقط.
- يجب أن تكون
metadataكائن JSON أحادي السطر. - استخدم
{baseDir}داخل التعليمات للإشارة إلى مسار مجلد Skill. - مفاتيح frontmatter الاختيارية:
-
homepage— عنوان URL يظهر بوصفه “Website” في واجهة Skills في macOS (ومدعوم أيضًا عبرmetadata.openclaw.homepage). -
user-invocable—true|false(الافتراضي:true). عندما تكونtrue، يُعرَض Skill كأمر شرطة مائلة للمستخدم. -
disable-model-invocation—true|false(الافتراضي:false). عندما تكونtrue، يُستبعد Skill من prompt الخاص بالنموذج (مع بقائه متاحًا عبر استدعاء المستخدم). -
command-dispatch—tool(اختياري). عند تعيينه إلىtool، يتجاوز أمر الشرطة المائلة النموذج ويُرسَل مباشرة إلى أداة. -
command-tool— اسم الأداة المطلوب استدعاؤها عند تعيينcommand-dispatch: tool. -
command-arg-mode—raw(الافتراضي). بالنسبة إلى إرسال الأداة، يمرّر سلسلة الوسائط الخام إلى الأداة (من دون تحليل في core). تُستدعى الأداة بالمعلمات التالية:{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
التقييد (مرشحات وقت التحميل)
يقوم OpenClaw بتصفية Skills وقت التحميل باستخدامmetadata (JSON أحادي السطر):
metadata.openclaw:
always: true— تضمين Skill دائمًا (وتخطي بقية القيود).emoji— رمز تعبيري اختياري تستخدمه واجهة Skills في macOS.homepage— عنوان URL اختياري يُعرض بصفة “Website” في واجهة Skills في macOS.os— قائمة اختيارية بالمنصات (darwinوlinuxوwin32). إذا تم تعيينها، يكون Skill مؤهلًا فقط على أنظمة التشغيل تلك.requires.bins— قائمة؛ يجب أن يوجد كل عنصر منها علىPATH.requires.anyBins— قائمة؛ يجب أن يوجد عنصر واحد منها على الأقل علىPATH.requires.env— قائمة؛ يجب أن يوجد متغير البيئة أو أن يُوفَّر في التهيئة.requires.config— قائمة بمساراتopenclaw.jsonالتي يجب أن تكون truthy.primaryEnv— اسم متغير البيئة المرتبط بـskills.entries.<name>.apiKey.install— مصفوفة اختيارية من مواصفات التثبيت تستخدمها واجهة Skills في macOS (brew/node/go/uv/download).
- يتم التحقق من
requires.binsعلى المضيف عند تحميل Skill. - إذا كان الوكيل يعمل داخل sandbox، فيجب أن يكون الملف التنفيذي موجودًا أيضًا داخل الحاوية.
قم بتثبيته عبر
agents.defaults.sandbox.docker.setupCommand(أو صورة مخصصة). يتم تشغيلsetupCommandمرة واحدة بعد إنشاء الحاوية. تتطلب عمليات تثبيت الحزم أيضًا خروجًا للشبكة، ونظام ملفات جذر قابلًا للكتابة، ومستخدم root داخل sandbox. مثال: يحتاج Skill summarize(skills/summarize/SKILL.md) إلى CLI summarizeداخل حاوية sandbox لكي يعمل هناك.
- إذا أُدرجت عدة أدوات تثبيت، يختار gateway خيارًا مفضلًا واحدًا (brew عند توفره، وإلا node).
- إذا كانت جميع أدوات التثبيت من نوع
download، يعرض OpenClaw كل إدخال لتتمكن من رؤية العناصر المتاحة. - يمكن أن تتضمن مواصفات أداة التثبيت
os: ["darwin"|"linux"|"win32"]لتصفية الخيارات حسب المنصة. - تراعي عمليات تثبيت Node القيمة
skills.install.nodeManagerفيopenclaw.json(الافتراضي: npm؛ والخيارات: npm/pnpm/yarn/bun). يؤثر هذا فقط في تثبيت Skills؛ لكن Runtime الخاص بـ Gateway يجب أن يبقى Node (لا يُنصح باستخدام Bun مع WhatsApp/Telegram). - يعتمد اختيار أداة التثبيت المدعوم من Gateway على التفضيل، وليس على node فقط:
فعندما تمزج مواصفات التثبيت بين الأنواع، يفضّل OpenClaw Homebrew عندما
تكون
skills.install.preferBrewممكّنة ويكونbrewموجودًا، ثمuv، ثم مدير node المهيأ، ثم البدائل الأخرى مثلgoأوdownload. - إذا كانت كل مواصفات التثبيت من نوع
download، فسيعرض OpenClaw جميع خيارات التنزيل بدلًا من طيّها في أداة تثبيت مفضلة واحدة. - عمليات تثبيت Go: إذا كان
goمفقودًا وكانbrewمتاحًا، يقوم gateway بتثبيت Go عبر Homebrew أولًا ويضبطGOBINعلى دليلbinالخاص بـ Homebrew عندما يكون ذلك ممكنًا. - عمليات تثبيت التنزيل:
url(مطلوب)، وarchive(tar.gz|tar.bz2|zip)، وextract(الافتراضي: تلقائي عند اكتشاف الأرشيف)، وstripComponents، وtargetDir(الافتراضي:~/.openclaw/tools/<skillKey>).
metadata.openclaw، يكون Skill مؤهلًا دائمًا (ما لم
يُعطّل في التهيئة أو يُحظر بواسطة skills.allowBundled بالنسبة إلى Skills المجمّعة).
تجاوزات التهيئة (~/.openclaw/openclaw.json)
يمكن تبديل Skills المجمّعة/المُدارة وتزويدها بقيم env:
image_generate مع agents.defaults.imageGenerationModel بدلًا من
Skill مجمّع. أمثلة Skills هنا مخصصة لمسارات عمل مخصصة أو تابعة لجهات خارجية.
لتحليل الصور الأصلي، استخدم أداة image مع agents.defaults.imageModel.
ولتوليد/تحرير الصور الأصلي، استخدم image_generate مع
agents.defaults.imageGenerationModel. إذا اخترت openai/* أو google/*
أو fal/* أو نموذج صور خاصًا بموفر آخر، فأضف أيضًا المصادقة/مفتاح API الخاص
بذلك الموفر.
تطابق مفاتيح التهيئة اسم Skill افتراضيًا. وإذا عرّف Skill
metadata.openclaw.skillKey، فاستخدم ذلك المفتاح تحت skills.entries.
القواعد:
- تؤدي
enabled: falseإلى تعطيل Skill حتى لو كان مجمّعًا/مثبتًا. env: يُحقن فقط إذا لم يكن المتغير مضبوطًا بالفعل في العملية.apiKey: وسيلة ملائمة للـ Skills التي تعلنmetadata.openclaw.primaryEnv. وتدعم سلسلة نصية واضحة أو كائن SecretRef ({ source, provider, id }).config: حاوية اختيارية لحقول مخصصة لكل Skill؛ ويجب أن توجد المفاتيح المخصصة هنا.allowBundled: قائمة سماح اختيارية لـ Skills المجمّعة فقط. إذا تم تعيينها، لا تكون مؤهلة إلا Skills المجمّعة الموجودة في القائمة (ولا تتأثر Skills المُدارة/مساحة العمل).
حقن البيئة (لكل تشغيل وكيل)
عند بدء تشغيل وكيل، يقوم OpenClaw بما يلي:- قراءة بيانات Skill الوصفية.
- تطبيق أي قيم
skills.entries.<key>.envأوskills.entries.<key>.apiKeyعلىprocess.env. - بناء system prompt باستخدام Skills المؤهلة.
- استعادة البيئة الأصلية بعد انتهاء التشغيل.
لقطة الجلسة (الأداء)
يلتقط OpenClaw Snapshot لـ Skills المؤهلة عند بدء الجلسة ويعيد استخدام تلك القائمة في الأدوار اللاحقة داخل الجلسة نفسها. تسري التغييرات على Skills أو التهيئة في الجلسة الجديدة التالية. يمكن أيضًا تحديث Skills في منتصف الجلسة عند تمكين مراقب Skills أو عند ظهور node بعيد جديد مؤهل (انظر أدناه). فكّر في هذا على أنه إعادة تحميل فورية: تُلتقط القائمة المحدّثة في دور الوكيل التالي. إذا تغيّرت قائمة السماح الفعّالة الخاصة بـ Skills لذلك الوكيل في تلك الجلسة، فسيقوم OpenClaw بتحديث Snapshot حتى تبقى Skills المرئية متوافقة مع الوكيل الحالي.عُقد macOS البعيدة (Gateway على Linux)
إذا كان Gateway يعمل على Linux لكن عقدة macOS متصلة ومسموح لها باستخدامsystem.run (ولم تُضبط أمانات موافقات Exec على deny)، فيمكن لـ OpenClaw التعامل مع Skills الخاصة بـ macOS فقط على أنها مؤهلة عندما تكون الملفات التنفيذية المطلوبة موجودة على تلك العقدة. ينبغي للوكيل تنفيذ تلك Skills عبر أداة exec مع host=node.
يعتمد ذلك على أن تُبلغ العقدة عن دعم الأوامر الخاصة بها وعلى فحص bin عبر system.run. وإذا أصبحت عقدة macOS غير متصلة لاحقًا، فستبقى Skills مرئية؛ وقد تفشل عمليات الاستدعاء حتى تعيد العقدة الاتصال.
مراقب Skills (التحديث التلقائي)
افتراضيًا، يراقب OpenClaw مجلدات Skills ويزيد Snapshot الخاص بـ Skills عند تغيّر ملفاتSKILL.md. هيّئ هذا تحت skills.load:
أثر الرموز (قائمة Skills)
عندما تكون Skills مؤهلة، يقوم OpenClaw بحقن قائمة XML مضغوطة بالـ Skills المتاحة داخل system prompt (عبرformatSkillsForPrompt في pi-coding-agent). وتكون التكلفة حتمية:
- العبء الأساسي (فقط عند وجود Skill واحد أو أكثر): 195 حرفًا.
- لكل Skill: 97 حرفًا + طول القيم
<name>و<description>و<location>بعد تهريب XML.
- يوسّع تهريب XML الأحرف
& < > " 'إلى كيانات (&و<وما إلى ذلك)، مما يزيد الطول. - يختلف عدد الرموز باختلاف tokenizer الخاص بالنموذج. كتقدير تقريبي على نمط OpenAI، يساوي الرمز الواحد نحو 4 أحرف، لذا فإن 97 حرفًا ≈ 24 رمزًا لكل Skill إضافة إلى أطوال الحقول الفعلية.
دورة حياة Skills المُدارة
يشحن OpenClaw مجموعة أساسية من Skills على أنها Skills مجمّعة كجزء من التثبيت (حزمة npm أو OpenClaw.app). ويُستخدم~/.openclaw/skills من أجل
التجاوزات المحلية (مثل تثبيت إصدار معيّن أو ترقيع Skill من دون تغيير
النسخة المجمّعة). أما Skills الخاصة بمساحة العمل فهي مملوكة للمستخدم وتتجاوز كليهما عند تعارض الأسماء.
مرجع التهيئة
راجع تهيئة Skills للاطلاع على مخطط التهيئة الكامل.هل تبحث عن المزيد من Skills؟
تصفح https://clawhub.ai.ذو صلة
- إنشاء Skills — بناء Skills مخصصة
- تهيئة Skills — مرجع تهيئة Skills
- أوامر الشرطة المائلة — جميع أوامر الشرطة المائلة المتاحة
- Plugins — نظرة عامة على نظام plugin