المهارات

المهارات

يستخدم OpenClaw مجلدات مهارات متوافقة مع AgentSkills لتعليم الوكيل كيفية استخدام الأدوات. كل مهارة هي دليل يحتوي على ملف SKILL.md مع بيانات وصفية YAML وتعليمات. يقوم OpenClaw بتحميل المهارات المدمجة بالإضافة إلى التجاوزات المحلية الاختيارية، ويفلترها في وقت التحميل بناءً على البيئة، التكوين، ووجود الأوامر الثنائية.

المواقع والأولوية

يتم تحميل المهارات من ثلاثة أماكن:

  1. المهارات المدمجة: مشحونة مع التثبيت (حزمة npm أو OpenClaw.app)
  2. المهارات المدارة/المحلية: ~/.openclaw/skills
  3. مهارات مساحة العمل: <workspace>/skills

إذا تعارض اسم مهارة، تكون الأولوية: <workspace>/skills (الأعلى) → ~/.openclaw/skills → المهارات المدمجة (الأدنى) بالإضافة إلى ذلك، يمكنك تكوين مجلدات مهارات إضافية (أدنى أولوية) عبر skills.load.extraDirs في ~/.openclaw/openclaw.json.

المهارات لكل وكيل مقابل المهارات المشتركة

في إعدادات الوكيل المتعدد، لكل وكيل مساحة عمله الخاصة. هذا يعني:

  • المهارات لكل وكيل توجد في <workspace>/skills لذلك الوكيل فقط.
  • المهارات المشتركة توجد في ~/.openclaw/skills (مدارة/محلية) وهي مرئية لجميع الوكلاء على نفس الجهاز.
  • يمكن أيضًا إضافة مجلدات مشتركة عبر skills.load.extraDirs (أدنى أولوية) إذا كنت تريد حزمة مهارات مشتركة يستخدمها عدة وكلاء.

إذا كان نفس اسم المهارة موجودًا في أكثر من مكان، تنطبق الأولوية المعتادة: مساحة العمل تفوز، ثم المدارة/المحلية، ثم المدمجة.

الإضافات + المهارات

يمكن للإضافات أن تشحن مهاراتها الخاصة من خلال سرد أدلة skills في openclaw.plugin.json (مسارات نسبية لجذر الإضافة). يتم تحميل مهارات الإضافة عندما تكون الإضافة مفعلة وتشارك في قواعد أولوية المهارات العادية. يمكنك بوابتها عبر metadata.openclaw.requires.config على إدخال تكوين الإضافة. راجع الإضافات للاكتشاف/التكوين و الأدوات لسطح الأداة الذي تعلمه تلك المهارات.

ClawHub (التثبيت + المزامنة)

ClawHub هو سجل المهارات العام لـ OpenClaw. تصفحه على https://clawhub.com. استخدمه لاكتشاف وتثبيت وتحديث ونسخ احتياطي للمهارات. الدليل الكامل: ClawHub. التدفقات الشائعة:

  • تثبيت مهارة في مساحة عملك:
    • clawhub install <skill-slug>
  • تحديث جميع المهارات المثبتة:
    • clawhub update --all
  • المزامنة (مسح + نشر التحديثات):
    • clawhub sync --all

بشكل افتراضي، يقوم clawhub بالتثبيت في ./skills تحت دليل العمل الحالي (أو يتراجع إلى مساحة عمل OpenClaw المكونة). يلتقط OpenClaw ذلك كـ <workspace>/skills في الجلسة التالية.

ملاحظات أمنية

  • عامل مهارات الطرف الثالث على أنها كود غير موثوق. اقرأها قبل التمكين.
  • فضل عمليات التشغيل المعزولة للمدخلات غير الموثوقة والأدوات الخطرة. راجع العزل.
  • اكتشاف مهارات مساحة العمل والمجلدات الإضافية يقبل فقط جذور المهارات وملفات SKILL.md التي يظل مسارها الحقيقي المحلول داخل الجذر المكون.
  • تقوم skills.entries.*.env و skills.entries.*.apiKey بحقن الأسرار في عملية المضيف لدورة ذلك الوكيل (وليس في العازل). احتفظ بالأسرار خارج المطالبات والسجلات.
  • للحصول على نموذج تهديد أوسع وقوائم مراجعة، راجع الأمان.

