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 और इमेज पथ फ़ाइल सिस्टम खोज को दोहराने के बजाय प्रकाशित कैटलॉग को पढ़ते हैं।
स्वतंत्र एम्बेडेड रनटाइम अपनी सक्रियण सीमा पर उसी स्नैपशॉट संरचना को प्रकाशित करते हैं। किसी विफल या पुराने हो चुके जनरेशन को कभी भी किसी नए आंशिक जनरेशन के साथ प्रस्तुत नहीं किया जाता; जीवनचक्र स्वामी को पहले एक पूर्ण प्रतिस्थापन प्रकाशित करना होगा।