Technical reference
एजेंट रनटाइम आर्किटेक्चर
OpenClaw अंतर्निहित एजेंट रनटाइम का स्वामी है। रनटाइम कोड src/agents/ के अंतर्गत स्थित है, मॉडल/प्रोवाइडर ट्रांसपोर्ट src/llm/ के अंतर्गत स्थित है, और Plugin-संबंधी अनुबंध openclaw/plugin-sdk/* बैरल के माध्यम से उपलब्ध कराए जाते हैं।
रनटाइम लेआउट
| पथ | स्वामित्व |
|---|---|
src/agents/embedded-agent-runner/ |
अंतर्निहित प्रयास लूप (run.ts, run/), मॉडल चयन और प्रोवाइडर सामान्यीकरण (model*.ts), प्रति-प्रोवाइडर अनुरोध पैरामीटर (extra-params.*), Compaction, ट्रांसक्रिप्ट और सेशन वायरिंग। |
src/agents/sessions/ |
सेशन स्थायित्व (session-manager.ts), संसाधन खोज (package-manager.ts, resource-loader.ts), सेशन के भीतर extensions लोडिंग, प्रॉम्प्ट टेम्पलेट, Skills, थीम और TUI-समर्थित टूल रेंडरर (tools/)। |
packages/agent-core/ |
पुन: प्रयोज्य एजेंट कोर (@openclaw/agent-core): एजेंट लूप, हार्नेस प्रकार, संदेश, Compaction सहायक, प्रॉम्प्ट टेम्पलेट, Skills और सेशन स्टोरेज अनुबंध। |
src/agents/runtime/ |
OpenClaw फ़साड, जो @openclaw/agent-core को Plugin SDK LLM रनटाइम से जोड़ता है और स्थानीय प्रॉक्सी यूटिलिटीज़ के साथ उसे पुनः निर्यात करता है। |
src/agents/agent-tools*.ts |
OpenClaw-स्वामित्व वाली टूल परिभाषाएँ, पैरामीटर स्कीमा, टूल नीति, टूल-कॉल से पहले/बाद के अडैप्टर और होस्ट/सैंडबॉक्स संपादन टूल। |
src/agents/agent-hooks/ |
अंतर्निहित रनटाइम हुक: Compaction सुरक्षा उपाय, Compaction निर्देश, कॉन्टेक्स्ट प्रूनिंग। |
src/agents/harness/ |
अंतर्निहित और Plugin-पंजीकृत हार्नेस के लिए हार्नेस रजिस्ट्री, चयन नीति और जीवनचक्र। |
src/llm/ |
मॉडल/प्रोवाइडर रजिस्ट्री, ट्रांसपोर्ट सहायक और प्रोवाइडर-विशिष्ट स्ट्रीम कार्यान्वयन (src/llm/providers/)। |
सीमाएँ
कोर OpenClaw मॉड्यूल और SDK बैरल के माध्यम से अंतर्निहित रनटाइम को कॉल करता है; कोई बाहरी एजेंट फ़्रेमवर्क पैकेज शेष नहीं है। Plugins दस्तावेज़ीकृत openclaw/plugin-sdk/* एंट्रीपॉइंट का उपयोग करते हैं और src/** आंतरिक भागों को इंपोर्ट नहीं करते।
@earendil-works/pi-tui एक तृतीय-पक्ष निर्भरता बनी हुई है: स्थानीय TUI और सेशन टूल रेंडरर द्वारा उपयोग किया जाने वाला टर्मिनल कंपोनेंट टूलकिट। इसे आंतरिक बनाना एक अलग वेंडरिंग प्रयास होगा।
मैनिफ़ेस्ट
संसाधन पैकेज package.json मेटाडेटा में OpenClaw संसाधन घोषित करते हैं। प्रविष्टियाँ पैकेज रूट के सापेक्ष फ़ाइल पथ या ग्लॉब होती हैं:
{ "openclaw": { "extensions": ["extensions/index.ts"], "skills": ["skills/*.md"], "prompts": ["prompts/*.md"], "themes": ["themes/*.json"] }}मैनिफ़ेस्ट में सूचीबद्ध न किए गए संसाधन प्रकार पारंपरिक extensions/, skills/, prompts/ और themes/ डायरेक्टरी की खोज पर फ़ॉलबैक करते हैं।
रनटाइम चयन
- अंतर्निहित रनटाइम आईडी
openclawहै। लीगेसी उपनामpi,openclawमें सामान्यीकृत होता है;codex-app-server,codexमें सामान्यीकृत होता है। - Plugin हार्नेस अतिरिक्त रनटाइम आईडी पंजीकृत करते हैं (उदाहरण के लिए
codex)। - रनटाइम नीति मॉडल/प्रोवाइडर-स्कोप वाला
agentRuntime.idकॉन्फ़िगरेशन है (मॉडल प्रविष्टि को प्रोवाइडर प्रविष्टि पर प्राथमिकता मिलती है)। सेट न होने पर याdefaultहोने पर यहautoमें रिज़ॉल्व होता है। autoएक पंजीकृत Plugin हार्नेस चुनता है जो प्रभावी प्रोवाइडर रूट का समर्थन करता हो; अन्यथा अंतर्निहित OpenClaw रनटाइम चुना जाता है। केवल प्रोवाइडर या मॉडल प्रीफ़िक्स कभी भी हार्नेस नहीं चुनता।- OpenAI केवल बिना किसी लिखित अनुरोध ओवरराइड वाले सटीक आधिकारिक HTTPS Platform Responses या ChatGPT Responses रूट के लिए
codexको अप्रत्यक्ष रूप से चुन सकता है। Completions अडैप्टर, कस्टम एंडपॉइंट और लिखित अनुरोध व्यवहार वाले रूटopenclawपर बने रहते हैं; प्लेनटेक्स्ट आधिकारिक HTTP एंडपॉइंट अस्वीकार कर दिए जाते हैं। OpenAI अप्रत्यक्ष एजेंट रनटाइम देखें।
मॉडल रनटाइम जनरेशन
Gateway स्टार्टअप और कॉन्फ़िगरेशन, Plugin या प्रमाणीकरण प्रकाशन प्रत्येक कॉन्फ़िगर किए गए एजेंट के लिए एक तैयार मॉडल रनटाइम जनरेशन बनाते हैं। प्रत्येक जनरेशन खोजे गए प्रमाणीकरण टेम्पलेट, मॉडल रजिस्ट्री और प्रक्षेपित मॉडल कैटलॉग का एक परमाणु स्नैपशॉट के रूप में स्वामी होता है। एजेंट रन उस स्नैपशॉट से परिवर्तनीय प्रमाणीकरण और रजिस्ट्री स्टोर फ़ोर्क करते हैं; ब्राउज़, स्थिति, Cron, डॉक्टर, TUI, PDF और इमेज पथ फ़ाइल सिस्टम खोज दोहराने के बजाय प्रकाशित कैटलॉग पढ़ते हैं।
स्टैंडअलोन एम्बेडेड रनटाइम अपनी सक्रियण सीमा पर समान स्नैपशॉट आकार प्रकाशित करते हैं। किसी विफल या पुराने जनरेशन को कभी भी किसी नए आंशिक जनरेशन के साथ प्रस्तुत नहीं किया जाता; जीवनचक्र स्वामी को पहले एक पूर्ण प्रतिस्थापन प्रकाशित करना आवश्यक है।