التنسيق (متوافق مع AgentSkills + Pi)

يجب أن يتضمن SKILL.md على الأقل:

---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---

ملاحظات:

  • نتبع مواصفات AgentSkills للتخطيط/النية.
  • المحلل المستخدم من قبل الوكيل المدمج يدعم مفاتيح بيانات وصفية بسطر واحد فقط.
  • يجب أن يكون metadata كائن JSON بسطر واحد.
  • استخدم {baseDir} في التعليمات للإشارة إلى مسار مجلد المهارة.
  • مفاتيح بيانات وصفية اختيارية:
    • homepage — عنوان URL يعرض كـ "الموقع الإلكتروني" في واجهة مستخدم مهارات macOS (مدعوم أيضًا عبر metadata.openclaw.homepage).
    • user-invocabletrue|false (الافتراضي: true). عندما تكون true، يتم عرض المهارة كأمر شرطة مائلة للمستخدم.
    • disable-model-invocationtrue|false (الافتراضي: false). عندما تكون true، يتم استبعاد المهارة من مطالبة النموذج (لا تزال متاحة عبر استدعاء المستخدم).
    • command-dispatchtool (اختياري). عند ضبطها على tool، يتجاوز أمر الشرطة المائلة النموذج ويوجه مباشرة إلى أداة.
    • command-tool — اسم الأداة لاستدعائها عند ضبط command-dispatch: tool.
    • command-arg-moderaw (الافتراضي). للتوجيه إلى الأداة، يمرر سلسلة الوسائط الأولية إلى الأداة (بدون تحليل أساسي). يتم استدعاء الأداة بالمعلمات: { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.

البوابة (مرشحات وقت التحميل)

يقوم OpenClaw بتصفية المهارات في وقت التحميل باستخدام metadata (JSON بسطر واحد):

---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
metadata:
  {
    "openclaw":
      {
        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
        "primaryEnv": "GEMINI_API_KEY",
      },
  }
---

الحقول تحت metadata.openclaw:

  • always: true — تضمين المهارة دائمًا (تخطي البوابات الأخرى).
  • emoji — رمز تعبيري اختياري تستخدمه واجهة مستخدم مهارات macOS.
  • homepage — عنوان URL اختياري يعرض كـ "الموقع الإلكتروني" في واجهة مستخدم مهارات macOS.
  • os — قائمة اختيارية للمنصات (darwin, linux, win32). إذا تم تعيينها، تكون المهارة مؤهلة فقط على أنظمة التشغيل تلك.
  • requires.bins — قائمة؛ يجب أن يكون كل منها موجودًا في PATH.
  • requires.anyBins — قائمة؛ يجب أن يكون واحد على الأقل موجودًا في PATH.
  • requires.env — قائمة؛ يجب أن يكون متغير البيئة موجودًا أو مقدمًا في التكوين.
  • requires.config — قائمة مسارات openclaw.json التي يجب أن تكون صحيحة.
  • primaryEnv — اسم متغير البيئة المرتبط بـ skills.entries.<name>.apiKey.
  • install — مصفوفة اختيارية من مواصفات المثبت التي تستخدمها واجهة مستخدم مهارات macOS (brew/node/go/uv/download).

ملاحظة على العزل:

  • يتم التحقق من requires.bins على المضيف في وقت تحميل المهارة.
  • إذا كان الوكيل معزولًا، يجب أن يكون الأمر الثنائي موجودًا أيضًا داخل الحاوية. قم بتثبيته عبر agents.defaults.sandbox.docker.setupCommand (أو صورة مخصصة). يتم تشغيل setupCommand مرة واحدة بعد إنشاء الحاوية. تتطلب تثبيتات الحزم أيضًا خروجًا للشبكة، ونظام ملفات جذر قابل للكتابة، ومستخدم جذر في العازل. مثال: تحتاج مهارة summarize (skills/summarize/SKILL.md) إلى واجهة سطر أوامر summarize في حاوية العازل لتشغيلها هناك.

مثال على المثبت:

---
name: gemini
description: 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)",
            },
          ],
      },
  }
