Skip to main content

ماذا تضيف الإضافة

تمنح الإضافة قدرةً ما كودًا قابلًا للتنفيذ. بينما تعتمد المهارات النقية (SKILL.md فقط) على استخدام نموذج اللغة لأدوات موجودة مثل shell_exec، فإن الإضافات تعرّف أدواتها الخاصة بمنطق مخصص.

بنية الإضافة

واجهة وولفيشPlugin

يجب أن تصدّر إضافتك كائنًا يحقق هذه الواجهة:

مثال إضافة

إليك إضافة بسيطة توفر أداة hello_world:
وملف SKILL.md المقابل:

دورة حياة الإضافة

  1. الاكتشاف — يمسح cerebellum.ts مجلد brain/cerebellum/ عند بدء التشغيل
  2. الاستيراد — إذا كان plugin/index.mjs موجودًا، فإنه يُستورَد ديناميكيًا
  3. التهيئة — يُستدعى init(context) مع تمرير مجلد الإضافة وجذر مساحة العمل
  4. التنفيذ — يُستدعى execute(toolName, args) في كل مرة يستدعي فيها نموذج اللغة أداة
  5. التدمير — يُستدعى destroy() عند إغلاق التطبيق للتنظيف

ملاحظات مهمة

الإضافات هي ملفات .mjs (وحدات ES)، وليست .ts. تعمل في عملية Electron الرئيسية بصلاحيات Node.js الكاملة. هذا يعني أنها تستطيع فعل أي شيء — إدخال/إخراج الملفات، وطلبات الشبكة، والعمليات الفرعية. بوابة الأمان في amygdala هي الشيء الوحيد بين الإضافة والتنفيذ.
استخدم context.pluginDir لتحليل المسارات النسبية لإضافتك (لملفات التكوين والقوالب وما إلى ذلك)، وcontext.workspaceRoot للوصول إلى بيانات على مستوى مساحة العمل.
ينبغي أن تتعامل الإضافات مع أخطائها بأناقة وأن تُرجع دائمًا ToolResult. إذا أطلقت إضافتك استثناءً، فسيلتقطه motor.ts ويعيد المحاولة حتى 3 مرات بتراجع أسّي.