यह OpenClaw कोर डेवलपरों के लिए योगदानकर्ता गाइड है। यदि आप
कोई बाहरी Plugin बना रहे हैं, तो इसके बजाय Plugin बनाना
देखें। गहरे आर्किटेक्चर संदर्भ (क्षमता मॉडल, स्वामित्व,
लोड पाइपलाइन, रनटाइम हेल्पर) के लिए, Plugin internals देखें।
- Plugin = स्वामित्व सीमा
- क्षमता = साझा कोर अनुबंध
क्षमता कब बनाएं
नई क्षमता तब बनाएं जब इनमें से सभी सही हों:- एक से अधिक विक्रेता इसे संभवतः लागू कर सकते हों।
- चैनल, टूल, या फीचर Plugin को विक्रेता की परवाह किए बिना इसका उपयोग करना चाहिए।
- कोर को fallback, नीति, कॉन्फिग, या डिलीवरी व्यवहार का स्वामित्व चाहिए।
मानक क्रम
- टाइप किया हुआ कोर अनुबंध परिभाषित करें।
- उस अनुबंध के लिए Plugin पंजीकरण जोड़ें।
- साझा रनटाइम हेल्पर जोड़ें।
- प्रमाण के रूप में एक वास्तविक विक्रेता Plugin वायर करें।
- फीचर/चैनल उपभोक्ताओं को रनटाइम हेल्पर पर ले जाएं।
- अनुबंध टेस्ट जोड़ें।
- ऑपरेटर-फेसिंग कॉन्फिग और स्वामित्व मॉडल का दस्तावेजीकरण करें।
क्या कहां जाता है
कोर:- अनुरोध/प्रतिक्रिया प्रकार।
- Provider रजिस्ट्री + रिज़ॉल्यूशन।
- Fallback व्यवहार।
- nested object, wildcard, array-item, और composition nodes पर प्रसारित
title/descriptiondocs metadata के साथ कॉन्फिग schema। - रनटाइम हेल्पर सतह।
- विक्रेता API कॉल।
- विक्रेता auth हैंडलिंग।
- विक्रेता-विशिष्ट अनुरोध normalization।
- क्षमता implementation का पंजीकरण।
api.runtime.*या मेल खातेplugin-sdk/*-runtimeहेल्पर को कॉल करता है।- किसी विक्रेता implementation को सीधे कभी कॉल नहीं करता।
Provider और harness seams
जब व्यवहार generic agent loop के बजाय model provider contract से संबंधित हो, तो provider hooks का उपयोग करें। उदाहरणों में transport selection के बाद provider-specific request params, auth-profile preference, prompt overlays, और model/profile failover के बाद follow-up fallback routing शामिल हैं। जब व्यवहार उस runtime से संबंधित हो जो turn execute कर रहा है, तो agent harness hooks का उपयोग करें। Harnesses खाली output, visible output के बिना reasoning, या final answer के बिना structured plan जैसे explicit protocol outcomes को classify कर सकते हैं, ताकि outer model fallback policy retry decision ले सके। दोनों seams को संकीर्ण रखें:- कोर retry/fallback policy का स्वामी है।
- Provider plugins provider-specific request/auth/routing hints के स्वामी हैं।
- Harness plugins runtime-specific attempt classification के स्वामी हैं।
- Third-party plugins hints लौटाते हैं, core state के direct mutations नहीं।
फ़ाइल checklist
नई क्षमता के लिए, इन क्षेत्रों को छूने की अपेक्षा करें: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- एक या अधिक bundled Plugin packages।
- कॉन्फिग, docs, tests।
काम किया हुआ उदाहरण: image generation
Image generation मानक आकार का पालन करता है:- कोर
ImageGenerationProviderपरिभाषित करता है। - कोर
registerImageGenerationProvider(...)expose करता है। - कोर
runtime.imageGeneration.generate(...)expose करता है। openai,google,fal, औरminimaxplugins vendor-backed implementations register करते हैं।- भविष्य के vendors channels/tools बदले बिना वही contract register करते हैं।
agents.defaults.imageModelimages का analysis करता है।agents.defaults.imageGenerationModelimages generate करता है।
Embedding providers
Reusable vector embedding providers के लिएembeddingProviders का उपयोग करें। यह contract
जानबूझकर memory से व्यापक है: tools, search, retrieval, importers, या
future feature plugins memory
engine पर निर्भर हुए बिना embeddings consume कर सकते हैं।
Memory search generic embeddingProviders consume कर सकता है। पुराना
memoryEmbeddingProviders contract deprecated compatibility है जबकि मौजूदा
memory-specific providers migrate होते हैं; नए reusable embedding providers को
embeddingProviders का उपयोग करना चाहिए।
Review checklist
नई क्षमता ship करने से पहले, सत्यापित करें:- कोई channel/tool vendor code को सीधे import नहीं करता।
- runtime helper shared path है।
- कम से कम एक contract test bundled ownership assert करता है।
- Config docs नए model/config key का नाम देते हैं।
- Plugin docs ownership boundary समझाते हैं।
संबंधित
- Plugin internals — capability model, ownership, load pipeline, runtime helpers।
- Plugin बनाना — first-plugin tutorial।
- SDK overview — import map और registration API reference।
- Skills बनाना — companion contributor surface।