---

ملاحظات:

  • إذا تم سرد عدة مثبتات، تختار البوابة خيارًا واحدًا مفضلًا (brew عند التوفر، وإلا node).
  • إذا كانت جميع المثبتات هي download، يسرد OpenClaw كل إدخال حتى تتمكن من رؤية القطع الأثرية المتاحة.
  • يمكن أن تتضمن مواصفات المثبت os: ["darwin"|"linux"|"win32"] لتصفية الخيارات حسب المنصة.
  • تثبيتات Node تحترم skills.install.nodeManager في openclaw.json (الافتراضي: npm؛ الخيارات: npm/pnpm/yarn/bun). هذا يؤثر فقط على تثبيتات المهارات؛ يجب أن يكون وقت تشغيل البوابة لا يزال Node (لا يوصى بـ Bun لـ WhatsApp/Telegram).
  • تثبيتات Go: إذا كان go مفقودًا و brew متاحًا، تقوم البوابة بتثبيت Go عبر Homebrew أولاً وتعيين GOBIN إلى bin الخاص بـ Homebrew عندما يكون ذلك ممكنًا.
  • تثبيتات التنزيل: url (مطلوب)، archive (tar.gz | tar.bz2 | zipextract (الافتراضي: تلقائي عند اكتشاف الأرشيف)، stripComponents، targetDir (الافتراضي: ~/.openclaw/tools/<skillKey>).

إذا لم يكن metadata.openclaw موجودًا، تكون المهارة مؤهلة دائمًا (ما لم يتم تعطيلها في التكوين أو حظرها بواسطة skills.allowBundled للمهارات المدمجة).

تجاوزات التكوين (~/.openclaw/openclaw.json)

يمكن تبديل المهارات المدمجة/المدارة وتزويدها بقيم بيئة:

{
  skills: {
    entries: {
      "nano-banana-pro": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
        env: {
          GEMINI_API_KEY: "GEMINI_KEY_HERE",
        },
        config: {
          endpoint: "https://example.invalid",
          model: "nano-pro",
        },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}

ملاحظة: إذا كان اسم المهارة يحتوي على شرطات، اقتبس المفتاح (يسمح JSON5 بالمفاتيح المقتبسة). تطابق مفاتيح التكوين اسم المهارة افتراضيًا. إذا عرفت المهارة metadata.openclaw.skillKey، استخدم ذلك المفتاح تحت skills.entries. القواعد:

  • enabled: false تعطل المهارة حتى لو كانت مدمجة/مثبتة.
  • env: يتم حقنها فقط إذا لم يكن المتغير مضبوطًا بالفعل في العملية.
  • apiKey: راحة للمهارات التي تعلن عن metadata.openclaw.primaryEnv. تدعم سلسلة نص عادي أو كائن SecretRef ({ source, provider, id }).
  • config: حقيبة اختيارية للحقول المخصصة لكل مهارة؛ يجب أن تكون المفاتيح المخصصة هنا.
  • allowBundled: قائمة سماح اختيارية للمهارات المدمجة فقط. إذا تم تعيينها، تكون فقط المهارات المدمجة في القائمة مؤهلة (المهارات المدارة/مساحة العمل غير متأثرة).

حقن البيئة (لكل تشغيل وكيل)

عند بدء تشغيل وكيل، يقوم OpenClaw بما يلي:

  1. قراءة بيانات وصفية للمهارة.
  2. تطبيق أي skills.entries.<key>.env أو skills.entries.<key>.apiKey على process.env.
  3. بناء مطالبة النظام باستخدام المهارات المؤهلة.
  4. استعادة البيئة الأصلية بعد انتهاء التشغيل.

هذا محدود بتشغيل الوكيل، وليس بيئة shell عامة.

لقطة الجلسة (الأداء)

يقوم OpenClaw بأخذ لقطة للمهارات المؤهلة عند بدء الجلسة ويعيد استخدام تلك القائمة للأدوار اللاحقة في نفس الجلسة. التغييرات في المهارات أو التكوين سارية المفعول في الجلسة الجديدة التالية. يمكن أيضًا تحديث المهارات في منتصف الجلسة عندما يكون مراقب المهارات مفعلًا أو عندما تظهر عقدة بعيدة مؤهلة جديدة (انظر أدناه). فكر في هذا على أنه إعادة تحميل ساخنة: يتم التقاط القائمة المحدثة في دورة الوكيل التالية.

العقد البعيدة لنظام macOS (بوابة Linux)

إذا كانت البوابة تعمل على Linux ولكن عقدة macOS متصلة مع السماح بـ system.run (الأمان الموافق على التنفيذ لم يتم ضبطه على deny)، يمكن لـ OpenClaw معالجة مهارات macOS فقط على أنها مؤهلة عندما تكون الأوامر الثنائية المطلوبة موجودة على تلك العقدة. يجب على الوكيل تنفيذ تلك المهارات عبر أداة nodes (عادة nodes.run). يعتمد هذا على تقرير العقدة لدعمها للأوامر وعلى فحص الأمر الثنائي عبر system.run. إذا انقطعت عقدة macOS لاحقًا، تظل المهارات مرئية؛ قد تفشل الاستدعاءات حتى تعيد العقدة الاتصال.

مراقب المهارات (تحديث تلقائي)

بشكل افتراضي، يراقب OpenClaw مجلدات المهارات ويحدث لقطة المهارات عندما تتغير ملفات SKILL.md. قم بتكوين هذا تحت skills.load:

{
  skills: {
    load: {
      watch: true,
      watchDebounceMs: 250,
    },
  },
}

تأثير الرمز المميز (قائمة المهارات)

عندما تكون المهارات مؤهلة، يحقن OpenClaw قائمة XML مضغوطة من المهارات المتاحة في مطالبة النظام (عبر formatSkillsForPrompt في pi-coding-agent). التكلفة حتمية:

  • النفقات العامة الأساسية (فقط عندما يكون ≥1 مهارة): 195 حرفًا.
  • لكل مهارة: 97 حرفًا + طول قيم <name>، <description>، و <location> المحولة لـ XML.

الصيغة (أحرف):

total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))

ملاحظات:

  • تحويل XML يوسع & < > " ' إلى كيانات (&amp;, <, إلخ)، مما يزيد الطول.
  • تختلف أعداد الرموز المميزة حسب مقسم الرموز المميزة للنموذج. التقدير التقريبي على غرار OpenAI هو ~4 أحرف/رمز مميز، لذا 97 حرفًا ≈ 24 رمزًا مميزًا لكل مهارة بالإضافة إلى أطوال حقلك الفعلية.

دورة حياة المهارات المدارة

يشحن OpenClaw مجموعة أساسية من المهارات كـ مهارات مدمجة كجزء من التثبيت (حزمة npm أو OpenClaw.app). يوجد ~/.openclaw/skills للتجاوزات المحلية (على سبيل المثال، تثبيت/ترقيع مهارة دون تغيير النسخة المدمجة). مهارات مساحة العمل مملوكة للمستخدم وتتجاوز كليهما في حالات تعارض الأسماء.

مرجع التكوين

راجع تكوين المهارات للحصول على مخطط التكوين الكامل.

هل تبحث عن المزيد من المهارات؟

تصفح https://clawhub.com.


أوامر الشرطة المائلةتكوين المهارات