ما وراء الأساسيات
يغطي هذا الدليل الأنماط المتقدمة لإضافات القدرات بما يتجاوز الأساسيات الموجودة في إنشاء القدرات. تتعامل هذه الأنماط مع التعقيدات الواقعية: التبعيات، العمليات طويلة التشغيل، إدارة الحالة، والإضافات متعددة الأدوات.تبعيات الإضافة
أضف ملفpackage.json بجانب ملف SKILL.md للتصريح عن تبعيات npm. يقوم cerebellum بتثبيتها بشكل كسول عند أول تحميل:
يتم تثبيت التبعيات باستخدام
npm install --production في مجلد القدرة. يقوم cerebellum بتشغيل هذا مرة واحدة ويخزن النتيجة مؤقتًا. احذف node_modules/ لفرض إعادة التثبيت.تبعيات المهارات
استخدم حقلrequires في البيانات الوصفية لملف SKILL.md للتصريح بأن قدرتك تعتمد على قدرات أخرى يجب تحميلها:
shell محملاً، يسجل cerebellum تحذيرًا ويتخطى قدرتك.
الأدوات طويلة التشغيل مع الإلغاء
استخدمsignal (AbortSignal) من السياق لدعم الإلغاء. يمرر motor cortex هذا عندما ينقر المستخدم على إيقاف أو عند انتهاء مهلة المهمة:
العمليات الخلفية
يمكن للإضافات تشغيل عمليات فرعية منفصلة لخوادم التطوير أو المراقبين أو البرامج الأخرى طويلة التشغيل. أرجع معرف العملية PID حتى يتمكن الوكيل من الرجوع إليه لاحقًا:أنماط إدخال/إخراج الملفات
استخدمcontext.workspaceRoot لقراءة/كتابة ملفات مساحة العمل و context.pluginDir لتكوين الإضافة المحلي:
الإضافات متعددة الأدوات
يمكن لإضافة واحدة تصدير أدوات متعددة. قم بالتوجيه حسبtoolName في execute():
معالجة الأخطاء
أرجع دائمًا ToolResult معsuccess: false ورسالة خطأ عند الفشل. لا ترمي استثناءات أبدًا - يلتقط motor cortex الاستثناءات لكنه يعيد المحاولة 3 مرات، مما يهدر الرموز إذا كان الخطأ حتميًا:
يعيد motor cortex محاولة استدعاءات الأدوات الفاشلة حتى 3 مرات مع تراجع أسي (2 ثانية، 6 ثوانٍ، 18 ثانية). أرجع رسائل خطأ واضحة حتى يتمكن نموذج اللغة من تعديل نهجه في المحاولة التالية.
الإضافات ذات الحالة
تعملinit() مرة واحدة عند التحميل، و destroy() عند الإغلاق. خزّن الحالة في الإغلاقات أو نطاق الوحدة:
تنسيق نتائج الأدوات
يُعرض نص الإخراج على نموذج اللغة للدورة التالية. اجعله مفيدًا لكن موجزًا - نموذج اللغة لديه سياق محدود:التواصل بين الإضافات
لا تستطيع الإضافات استدعاء إضافات أخرى مباشرة. إذا احتاجت إضافتك لمخرجات قدرة أخرى، أصدر الحاجة كجزء من نتيجتك ودع نموذج اللغة ينسق:file_read بعد ذلك. هذا يحافظ على نظافة البنية - نموذج اللغة هو المنسق، والإضافات هي الأدوات.
نموذج الأمان
تعمل الإضافات بصلاحيات Node.js الكاملة في عملية Electron الرئيسية. يمكنها فعل أي شيء: نظام الملفات، الشبكة، العمليات الفرعية، الوحدات الأصلية. amygdala هي البوابة الوحيدة - تقرر ما إذا كان مسموحًا لنموذج اللغة باستدعاء أداة بناءً على أنماط الخطر.اختبار الإضافات
هناك طريقتان للاختبار:- الاختبار المعزول
- الاختبار المباشر
أنشئ سياقًا وهميًا واستدعِ
execute() مباشرة: