ما الذي ستبنيه
يوضّح هذا الدليل عملية إنشاء قدرة جديدة من الصفر. ستحصل في نهايته على قدرة عاملة يكتشفها وولف فيش ويحمّلها ويتيحها لنموذج اللغة.يستطيع وولف فيش فعل هذا كلّه بنفسه. تتيح له قدرة
skills المدمجة أن يسرد قدراته ويبحث فيها ويفعّلها/يعطّلها ويحذفها ويؤلّفها أثناء التشغيل — فيتحوّل «افعل هذا في كل مرة» إلى مهارة قابلة لإعادة الاستخدام دون أن تلمس نظام الملفات. وهذا الدليل لحين تفضّل بناء واحدة بيدك.تثبيت قدرة
لست مضطرًا للتعامل مع نظام الملفات. أسرع طريقة لإضافة قدرة هي إفلاتها على الإعدادات ← المُخيخ — أو النقر على حقل الاستيراد للتصفّح. تُقبل ثلاثة أشكال:ملف SKILL.md واحد
إجراء Markdown مع واجهة YAML (الاسم، الوصف، والمحفّزات الاختيارية). يُستورد كـ مهارة نقية — دون أدوات للتثبيت.
مجلد قدرة
مجلد يحتوي على
SKILL.md بالإضافة إلى plugin/ اختياري (index.mjs) وملف package.json. القدرة الكاملة — بأدواتها.أرشيف .zip
المجلد نفسه مضغوطًا (مثل ضغط في ماك). يُفكّ ضغطه إلى مجلد مؤقّت، ويُفحص، ثم يُضاف.
plugin/ بلا ملف دخول، أو اسم مكرر…) في كتلة شيفرة، فتُصلحه وتعيد الإفلات.
لإزالة قدرة مستوردة، انقر أيقونة سلة المهملات بجوارها وأكّد — فيُحذف مجلدها نظيفًا من brain/cerebellum/. القدرات الرسمية والمدمجة لا يوجد لها زر حذف ولا يمكن إزالتها بهذه الطريقة.
جرّبها الآن: قدرات نموذجية
تريد رؤية تدفّق الاستيراد قبل بناء قدرتك الخاصة؟ نزّل هذه الحزمة المكوّنة من ثلاث قدرات صغيرة جاهزة للتشغيل، ثم أفلت ملف.zip على الإعدادات ← المُخيخ. تُستورد الثلاث دفعة واحدة — يُتحقَّق منها وتُحمَّل في الحال، دون طرفية ودون كتابة أي شيفرة.
نزّل القدرات النموذجية (.zip)
coin-flip وdice-roller وcolor-mixer — ثلاث قدرات مكتفية بذاتها تستوردها بإفلاتٍ واحد وتراها حيّةً قيد العمل.| القدرة | ماذا تفعل | جرّب أن تقول |
|---|---|---|
coin-flip | تقذف عملة عادلة | «اقذف عملة» |
dice-roller | ترمي نردًا بأي عدد من الأوجه | «ارمِ 2d20» |
color-mixer | تحوّل الألوان بين الصيغ | «حوّل #ff5733 إلى RGB» |
brain/cerebellum/ لترى بالضبط كيف تُبنى قدرة صغيرة — فهي بالشكل نفسه الذي عليه مثال الطقس أدناه.
الخطوة 1: أنشئ المجلد
الخطوة 2: اكتب SKILL.md
أنشئSKILL.md بواجهة YAML وتعليمات Markdown:
الخطوة 3: اكتب الإضافة (اختياري)
إذا احتاجت قدرتك إلى كود مخصص، أنشئplugin/index.mjs:
الخطوة 4: أضف أنماط أمان (إذا لزم الأمر)
إذا كانت أداتك قادرة على إجراء عمليات خطرة، أضف أنماطًا إلى واجهة YAML لـ SKILL.md:الخطوة 5: اختبرها
أرسل رسالة تطابق مشغّلاتك. تحقق من:- ملف تصحيح السياق (
brain/prefrontal/.debug/) — هل أُدرج ملف SKILL.md الخاص بك في السياق؟ - سجل الأحداث (
brain/corpus/) — هل أُطلقtool.calledباسم أداتك؟ - سجل المهام (
brain/motor/tasks/) — هل يُظهر ملف المهمة تنفيذًا ناجحًا؟
مثال حقيقي وعامل: قدرة الطقس
استخدم الشرح أعلاه عناصر نائبة. إليك قدرة كاملة يمكنك نسخها ولصقها اليوم وتعمل فورًا — تستدعي واجهة Open-Meteo المجانية التي لا تحتاج إلى مفتاح API ولا إلى تسجيل. تُظهر النمط كاملًا من البداية إلى النهاية: مخطط أداة حقيقي، ونداءان شبكيان متسلسلان (تحويل اسم المكان إلى إحداثيات ← جلب طقسه الحالي)، والتحقق من المدخلات، ومعالجة الأخطاء بأناقة، ونتيجة بلغة طبيعية نظيفة.بنية المجلد
القدرات المدمجة مسبوقة بنقطة (
.shell، .web-search) لتبقى مخفية عن ls العادي. قدراتك الخاصة لا تحتاج إلى النقطة — weather كافٍ وأسهل في الإيجاد. يُكتشف الاثنان بالطريقة نفسها.SKILL.md
plugin/index.mjs
لماذا لا توجد danger_patterns
تقرأ weather_get بيانات عامة عبر HTTPS فقط — لا يمكنها حذف أو إنفاق أو الكتابة فوق أي شيء. الأدوات للقراءة فقط مثل هذه لا تحتاج إلى أي أنماط أمان. احتفظ بأنماط danger_patterns / confirm_patterns للأدوات التي قد تسبب ضررًا فعليًا (انظر أنماط الأمان).
جرّبها
أعد تشغيل وولف فيش ليحمّل المخيخ المجلد الجديد، ثم اسأل:“ما حالة الطقس في طوكيو؟”سترى الوكيل يستدعي
weather_get ويردّ بشيء مثل “Weather in Tokyo, Tokyo, Japan: partly cloudy, 22.4°C, humidity 61%, wind 9.3 km/h.” تتبّع النداء في brain/corpus/<today>.log.md للتأكد من الوسائط والمخرجات.
مهارة نقية مقابل إضافة: متى تستخدم أيًا منهما
استخدم مهارة نقية عندما يمكن إنجاز قدرتك باستخدام أدوات موجودة (مثلshell_exec أو file_read)، أو عندما تريد تشكيل سلوك الوكيل بدون إضافة أدوات جديدة. تُحقن تعليمات SKILL.md في قسم <skills> في الموجّه عند تفعيلها.
استخدم إضافة عندما تحتاج إلى منطق مخصص لا يمكن التعبير عنه بأوامر شل أو عمليات ملفات — استدعاءات واجهات برمجية، ومعالجة بيانات، وبروتوكولات مخصصة، إلخ.
المهارات النقية الدائمة
بعض المهارات النقية يجب أن تنطبق على كل رسالة — انضباط التخطيط، تنسيق المخرجات، قيود الأمان. استخدم المشغّل الشامل"*":
قائمة فحص القدرة
قبل شحن قدرتك:- يحتوي SKILL.md على مشغّلات دقيقة (اختبر بصيغ مختلفة)
- أوصاف معاملات الأدوات واضحة (يقرؤها نموذج اللغة)
- أنماط الخطر تغطي كل العمليات المدمرة
- أنماط التأكيد تغطي العمليات الخطرة لكنها مشروعة
- تتعامل الإضافة مع الأخطاء بأناقة (تُرجع
ToolResultبقيمةsuccess: false) - متن Markdown يحتوي على تعليمات واضحة ومحددة
- تم الاختبار مع نماذج سحابية ومحلية على حد سواء
التغليف للاستيراد والمشاركة
سواء أضاف أحدهم قدرتك كمجلد أو كملف.zip، يُجري المستورد الفحوص نفسها. واستيفاؤها يُبقي قدرتك نظيفة وقابلة للنقل وآمنة للمشاركة:
- ملف
SKILL.mdواحد فقط. يجده المستورد في الجذر أو حتى ثلاثة مجلدات في العمق، لذا يعمل ضغط مجلد (my-skill/SKILL.md) مباشرةً. ووجود صفر أو أكثر من ملفSKILL.mdيُرفض. - واجهة صالحة. يجب أن تبدأ بكتلة
---تُحلَّل كـ YAML ولهاnameغير فارغ. والحقول الاختيارية تُفحص بنيتها عند وجودها: يجب أن يكونtriggersوrequiresقوائم نصوص، وكل عنصر فيtoolsيحتاج إلىname. انظر مرجع SKILL.md. - شيء لتحميله. ملف SKILL.md بمتن فارغ وبلا أدوات لا يفعل شيئًا، ويُرفض — امنحه متنًا أو أدوات أو كليهما.
- الإضافة تحتاج ملف دخول. إذا شحنت مجلد
plugin/، فيجب أن يحتوي علىindex.mjsأوindex.jsأوindex.cjs. وإعلانtoolsفي مجلد/zip بلاplugin/يُرفض — إذ لن يكون للأدوات ما يشغّلها. - اسم فريد. لا يمكن أن يتعارض
nameمع قدرة لديك بالفعل (مدمجة أو مستوردة). ويُشتق اسم المجلد على القرص منnameبتحويله إلى صيغة سهلة (My Cool Skill←my-cool-skill). - تُزال المخلفات تلقائيًا. تُتخطّى
node_modules/و.git/و.DS_Storeو__MACOSX/عند الاستيراد — لا داعي لإزالتها أولًا، واتركnode_modules/خارج ملف zip لإبقائه صغيرًا. - حدود الحجم.
SKILL.md≤ 1 ميغابايت، والحمولة الكلية ≤ 50 ميغابايت، و≤ 5000 ملف. وتُستخرج ملفات zip مع حماية من اجتياز المسارات. - التبعيات تُثبَّت عند الحاجة. أي شيء في
requires(أدوات النظام) أو فيpackage.json(حزم npm) يُثبَّت أول مرة تعمل فيها القدرة، لا عند الاستيراد — فيبقى الاستيراد سريعًا وآمنًا دون اتصال.