Skills
Skills
Skills هي ملفات تعليمات بصيغة Markdown تعلّم الوكيل كيف ومتى يستخدم
الأدوات. تعيش كل مهارة في دليل يحتوي على ملف SKILL.md مع frontmatter بصيغة YAML
ومتن Markdown. يحمّل OpenClaw المهارات المضمّنة بالإضافة إلى أي تجاوزات محلية،
ويفلترها وقت التحميل بناءً على البيئة، والإعدادات، ووجود الملفات الثنائية.
ابنِ مهارة مخصصة واختبرها من الصفر.
راجع مقترحات المهارات التي صاغها الوكيل واعتمدها.
مخطط إعدادات skills.* الكامل وقوائم السماح للوكلاء.
تصفّح مهارات المجتمع وثبّتها.
ترتيب التحميل
يحمّل OpenClaw من هذه المصادر، مع أعلى أسبقية أولًا. عندما يظهر اسم المهارة نفسه في مواضع متعددة، يفوز المصدر الأعلى.
| الأولوية | المصدر | المسار |
|---|---|---|
| 1 — الأعلى | مهارات مساحة العمل | <workspace>/skills |
| 2 | مهارات وكيل المشروع | <workspace>/.agents/skills |
| 3 | مهارات الوكيل الشخصية | ~/.agents/skills |
| 4 | المهارات المُدارة / المحلية | ~/.openclaw/skills |
| 5 | المهارات المضمّنة | مشحونة مع التثبيت |
| 6 — الأدنى | أدلة إضافية | skills.load.extraDirs + مهارات Plugin |
تدعم جذور المهارات التخطيطات المجمّعة. يكتشف OpenClaw مهارة كلما ظهر
SKILL.md في أي مكان تحت جذر مضبوط:
<workspace>/skills/research/SKILL.md ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"مسار المجلد للتنظيم فقط. يأتي اسم المهارة، وأمر الشرطة المائلة، ومفتاح قائمة السماح
كلها من حقل frontmatter باسم name (أو من اسم الدليل عندما يكون name مفقودًا).
مهارات لكل وكيل مقابل مهارات مشتركة
في إعدادات الوكلاء المتعددين، يكون لكل وكيل مساحة عمل خاصة به. استخدم المسار الذي يطابق مستوى الظهور المطلوب لديك:
| النطاق | المسار | مرئي لـ |
|---|---|---|
| لكل وكيل | <workspace>/skills |
ذلك الوكيل فقط |
| وكيل المشروع | <workspace>/.agents/skills |
وكيل مساحة العمل تلك فقط |
| وكيل شخصي | ~/.agents/skills |
جميع الوكلاء على هذا الجهاز |
| مُدار مشترك | ~/.openclaw/skills |
جميع الوكلاء على هذا الجهاز |
| أدلة إضافية | skills.load.extraDirs |
جميع الوكلاء على هذا الجهاز |
قوائم السماح للوكلاء
موقع المهارة (الأسبقية) وظهور المهارة (أي وكيل يمكنه استخدامها) عنصران منفصلان للتحكم. استخدم قوائم السماح لتقييد المهارات التي يراها الوكيل، بغض النظر عن مكان تحميلها منه.
{ agents: { defaults: { skills: ["github", "weather"], // shared baseline }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely { id: "locked-down", skills: [] }, // no skills ], },}Allowlist rules
- احذف
agents.defaults.skillsلترك كل المهارات غير مقيّدة افتراضيًا. - احذف
agents.list[].skillsلوراثةagents.defaults.skills. - اضبط
agents.list[].skills: []لعدم إظهار أي مهارات لذلك الوكيل. - قائمة
agents.list[].skillsغير الفارغة هي المجموعة النهائية — فهي لا تُدمج مع القيم الافتراضية. - تنطبق قائمة السماح الفعالة عبر بناء الموجهات، واكتشاف أوامر الشرطة المائلة، ومزامنة sandbox، ولقطات المهارات.
- هذا ليس حدّ تفويض لقشرة المضيف. إذا كان الوكيل نفسه يستطيع استخدام
exec، فقيّد تلك القشرة بشكل منفصل باستخدام sandboxing، وعزل مستخدم نظام التشغيل، وقوائم منع/سماح exec، وبيانات اعتماد لكل مورد.
Plugins والمهارات
يمكن لـ Plugins شحن مهاراتها الخاصة عبر سرد أدلة skills في
openclaw.plugin.json (مسارات نسبية إلى جذر Plugin). تُحمّل مهارات Plugin
عندما يكون Plugin مفعّلًا — على سبيل المثال، يشحن Plugin المتصفح مهارة
browser-automation للتحكم متعدد الخطوات في المتصفح.
تندمج أدلة مهارات Plugin عند مستوى الأسبقية المنخفض نفسه مثل
skills.load.extraDirs، لذا تتجاوزها أي مهارة مضمّنة أو مُدارة أو خاصة بوكيل أو
بمساحة عمل لها الاسم نفسه. احجبها عبر metadata.openclaw.requires.config في
مدخل إعدادات Plugin.
راجع Plugins والأدوات للاطلاع على نظام Plugin الكامل.
ورشة المهارات
ورشة المهارات هي طابور مقترحات بين الوكيل وملفات المهارات
النشطة لديك. عندما يلاحظ الوكيل عملًا قابلًا لإعادة الاستخدام، يصوغ مقترحًا بدلًا
من الكتابة مباشرة إلى SKILL.md. تراجع أنت وتعتمد قبل أن يتغير أي شيء.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>راجع ورشة المهارات للاطلاع على دورة الحياة الكاملة ومرجع CLI والإعدادات.
التثبيت من ClawHub
ClawHub هو سجل المهارات العام. استخدم أوامر
openclaw skills للتثبيت والتحديث، أو CLI باسم clawhub للنشر والمزامنة.
| الإجراء | الأمر |
|---|---|
| تثبيت مهارة في مساحة العمل | openclaw skills install @owner/<slug> |
| التثبيت من مستودع Git | openclaw skills install git:owner/repo@ref |
| تثبيت دليل مهارة محلي | openclaw skills install ./path/to/skill --as my-tool |
| التثبيت لكل الوكلاء المحليين | openclaw skills install @owner/<slug> --global |
| تحديث كل مهارات مساحة العمل | openclaw skills update --all |
| تحديث مهارة مُدارة مشتركة | openclaw skills update @owner/<slug> --global |
| تحديث كل المهارات المُدارة المشتركة | openclaw skills update --all --global |
| التحقق من غلاف ثقة مهارة | openclaw skills verify @owner/<slug> |
| طباعة بطاقة Skill المولّدة | openclaw skills verify @owner/<slug> --card |
| النشر / المزامنة عبر ClawHub CLI | clawhub sync --all |
Install details
يثبّت openclaw skills install افتراضيًا في دليل skills/ لمساحة العمل
النشطة. أضف --global للتثبيت في دليل ~/.openclaw/skills المشترك، المرئي
لكل الوكلاء المحليين ما لم تضيّقه قوائم السماح للوكلاء.
تتوقع تثبيتات Git والتثبيتات المحلية وجود SKILL.md في جذر المصدر. يأتي slug
من frontmatter SKILL.md باسم name عندما يكون صالحًا، ثم يعود إلى اسم
الدليل أو المستودع. استخدم --as <slug> للتجاوز.
يتتبع openclaw skills update تثبيتات ClawHub فقط — أعد تثبيت مصادر Git أو
المصادر المحلية لتحديثها.
Verification and security scanning
يطلب openclaw skills verify @owner/<slug> من ClawHub غلاف ثقة
clawhub.skill.verify.v1 الخاص بالمهارة. تتحقق مهارات ClawHub المثبتة مقابل
الإصدار والسجل المسجلين في .clawhub/origin.json. تبقى slugs المجردة مقبولة
للمهارات المثبتة الحالية أو غير الملتبسة، لكن المراجع المؤهلة بالمالك تتجنب
التباس الناشر.
تعرض صفحات مهارات ClawHub أحدث حالة فحص أمني قبل التثبيت، مع صفحات تفصيلية
لـ VirusTotal وClawScan والتحليل الثابت. يخرج الأمر برمز غير صفري عندما يضع
ClawHub علامة فشل على التحقق. يتعافى الناشرون من الإيجابيات الكاذبة عبر لوحة
ClawHub أو clawhub skill rescan @owner/<slug>.
Private archive installs
يمكن لعملاء Gateway الذين يحتاجون تسليمًا خارج ClawHub تجهيز أرشيف مهارة zip
باستخدام skills.upload.begin وskills.upload.chunk وskills.upload.commit،
ثم التثبيت باستخدام skills.install({ source: "upload", ... }). هذا المسار
معطّل افتراضيًا ويتطلب skills.install.allowUploadedArchives: true في
openclaw.json. لا تحتاج تثبيتات ClawHub العادية إلى هذا الإعداد أبدًا.
الأمان
Path containment
لا يقبل اكتشاف مهارات مساحة العمل، ووكيل المشروع، والدليل الإضافي إلا جذور
المهارات التي يبقى realpath المحلول الخاص بها داخل الجذر المضبوط، ما لم يكن
skills.load.allowSymlinkTargets يثق صراحة بجذر هدف. تكتب ورشة المهارات عبر
تلك الأهداف الموثوقة فقط عندما يكون
skills.workshop.allowSymlinkTargetWrites مفعّلًا.
قد يحتوي ~/.openclaw/skills المُدار و~/.agents/skills الشخصي على مجلدات
مهارات مرتبطة رمزيًا، لكن يجب أن يبقى realpath لكل SKILL.md داخل دليل
المهارة المحلول الخاص به.
Operator install policy
اضبط security.installPolicy لتشغيل أمر سياسة محلي موثوق قبل متابعة تثبيتات
المهارات. تتلقى السياسة metadata ومسار المصدر المجهّز، وتنطبق على مسارات
ClawHub، والمرفوع، وGit، والمحلي، والتحديث، ومثبت الاعتماديات، وتفشل بإغلاق
عندما لا يستطيع الأمر إرجاع قرار صالح.
Secret injection scope
يحقن skills.entries.*.env وskills.entries.*.apiKey الأسرار في عملية
المضيف لدورة ذلك الوكيل فقط — وليس في sandbox. أبقِ الأسرار خارج الموجهات
والسجلات.
للاطلاع على نموذج التهديد الأوسع وقوائم التحقق الأمنية، راجع الأمان.
تنسيق SKILL.md
تحتاج كل مهارة كحد أدنى إلى name وdescription في frontmatter:
---name: image-labdescription: Generate or edit images via a provider-backed image workflow--- When the user asks to generate an image, use the `image_generate` tool...مفاتيح frontmatter اختيارية
homepagestringعنوان URL المعروض باسم "موقع الويب" في واجهة Skills على macOS. مدعوم أيضًا عبر
metadata.openclaw.homepage.
user-invocablebooleandefault: trueعندما تكون القيمة true، تُعرض المهارة كأمر شرطة مائلة يمكن للمستخدم استدعاؤه.
disable-model-invocationbooleandefault: falseعندما تكون القيمة true، يبقي OpenClaw تعليمات المهارة خارج الموجه العادي
للوكيل. تظل المهارة متاحة كأمر شرطة مائلة عندما تكون user-invocable أيضًا
true.
command-dispatch"tool"عند ضبطها على tool، يتجاوز أمر الشرطة المائلة النموذج ويُرسَل مباشرة إلى أداة
مسجلة.
command-toolstringاسم الأداة المراد استدعاؤها عند ضبط command-dispatch: tool.
command-arg-mode"raw"default: rawلإرسال الأدوات، يمرّر سلسلة الوسيطات الخام إلى الأداة من دون
تحليل أساسي. تتلقى الأداة
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
الضبط
يرشّح OpenClaw المهارات عند وقت التحميل باستخدام metadata.openclaw (JSON بسطر واحد
في frontmatter). تكون المهارة التي لا تحتوي على كتلة metadata.openclaw مؤهلة دائمًا
ما لم يتم تعطيلها صراحة.
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanعندما تكون true، أدرج المهارة دائمًا وتجاوز كل البوابات الأخرى.
emojistringرمز تعبيري اختياري يُعرض في واجهة Skills على macOS.
homepagestringعنوان URL اختياري يُعرض باسم "موقع الويب" في واجهة Skills على macOS.
os"darwin" | "linux" | "win32"مرشح النظام الأساسي. عند ضبطه، تكون المهارة مؤهلة فقط على أنظمة التشغيل المدرجة.
requires.binsstring[]يجب أن يوجد كل ملف تنفيذي على PATH.
requires.anyBinsstring[]يجب أن يوجد ملف تنفيذي واحد على الأقل على PATH.
requires.envstring[]يجب أن يوجد كل متغير بيئة في العملية أو أن يُوفَّر عبر الإعدادات.
requires.configstring[]يجب أن يكون كل مسار openclaw.json ذا قيمة صادقة.
primaryEnvstringاسم متغير البيئة المرتبط بـ skills.entries.<name>.apiKey.
installobject[]مواصفات مثبّت اختيارية تستخدمها واجهة Skills على macOS (brew / node / go / uv / download).
مواصفات المثبّت
تخبر مواصفات المثبّت واجهة Skills على macOS بكيفية تثبيت اعتماد:
---name: geminidescription: Use Gemini CLI for coding assistance and Google search lookups.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Install Gemini CLI (brew)", }, ], }, }---قواعد اختيار المثبّت
- عند إدراج عدة مثبّتات، يختار Gateway خيارًا مفضّلًا واحدًا (brew عند توفره، وإلا node).
- إذا كانت كل المثبّتات
download، يعرض OpenClaw كل إدخال حتى تتمكن من رؤية كل العناصر المتاحة. - يمكن أن تتضمن المواصفات
os: ["darwin"|"linux"|"win32"]للتصفية حسب النظام الأساسي. - تحترم تثبيتات Node القيمة
skills.install.nodeManagerفيopenclaw.json(الافتراضي: npm؛ الخيارات: npm / pnpm / yarn / bun). يؤثر هذا فقط على تثبيتات المهارات؛ يجب أن يظل وقت تشغيل Gateway هو Node. - تفضيل مثبّت Gateway: Homebrew ← uv ← مدير node المضبوط ← go ← download.
تفاصيل لكل مثبّت
- Homebrew: لا يثبّت OpenClaw Homebrew تلقائيًا ولا يترجم صيغ brew
إلى أوامر حزم النظام. في حاويات Linux من دون
brew، تُخفى المثبّتات التي تعتمد على brew فقط؛ استخدم صورة مخصصة أو ثبّت الاعتماد يدويًا. - Go: يتطلب OpenClaw الإصدار Go 1.21 أو أحدث لتثبيتات المهارات التلقائية و
يحافظ على إعدادات
GOBINوGOPATHوGOTOOLCHAINالحالية. إذا كانت سلسلة الأدوات المضبوطة لا تستطيع تلبية إصدار Go المطلوب لوحدة ما، يجمع الإعداد الأولي المهارة مع متطلبات Go اليدوية بعد محاولة التثبيت. إذا كانgoمفقودًا وكان Homebrew متاحًا، يثبّت OpenClaw Go عبر Homebrew أولًا ويضبطGOBINإلىbinالخاص بـ Homebrew. على Linux، يمكن لـ OpenClaw بدلًا من ذلك استخدامapt-getبصفة root أو عبرsudoمن دون كلمة مرور عندما يلبّي مرشحgolang-goالمحدّث الحد الأدنى للإصدار. - Download:
url(مطلوب)،archive(tar.gz|tar.bz2|zip)،extract(الافتراضي: تلقائي عند اكتشاف أرشيف)،stripComponents،targetDir(الافتراضي:~/.openclaw/tools/<skillKey>).
ملاحظات العزل
يُفحص requires.bins على المضيف عند وقت تحميل المهارة. إذا كان الوكيل
يعمل داخل صندوق عزل، فيجب أن يوجد الملف التنفيذي أيضًا داخل الحاوية.
ثبّته عبر agents.defaults.sandbox.docker.setupCommand أو صورة
مخصصة. يعمل setupCommand مرة واحدة بعد إنشاء الحاوية ويتطلب
خروجًا شبكيًا، ونظام ملفات جذريًا قابلًا للكتابة، ومستخدم root في صندوق العزل.
تجاوزات الإعدادات
بدّل واضبط المهارات المضمّنة أو المُدارة ضمن skills.entries في
~/.openclaw/openclaw.json:
{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}enabledbooleanيعطّل false المهارة حتى عند تضمينها أو تثبيتها. مهارة coding-agent
المضمّنة اختيارية الاشتراك — اضبط skills.entries.coding-agent.enabled: true
وتأكد من تثبيت ومصادقة أحد claude أو codex أو opencode أو CLI آخر مدعوم.
apiKeystring | { source, provider, id }حقل ملائم للمهارات التي تعلن metadata.openclaw.primaryEnv.
يدعم سلسلة نصية صريحة أو كائن SecretRef.
env"Record<string,configobjectحزمة اختيارية لحقول إعداد مخصصة لكل مهارة.
allowBundledstring[]قائمة سماح اختيارية للمهارات المضمّنة فقط. عند ضبطها، تكون المهارات المضمّنة الموجودة في القائمة فقط مؤهلة. لا تتأثر المهارات المُدارة ومهارات مساحة العمل.
حقن البيئة
عند بدء تشغيل وكيل، يقوم OpenClaw بما يلي:
قراءة بيانات المهارة الوصفية
يحل OpenClaw قائمة المهارات الفعالة للوكيل، مع تطبيق قواعد الضبط وقوائم السماح وتجاوزات الإعدادات.
حقن البيئة ومفاتيح API
تُطبّق skills.entries.<key>.env وskills.entries.<key>.apiKey على
process.env طوال مدة التشغيل.
بناء موجه النظام
تُجمع المهارات المؤهلة في كتلة XML مضغوطة وتُحقن في موجه النظام.
استعادة البيئة
بعد انتهاء التشغيل، تُستعاد البيئة الأصلية.
بالنسبة للواجهة الخلفية المضمّنة claude-cli، يجسّد OpenClaw أيضًا لقطة
المهارات المؤهلة نفسها على شكل Plugin مؤقت لـ Claude Code ويمرّرها عبر
--plugin-dir. تستخدم واجهات CLI الخلفية الأخرى كتالوج الموجهات فقط.
اللقطات والتحديث
يلتقط OpenClaw المهارات المؤهلة عند بدء الجلسة ويعيد استخدام تلك القائمة لكل الأدوار اللاحقة في الجلسة. تسري التغييرات على المهارات أو الإعدادات في الجلسة الجديدة التالية.
تُحدّث Skills في منتصف الجلسة في حالتين:
- يكتشف مراقب Skills تغييرًا في
SKILL.md. - تتصل عقدة بعيدة مؤهلة جديدة.
تُستخدم القائمة المحدّثة في دور الوكيل التالي. إذا تغيّرت قائمة السماح الفعالة للوكيل، يحدّث OpenClaw اللقطة لإبقاء المهارات المرئية متوافقة.
مراقب Skills
افتراضيًا، يراقب OpenClaw مجلدات المهارات ويرفع إصدار اللقطة عندما
تتغير ملفات SKILL.md. اضبط ذلك ضمن skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, },}استخدم allowSymlinkTargets للتخطيطات الرمزية المقصودة حيث يشير رابط رمزي
لجذر مهارة إلى خارج الجذر المضبوط، مثل
<workspace>/skills/manager -> ~/Projects/manager/skills.
فعّل skills.workshop.allowSymlinkTargetWrites فقط عندما يجب على Skill Workshop
أن يطبق المقترحات أيضًا عبر تلك المسارات الرمزية الموثوقة.
عقد macOS البعيدة (Linux gateway)
إذا كان Gateway يعمل على Linux ولكن عقدة macOS متصلة مع السماح بـ
system.run، فيمكن لـ OpenClaw اعتبار المهارات الخاصة بـ macOS فقط مؤهلة عندما
تكون الملفات التنفيذية المطلوبة موجودة على تلك العقدة. يجب أن يشغّل الوكيل تلك
المهارات عبر أداة exec مع host=node.
لا تجعل العقد غير المتصلة المهارات البعيدة فقط مرئية. إذا توقفت عقدة عن الرد على فحوصات الملفات التنفيذية، يمسح OpenClaw مطابقات الملفات التنفيذية المخزنة مؤقتًا لها.
أثر الرموز
عندما تكون المهارات مؤهلة، يحقن OpenClaw كتلة XML مضغوطة في موجه النظام. التكلفة حتمية:
total = 195 + Σ (97 + len(name) + len(description) + len(filepath))- الكلفة الأساسية (فقط عند وجود ≥ 1 مهارة): نحو 195 حرفًا
- لكل مهارة: نحو 97 حرفًا + أطوال حقول
nameوdescriptionوlocation - يوسّع تهريب XML المحارف
& < > " 'إلى كيانات، مما يضيف بضعة محارف لكل ظهور - عند نحو 4 محارف/رمز، فإن 97 حرفًا ≈ 24 رمزًا لكل مهارة قبل أطوال الحقول
اجعل الأوصاف قصيرة ووصفية لتقليل كلفة الموجه.
ذات صلة
دليل خطوة بخطوة لتأليف مهارة مخصصة.
قائمة انتظار مقترحات للمهارات التي يصوغها الوكيل.
مخطط إعدادات skills.* الكامل وقوائم سماح الوكلاء.
كيف تُسجّل أوامر الشرطة المائلة للمهارات وتُوجّه.
تصفح المهارات وانشرها في السجل العام.
يمكن لـ Plugins شحن مهارات إلى جانب الأدوات التي توثقها.