المهارات (OpenClaw)
يستخدم OpenClaw مجلدات Skills المتوافقة مع AgentSkills لتعليم الوكيل كيفية استخدام الأدوات. كل Skill هي دليل يحتوي علىSKILL.md مع واجهة أمامية YAML وتعليمات. يقوم OpenClaw بتحميل Skills المضمّنة إضافةً إلى تجاوزات محلية اختيارية، ويقوم بتصفيتها وقت التحميل بناءً على البيئة والتهيئة ووجود الملفات التنفيذية.
المواقع والأولوية
يتم تحميل Skills من ثلاثة أماكن:- Skills المضمّنة: المشحونة مع التثبيت (حزمة npm أو OpenClaw.app)
- Skills المُدارة/المحلية:
~/.openclaw/skills - Skills مساحة العمل:
<workspace>/skills
<workspace>/skills (الأعلى) → ~/.openclaw/skills → Skills المضمّنة (الأدنى)
بالإضافة إلى ذلك، يمكنك تهيئة مجلدات Skills إضافية (بأدنى أولوية) عبر
skills.load.extraDirs في ~/.openclaw/openclaw.json.
Skills لكل وكيل مقابل Skills مشتركة
في إعدادات متعددة الوكلاء، يمتلك كل وكيل مساحة عمل خاصة به. هذا يعني:- Skills لكل وكيل تعيش في
<workspace>/skillsلذلك الوكيل فقط. - Skills المشتركة تعيش في
~/.openclaw/skills(مُدارة/محلية) وتكون مرئية لجميع الوكلاء على نفس الجهاز. - يمكن أيضًا إضافة مجلدات مشتركة عبر
skills.load.extraDirs(أدنى أولوية) إذا رغبت في حزمة Skills مشتركة تُستخدم من قِبل عدة وكلاء.
الإضافات + Skills
يمكن للإضافات شحن Skills خاصة بها عبر إدراج دلائلskills في
openclaw.plugin.json (مسارات نسبية إلى جذر الإضافة). يتم تحميل Skills الإضافة
عند تمكين الإضافة وتشارك في قواعد أولوية Skills المعتادة.
يمكنك تقييدها عبر metadata.openclaw.requires.config على مُدخل تهيئة الإضافة. انظر Plugins للاكتشاف/التهيئة وTools لواجهة
الأدوات التي تُعلّمها تلك Skills.
ClawHub (التثبيت + المزامنة)
ClawHub هو سجل Skills العام لـ OpenClaw. تصفّح على https://clawhub.com. استخدمه لاكتشاف Skills وتثبيتها وتحديثها والنسخ الاحتياطي لها. الدليل الكامل: ClawHub. التدفقات المشتركة:- تثبيت Skill في مساحة العمل:
clawhub install <skill-slug>
- تحديث جميع Skills المثبّتة:
clawhub update --all
- المزامنة (فحص + نشر التحديثات):
clawhub sync --all
clawhub بالتثبيت في ./skills ضمن دليل العمل الحالي
(أو يعود إلى مساحة عمل OpenClaw المُهيّأة). يلتقط OpenClaw ذلك على أنه
<workspace>/skills في الجلسة التالية.
ملاحظات أمنية
- اعتبر Skills التابعة لجهات خارجية شيفرة غير موثوقة. اقرأها قبل التمكين.
- فضّل التشغيل داخل sandbox للمدخلات غير الموثوقة والأدوات عالية المخاطر. انظر Sandboxing.
- يقوم
skills.entries.*.envوskills.entries.*.apiKeyبحقن الأسرار في عملية المضيف لذلك الدور من الوكيل (وليس داخل sandbox). أبقِ الأسرار خارج المطالبات والسجلات. - لنموذج تهديد أوسع وقوائم تحقق، انظر Security.
الصيغة (AgentSkills + متوافقة مع Pi)
يجب أن يتضمنSKILL.md على الأقل:
- نتبع مواصفة AgentSkills من حيث التخطيط والغاية.
- المحلّل المستخدم من قِبل الوكيل المضمّن يدعم مفاتيح واجهة أمامية بسطر واحد فقط.
- يجب أن يكون
metadataكائن JSON بسطر واحد. - استخدم
{baseDir}في التعليمات للإشارة إلى مسار مجلد Skill. - مفاتيح واجهة أمامية اختيارية:
-
homepage— عنوان URL يُعرض كـ «Website» في واجهة Skills على macOS (مدعوم أيضًا عبرmetadata.openclaw.homepage). -
user-invocable—true|false(الافتراضي:true). عندtrue، تُعرَض Skill كأمر مائل للمستخدم. -
disable-model-invocation—true|false(الافتراضي:false). عندtrue، تُستبعد Skill من مطالبة النموذج (وتظل متاحة عبر استدعاء المستخدم). -
command-dispatch—tool(اختياري). عند التعيين إلىtool، يتجاوز الأمر المائل النموذج ويُرسل مباشرةً إلى أداة. -
command-tool— اسم الأداة التي سيتم استدعاؤها عند تعيينcommand-dispatch: tool. -
command-arg-mode—raw(الافتراضي). لإرسال الأداة، يمرّر سلسلة الوسائط الخام إلى الأداة (دون تحليل أساسي). تُستدعى الأداة مع المعاملات:{ 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يجب أن تكون صحيحة.primaryEnv— اسم متغير البيئة المرتبط بـskills.entries.<name>.apiKey.install— مصفوفة اختيارية من مواصفات المُثبّت المستخدمة بواسطة واجهة Skills على macOS (brew/node/go/uv/download).
- يتم التحقق من
requires.binsعلى المضيف وقت تحميل Skill. - إذا كان الوكيل يعمل داخل sandbox، فيجب أن يكون الملف التنفيذي موجودًا أيضًا داخل الحاوية.
قم بتثبيته عبر
agents.defaults.sandbox.docker.setupCommand(أو صورة مخصّصة). يتم تشغيلsetupCommandمرة واحدة بعد إنشاء الحاوية. تتطلب عمليات تثبيت الحِزم أيضًا خروج شبكة، ونظام ملفات جذر قابل للكتابة، ومستخدم جذر داخل sandbox. مثال: Skillsummarize(skills/summarize/SKILL.md) تحتاج إلى CLI الخاص بـsummarizeداخل حاوية sandbox لتعمل هناك.
- إذا سُردت عدة مُثبّتات، تختار البوابة خيارًا واحدًا مفضّلًا (brew عند توفره، وإلا node).
- إذا كانت جميع المُثبّتات
download، يسرد OpenClaw كل إدخال لتتمكّن من رؤية العناصر المتاحة. - يمكن أن تتضمن مواصفات المُثبّت
os: ["darwin"|"linux"|"win32"]لتصفية الخيارات حسب المنصة. - تحترم عمليات تثبيت Node قيمة
skills.install.nodeManagerفيopenclaw.json(الافتراضي: npm؛ الخيارات: npm/pnpm/yarn/bun). يؤثر هذا على تثبيت Skills فقط؛ يجب أن يبقى تشغيل Gateway هو Node (لا يُنصح بـ Bun لـ WhatsApp/Telegram). - تثبيت Go: إذا كان
goمفقودًا وكانbrewمتاحًا، تقوم البوابة بتثبيت 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 المضمّنة/المُدارة وتزويدها بقيم بيئية:
metadata.openclaw.skillKey، فاستخدم ذلك المفتاح ضمن skills.entries.
القواعد:
enabled: falseيعطّل Skill حتى لو كانت مضمّنة/مثبّتة.env: تُحقن فقط إذا لم يكن المتغير مضبوطًا مسبقًا في العملية.apiKey: تسهيل للـ Skills التي تعلنmetadata.openclaw.primaryEnv.config: حاوية اختيارية لحقول مخصّصة لكل Skill؛ يجب أن تعيش المفاتيح المخصّصة هنا.allowBundled: قائمة سماح اختيارية لـ Skills المضمّنة فقط. إذا عُيّنت، تكون Skills المضمّنة المدرجة فقط مؤهلة (ولا تتأثر Skills المُدارة/مساحة العمل).
حقن البيئة (لكل تشغيل وكيل)
عند بدء تشغيل وكيل، يقوم OpenClaw بما يلي:- قراءة بيانات Skills الوصفية.
- تطبيق أي
skills.entries.<key>.envأوskills.entries.<key>.apiKeyعلىprocess.env. - بناء مطالبة النظام مع Skills المؤهلة.
- استعادة البيئة الأصلية بعد انتهاء التشغيل.
لقطة الجلسة (الأداء)
يلتقط OpenClaw لقطة لِـ Skills المؤهلة عند بدء الجلسة ويعيد استخدام تلك القائمة للأدوار اللاحقة ضمن الجلسة نفسها. تسري التغييرات على Skills أو التهيئة مع الجلسة الجديدة التالية. يمكن أيضًا تحديث Skills في منتصف الجلسة عند تمكين مراقب Skills أو عند ظهور عُقدة بعيدة مؤهلة جديدة (انظر أدناه). فكّر في ذلك كـ إعادة تحميل ساخنة: تُلتقط القائمة المحدّثة في دور الوكيل التالي.عُقد macOS بعيدة (Gateway على Linux)
إذا كانت Gateway تعمل على Linux لكن عُقدة macOS متصلة مع السماح بـsystem.run
(عدم ضبط أمان موافقات Exec على deny)، يمكن لـ OpenClaw
اعتبار Skills الخاصة بـ macOS مؤهلة عندما تكون الملفات التنفيذية المطلوبة موجودة على تلك العُقدة. ينبغي على الوكيل تنفيذ تلك Skills عبر أداة nodes (عادةً nodes.run).
يعتمد ذلك على قيام العُقدة بالإبلاغ عن دعم الأوامر وعلى فحص الملفات التنفيذية عبر system.run. إذا أصبحت عُقدة macOS غير متصلة لاحقًا، تبقى Skills مرئية؛ وقد تفشل الاستدعاءات حتى تعاود العُقدة الاتصال.
مراقب Skills (تحديث تلقائي)
افتراضيًا، يراقب OpenClaw مجلدات Skills ويُحدّث لقطة Skills عندما تتغير ملفاتSKILL.md. قم بتهيئة ذلك ضمن skills.load:
تأثير الرموز (قائمة Skills)
عندما تكون Skills مؤهلة، يحقن OpenClaw قائمة XML مضغوطة بالـ Skills المتاحة في مطالبة النظام (عبرformatSkillsForPrompt في pi-coding-agent). التكلفة حتمية:
- العبء الأساسي (فقط عند وجود ≥1 Skill): 195 حرفًا.
- لكل Skill: 97 حرفًا + طول القيم المُهربة بصيغة XML لكل من
<name>و<description>و<location>.
- يؤدي تهريب XML إلى توسيع
& < > " 'إلى كيانات (&،<، إلخ)، مما يزيد الطول. - تختلف أعداد الرموز حسب مُجزّئ النموذج. تقدير تقريبي بأسلوب OpenAI هو ~4 أحرف/رمز، لذا 97 حرفًا ≈ 24 رمزًا لكل Skill بالإضافة إلى أطوال الحقول الفعلية.
دورة حياة Skills المُدارة
يشحن OpenClaw مجموعة أساسية من Skills على أنها Skills مضمّنة كجزء من التثبيت (حزمة npm أو OpenClaw.app). يوجد~/.openclaw/skills لتجاوزات محلية
(على سبيل المثال، تثبيت/ترقيع Skill دون تغيير النسخة المضمّنة). Skills مساحة العمل مملوكة للمستخدم وتتجاوز كليهما عند تعارض الأسماء.