هذا دليل مساهمين لمطوّري نواة OpenClaw. إذا كنت
تبني Plugin خارجيًا، فراجع بناء Plugins
بدلًا من ذلك. لمرجع البنية المتعمّق (نموذج القدرات، الملكية،
مسار التحميل، مساعدات وقت التشغيل)، راجع داخليات Plugin.
- Plugin = حد الملكية
- القدرة = عقد مشترك في النواة
متى تنشئ قدرة
أنشئ قدرة جديدة عندما تكون كل الشروط التالية صحيحة:- يمكن لأكثر من مورّد واحد تنفيذها بشكل معقول.
- ينبغي للقنوات أو الأدوات أو Plugins الميزات استهلاكها من دون الاهتمام بالمورّد.
- تحتاج النواة إلى امتلاك سلوك التراجع أو السياسة أو الإعدادات أو التسليم.
التسلسل القياسي
- عرّف عقد النواة المطبوع.
- أضف تسجيل Plugin لهذا العقد.
- أضف مساعد وقت تشغيل مشتركًا.
- وصّل Plugin مورّدًا حقيقيًا واحدًا كدليل.
- انقل مستهلكي الميزات/القنوات إلى مساعد وقت التشغيل.
- أضف اختبارات العقد.
- وثّق إعدادات المشغّل ونموذج الملكية.
ما الذي يوضع أين
النواة:- أنواع الطلب/الاستجابة.
- سجل المزوّدين + الحل.
- سلوك التراجع.
- مخطط الإعدادات مع بيانات تعريف وثائق
title/descriptionالمنشورة على عقد الكائنات المتداخلة، وأحرف البدل، وعناصر المصفوفات، والتركيب. - سطح مساعد وقت التشغيل.
- استدعاءات واجهة API الخاصة بالمورّد.
- معالجة مصادقة المورّد.
- تطبيع الطلبات الخاصة بالمورّد.
- تسجيل تنفيذ القدرة.
- يستدعي
api.runtime.*أو مساعدplugin-sdk/*-runtimeالمطابق. - لا يستدعي تنفيذ مورّد مباشرة أبدًا.
نقاط فصل المزوّد والحزام
استخدم خطافات المزوّد عندما ينتمي السلوك إلى عقد مزوّد النموذج بدلًا من حلقة الوكيل العامة. تشمل الأمثلة معاملات الطلب الخاصة بالمزوّد بعد اختيار النقل، وتفضيل ملف المصادقة، وطبقات المطالبات، وتوجيه التراجع اللاحق بعد التحويل عند فشل النموذج/الملف. استخدم خطافات حزام الوكيل عندما ينتمي السلوك إلى وقت التشغيل الذي ينفّذ دورة. تستطيع الأحزمة تصنيف نتائج بروتوكول صريحة مثل خرج فارغ، أو استدلال بلا خرج مرئي، أو خطة منظمة بلا إجابة نهائية حتى تتمكن سياسة تراجع النموذج الخارجية من اتخاذ قرار إعادة المحاولة. أبقِ كلا نقطتي الفصل ضيقتين:- النواة تملك سياسة إعادة المحاولة/التراجع.
- Plugins المزوّدين تملك تلميحات الطلب/المصادقة/التوجيه الخاصة بالمزوّد.
- Plugins الأحزمة تملك تصنيف المحاولة الخاص بوقت التشغيل.
- Plugins الطرف الثالث تُرجع تلميحات، لا تعديلات مباشرة على حالة النواة.
قائمة تحقق الملفات
لقدرة جديدة، توقّع لمس هذه المناطق:src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- حزمة Plugin مضمّنة واحدة أو أكثر.
- الإعدادات، الوثائق، الاختبارات.
مثال عملي: توليد الصور
يتبع توليد الصور الشكل القياسي:- تعرّف النواة
ImageGenerationProvider. - تكشف النواة
registerImageGenerationProvider(...). - تكشف النواة
runtime.imageGeneration.generate(...). - تسجّل Plugins
openaiوgoogleوfalوminimaxتنفيذات مدعومة من مورّدين. - يسجّل المورّدون المستقبليون العقد نفسه من دون تغيير القنوات/الأدوات.
agents.defaults.imageModelيحلّل الصور.agents.defaults.imageGenerationModelيولّد الصور.
مزوّدو التضمينات
استخدمembeddingProviders لمزوّدي تضمينات المتجهات القابلة لإعادة الاستخدام. هذا العقد
أوسع عمدًا من الذاكرة: يمكن للأدوات أو البحث أو الاسترجاع أو المستوردات أو
Plugins الميزات المستقبلية استهلاك التضمينات من دون الاعتماد على محرّك الذاكرة.
يمكن لبحث الذاكرة استهلاك embeddingProviders العامة. عقد
memoryEmbeddingProviders الأقدم هو توافق مهمل بينما ينتقل مزوّدو
التضمينات الخاصة بالذاكرة الحاليون؛ ينبغي لمزوّدي التضمينات القابلة لإعادة الاستخدام الجدد استخدام
embeddingProviders.
قائمة تحقق المراجعة
قبل شحن قدرة جديدة، تحقّق من:- لا توجد قناة/أداة تستورد كود المورّد مباشرة.
- مساعد وقت التشغيل هو المسار المشترك.
- يوجد اختبار عقد واحد على الأقل يؤكد ملكية الحزمة المضمّنة.
- وثائق الإعدادات تسمّي مفتاح النموذج/الإعدادات الجديد.
- تشرح وثائق Plugin حد الملكية.
ذو صلة
- داخليات Plugin — نموذج القدرات، الملكية، مسار التحميل، مساعدات وقت التشغيل.
- بناء Plugins — درس أول Plugin.
- نظرة عامة على SDK — مرجع خريطة الاستيراد وواجهة API للتسجيل.
- إنشاء Skills — سطح مساهمين مرافق.