Skip to main content
क्लाउड वर्कर किसी सत्र को एक अस्थायी क्लाउड मशीन पर अपना एजेंट लूप चलाने देते हैं, जबकि सत्र से जुड़ी हर चीज़ हमेशा की तरह वहीं रहती है: साइडबार में दिखाई देती है, लाइव स्ट्रीम होती है, और ट्रांसक्रिप्ट का स्वामित्व Gateway के पास रहता है। Gateway एक बॉक्स लीज़ पर लेता है, उस पर OpenClaw की पिन की गई प्रति इंस्टॉल करता है, सत्र के वर्कस्पेस को वहाँ सिंक करता है, और टर्न लूप एक प्रतिबंधित openclaw worker प्रक्रिया को सौंप देता है। मॉडल कॉल Gateway के माध्यम से वापस प्रॉक्सी किए जाते हैं, इसलिए प्रदाता क्रेडेंशियल आपकी मशीन से कभी बाहर नहीं जाते, और प्रॉम्प्ट कैशिंग काम करती रहती है क्योंकि प्रदाता को एक सतत स्ट्रीम दिखाई देती है। काम पूरा होने पर (या बॉक्स बंद हो जाने पर), मशीन हटा दी जाती है। टिकाऊ स्थिति — ट्रांसक्रिप्ट, वर्कस्पेस कमिट, प्लेसमेंट रिकॉर्ड — Gateway के पास रहती है।
क्लाउड वर्कर वैकल्पिक हैं और प्रोफ़ाइल कॉन्फ़िगर किए जाने तक दिखाई नहीं देते। बिना कॉन्फ़िगरेशन वाले इंस्टॉल में कोई नया RPC, कॉन्फ़िगरेशन या UI दिखाई नहीं देता।

क्या कहाँ चलता है

बॉक्स को sshd के अतिरिक्त किसी इनबाउंड पोर्ट की आवश्यकता नहीं है: Gateway पिन किए गए SSH के माध्यम से आउटबाउंड कनेक्ट करता है, और एक रिवर्स टनल वर्कर का WebSocket वापस ले जाता है। बंडल किया गया Crabbox प्रदाता सार्वजनिक SSH मार्ग को अनिवार्य करता है और प्रबंधित Tailscale नामांकन अक्षम करता है। आउटबाउंड इंटरनेट एक्सेस प्रदाता की नीति पर निर्भर है; डिफ़ॉल्ट AWS प्रोफ़ाइल इंटरनेट तक पहुँच सकती है, जब तक कि उसके नेटवर्क या सुरक्षा समूह को प्रतिबंधित न किया जाए।

आवश्यकताएँ

  • एक वर्कर प्रदाता Plugin। बंडल किया गया crabbox Plugin Crabbox CLI चलाता है, जो क्लाउड बैकएंड (AWS, Hetzner और अन्य) में लीज़ की व्यवस्था करता है। crabbox बाइनरी PATH पर उपलब्ध होनी चाहिए (या settings.binary सेट करें) और प्रदाता क्रेडेंशियल पहले से कॉन्फ़िगर होने चाहिए। AWS प्रवेश के लिए Crabbox 0.38.1 या नया संस्करण आवश्यक है।
  • Crabbox AWS वर्कर के लिए, प्रभावी aws.instanceProfile खाली होना चाहिए। प्रदाता आवंटन से पहले crabbox config show --json की जाँच करता है, फिर आवश्यक करता है कि crabbox inspect --json, EC2 DescribeInstances से providerMetadata.instanceProfileAttached: false रिपोर्ट करे। इंस्टेंस भूमिका वाली या प्रामाणिक मेटाडेटा के बिना लीज़ रोककर अस्वीकार कर दी जाती हैं।
  • लीज़ की गई मशीन पर Node.js। सामान्य क्लाउड इमेज में प्रायः यह नहीं होता — इसे प्रोफ़ाइल के setup कमांड में इंस्टॉल करें।
  • सत्र के स्वामित्व वाले प्रबंधित वर्कट्री वाला सत्र (worktree: true से बनाएँ)। डिस्पैच उस वर्कट्री की सामग्री स्थानांतरित करता है; सामान्य डायरेक्टरी मैनिफ़ेस्ट मिरर के रूप में सिंक होती हैं।

कॉन्फ़िगरेशन

openclaw.json में cloudWorkers.profiles के अंतर्गत एक प्रोफ़ाइल जोड़ें:
प्रोफ़ाइल फ़ील्ड:

सेटअप कमांड

settings.setup लीज़ किए गए बॉक्स पर उसके SSH-तैयार होने के बाद और OpenClaw इंस्टॉल होने से पहले चलता है। यह हर प्रोविज़न प्रयास पर चलता है (बाधित डिस्पैच के बाद पुनः चलाए गए प्रयासों सहित), इसलिए इसे इडेम्पोटेंट होना चाहिए — उदाहरण की तरह इंस्टॉल को command -v/test -x जाँच से सुरक्षित करें। यदि सेटअप विफल होता है, तो प्रदाता लीज़ रोक देता है और डिस्पैच सुरक्षित रूप से विफल हो जाता है; कोई आधा-कॉन्फ़िगर किया गया बॉक्स चलता हुआ नहीं छोड़ा जाता।

इंस्टॉल चैनल

  • bundle चल रहे Gateway के dist, छँटे हुए package.json, और बिल्ड द्वारा संदर्भित सभी वर्कस्पेस पैकेज को पैक करता है, जिन्हें एक सामग्री हैश कवर करता है। बॉक्स उस हैश के विरुद्ध मूल बंडल को सत्यापित करता है, फिर उत्पादन npm निर्भरताएँ इंस्टॉल करता है (स्क्रिप्ट अक्षम रहती हैं)। इसी प्रकार वर्कर पर डेवलपमेंट बिल्ड चलाया जाता है।
  • npm प्रमाणित करता है कि रिलीज़ सार्वजनिक रजिस्ट्री पर मौजूद है, उसकी SHA-512 अखंडता पिन करता है, और Gateway से सटीक रूप से मेल खाने वाला openclaw@<version> इंस्टॉल करता है।

सत्र डिस्पैच करना

Control UI में, नया सत्र खोलें, ऐसा एजेंट चुनें जिसका कॉन्फ़िगर किया गया रनटाइम OpenClaw हो, कहाँ मेनू से कॉन्फ़िगर किया गया क्लाउड · प्रोफ़ाइल लक्ष्य चुनें, और कार्य शुरू करें। क्लाउड चयन आवश्यक प्रबंधित वर्कट्री को स्वचालित रूप से सक्षम करता है; Gateway सत्र बनाता है, डिस्पैच पूरा करता है और उसके बाद ही पहला टर्न भेजता है। सत्र साइडबार में सर्वर बैज टिकाऊ प्लेसमेंट स्थिति दिखाता है। बाहरी CLI सत्र कैटलॉग के लिए क्लाउड लक्ष्य उपलब्ध नहीं कराए जाते। समतुल्य RPC प्रवाह यह है: प्रबंधित वर्कट्री के साथ सत्र बनाएँ, फिर उसे डिस्पैच करें (RPC के लिए operator.admin आवश्यक है और यह केवल प्रोफ़ाइल कॉन्फ़िगर होने पर मौजूद होता है): क्लाउड वर्कर OpenClaw एजेंट रनटाइम चलाते हैं। ऐसा openai/* या अन्य मॉडल चुनें जो उस रनटाइम में रिज़ॉल्व होता हो; claude-cli जैसे बाहरी CLI रनटाइम के लिए कॉन्फ़िगर किए गए सत्र डिस्पैच नहीं हो सकते।
sessions.dispatch स्थानीय टर्न प्रवेश बंद करता है, सक्रिय काम समाप्त होने देता है, लीज़ प्रोविज़न करता है, सेटअप चलाता है, OpenClaw बूटस्ट्रैप करता है, वर्कस्पेस सिंक करता है, और प्लेसमेंट के active वर्कर स्वामित्व तक पहुँचने पर वापस लौटता है। पहले डिस्पैच के लिए कई मिनट का समय रखें; जहाँ प्रदाता समर्थन करता है, वहाँ लीज़ और इंस्टॉल कैश किए जाते हैं। इसके बाद सत्र से सामान्य रूप से संवाद करें — टर्न स्वचालित रूप से वर्कर तक रूट होते हैं। पूर्ण हुए वर्कर टर्न, टर्न क्लेम जारी होने से पहले पात्र और आकार-सीमित वर्कस्पेस फ़ाइलों को सत्र के प्रबंधित वर्कट्री में वापस समन्वित करते हैं। टर्मिनल वर्कर इवेंट स्वीकार किए जाने से पहले एक टिकाऊ लंबित-परिणाम फ़ेंस बनाता है। इसके बाद Gateway संपूर्ण क्लाउड परिणाम को लागू करने से पहले refs/openclaw/worker-results/ के अंतर्गत Git रेफ़ के रूप में स्टेज करता है, ताकि लागू करने के दौरान Gateway रुक जाने पर भी क्लाउड संस्करण पुनर्प्राप्त किया जा सके। वर्कस्पेस परिणाम Git फ़ाइल शब्दार्थ का उपयोग करते हैं: सामान्य फ़ाइलें, निष्पादन योग्य बिट, सिमलिंक, जोड़, परिवर्तन और हटाव बनाए रखे जाते हैं, जबकि खाली डायरेक्टरी और अन्य डायरेक्टरी मोड नहीं रखे जाते। परिणामी फ़ाइल परिवर्तन सामान्य समीक्षा और कमिट के लिए प्रबंधित वर्कट्री में बने रहते हैं। लागू करने की प्रक्रिया डिस्पैच-समय मैनिफ़ेस्ट को मर्ज आधार के रूप में उपयोग करती है। केवल क्लाउड वाले परिवर्तन लागू किए जाते हैं, केवल स्थानीय परिवर्तन यथास्थान रहते हैं, और दोनों ओर बदले गए पथ त्रि-मार्गीय स्थानीय-रखें नीति का उपयोग करते हैं। विरोध वाला टर्न भी पूरा होता है: ट्रांसक्रिप्ट सीमित पथ सारांश और स्टेज किया गया परिणाम रेफ़ रिपोर्ट करता है, प्लेसमेंट Control UI के लिए वही विरोध दिखाता है, और विरोध-रहित क्लाउड परिवर्तन लागू रहते हैं। सूचना में मौजूद क्लाउड फ़ाइल का निरीक्षण करने के लिए git show <ref>:<path> और किसी भी वर्कस्पेस डायरेक्टरी से उसे लेने के लिए शीर्ष-स्तरीय शाब्दिक पाथस्पेक git checkout <ref> -- <path> कमांड शामिल होता है। कमांड Bash या zsh (Windows पर Git Bash) में चलाएँ। यदि निरीक्षण बताता है कि पथ मौजूद नहीं है, तो क्लाउड परिणाम ने उसे हटा दिया है; सत्यापित करें और रखे गए स्थानीय पथ को मैन्युअल रूप से हटाएँ। यदि चेकआउट फ़ाइल/डायरेक्टरी अवरोध रिपोर्ट करता है, तो अवरोधक स्थानीय पथ को स्थानांतरित करें या हटाएँ और फिर प्रयास करें। यदि स्टेज किया गया रेफ़ ही हट चुका है, तो सूचना को पुराना मानें और स्थानीय पथ न बदलें। विरोध वाले स्टेज किए गए रेफ़ सामान्य टर्न फ़ेंस जारी होने के बाद भी उपलब्ध रहते हैं; बाद का साफ़ परिणाम सूचना हटाकर पुराने रेफ़ को निष्क्रिय कर देता है, जबकि स्पष्ट फ़ेंस निष्कासन अंतिम सफ़ाई सीमा है। जब फ़ेंस किया गया परिणाम अभी समन्वित हो रहा हो, तो नया टर्न पिछले क्लेम के जारी होने के लिए 15 सेकंड तक प्रतीक्षा करता है। यदि वह अब भी व्यस्त है, तो टर्न कार्रवाई योग्य “पिछले क्लाउड टर्न का वर्कस्पेस परिणाम अभी भी समन्वित हो रहा है” संदेश के साथ विफल होता है और थोड़ी देर बाद पुनः प्रयास किया जा सकता है। पुनः प्रारंभ होने पर, पुनर्प्राप्ति पुराने क्लेम साफ़ करने से पहले लंबित और स्टेज किए गए परिणाम खोजती है, उनका स्थानीय अनुप्रयोग पूरा करती है या पुनः प्रयास करती है, और परिणाम सुरक्षित रखने के बाद ही निष्क्रिय परिवेश वापस लेती है। सीमित SQLite रोलबैक जर्नल पहले से स्वीकार किए गए म्यूटेशन को दोबारा चलाए बिना बाधित फ़ाइलसिस्टम अनुप्रयोग को पुनर्प्राप्त करने योग्य बनाता है। काम पूरा होने और कोई टर्न न चलने पर, सत्र मेनू खोलें और क्लाउड वर्कर रोकें… चुनें। Gateway परिवेश नष्ट करने से पहले वर्कस्पेस का एक अंतिम समन्वय करता है। जो प्लेसमेंट पहले से draining या reconciling में है, वह विघटन पूरा कर रहा है; सत्र हटाने से पहले उसके बैज के reclaimed बनने की प्रतीक्षा करें। खराब या अनियंत्रित संलग्न वर्कर के लिए, ऑपरेटर अंतिम उपाय के रूप में { "force": true } के साथ environments.destroy कॉल कर सकता है। बलपूर्वक विघटन प्लेसमेंट को टिकाऊ रूप से विफल चिह्नित करता है और परिवेश नष्ट करने से पहले किसी भी असमन्वित दूरस्थ परिणाम को छोड़ देता है। समतुल्य प्रशासनिक RPC यह है:
प्लेसमेंट एक टिकाऊ स्टेट मशीन (local → requested → provisioning → syncing → starting → active) के माध्यम से आगे बढ़ता है, इसलिए डिस्पैच के बीच में Gateway पुनः आरंभ होने पर मशीनें लीक होने के बजाय स्थिति का मिलान होता है। मॉडल का कोई टर्न विफल होने पर सक्रिय प्लेसमेंट पुनः प्रयास के लिए उपलब्ध रहता है। वर्कस्पेस पथ के टकरावों में स्थानीय संस्करण रखा जाता है, क्लाउड परिणाम का शेष भाग लागू किया जाता है और निरीक्षण के लिए स्टेज किया गया क्लाउड रेफ़ सुरक्षित रखा जाता है; मिलान या जीवनचक्र की अन्य विफलताओं में उनका टिकाऊ पुनर्प्राप्ति फ़ेंस और निदानात्मक टेल तब तक बनाए रखा जाता है, जब तक पुनर्प्राप्ति सुरक्षित रूप से पुनः प्रयास या परिवेश को पुनः प्राप्त नहीं कर सकती।

सुरक्षा मॉडल

  • बंद वर्कर इनग्रेस। वर्कर टनल किए गए सॉकेट पर बंद मेथड अनुमतिसूची वाले समर्पित प्रोटोकॉल से संचार करते हैं — कोई वर्कर ऑपरेटर RPC को कॉल नहीं कर सकता।
  • Gateway के स्वामित्व वाला टूल प्राधिकार। प्रत्येक टर्न से पहले, Gateway वर्कर के स्थिर कोडिंग-टूल कैटलॉग पर वर्तमान प्रोफ़ाइल, प्रदाता, एजेंट, समूह, प्रेषक, सैंडबॉक्स, प्रत्यायोजन, इनहेरिटेड और रनटाइम-कैप नीति लागू करता है। लॉन्च एनवेलप में केवल वही अंतिम बंद-शब्दावली उपसमुच्चय होता है। स्पष्ट रूप से सीमित शेड्यूल किए गए टर्न उस पहचान को बॉक्स में भेजे बिना या नया प्रेषक ओवरले फिर से लागू किए बिना अपने विश्वसनीय स्वामी-समूह संदर्भ का पुनः उपयोग करते हैं। वर्कर कैटलॉग से बाहर के टूल अनुपलब्ध रहते हैं; रिक्त परिणाम बिना किसी टूल के चलता है।
  • निर्मित क्रेडेंशियल, संग्रहण में हैश किए गए। प्रत्येक डिस्पैच एक वर्कर क्रेडेंशियल बनाता है; Gateway केवल उसका हैश संग्रहीत करता है। क्रेडेंशियल रोटेशन और स्वामी-एपोक फ़ेंसिंग सुनिश्चित करते हैं कि प्रत्येक सेशन में अधिकतम एक सक्रिय स्वामी हो — दोबारा कनेक्ट होने वाले पुराने वर्कर को फ़ेंस किया जाता है, कभी मर्ज नहीं किया जाता।
  • होस्ट-की पिनिंग। प्रोविज़न के समय प्रदाता को बॉक्स की SSH होस्ट कुंजी उपलब्ध करानी होगी; बूटस्ट्रैप सख्त पिनिंग के साथ कनेक्ट होता है और इसके बिना सुरक्षित रूप से विफल हो जाता है।
  • बॉक्स पर कोई स्थायी मॉडल, फ़ोर्ज या क्लाउड क्रेडेंशियल नहीं। मॉडल प्रमाणीकरण Gateway पर रहता है (इनफ़रेंस {provider, model} संदर्भ द्वारा जाता है), वर्कस्पेस git कमिट फ़ोर्ज क्रेडेंशियल के बिना लिखे जाते हैं और सेटअप से पहले इंस्टेंस भूमिका के लिए Crabbox AWS लीज़ मेटाडेटा का आधिकारिक रूप से सत्यापन किया जाता है। सेटअप कमांड भी क्रेडेंशियल-मुक्त रखें।
  • प्रदाता के स्वामित्व वाला ईग्रेस। रिवर्स टनल प्रत्यक्ष मॉडल एक्सेस की OpenClaw की आवश्यकता समाप्त कर देती है, लेकिन OpenClaw प्रदाता फ़ायरवॉल को फिर से नहीं लिखता। कार्य के लिए आवश्यक होने पर वर्कर प्रदाता में आउटबाउंड ट्रैफ़िक प्रतिबंधित करें।
  • टिकाऊ, ठीक-एक-बार ट्रांसक्रिप्ट। वर्कर सेशन के लीफ़ के विरुद्ध तुलना-और-स्वैप प्रोटोकॉल के माध्यम से ट्रांसक्रिप्ट बैच कमिट करता है; पुराना बेस सशुल्क आउटपुट को डुप्लिकेट या रीबेस करने के बजाय रन को तुरंत रोक देता है।

समस्या निवारण

  • sessions.dispatch एक अज्ञात मेथड है — कोई cloudWorkers.profiles कॉन्फ़िगर नहीं है, या कॉलर के पास operator.admin नहीं है।
  • “क्लाउड वर्कर टर्न के लिए OpenClaw रनटाइम आवश्यक है” — ऐसा मॉडल चुनें जिसका कॉन्फ़िगर किया गया रनटाइम OpenClaw हो। claude-cli जैसे बाहरी CLI रनटाइम वर्कर इनफ़रेंस का समर्थन नहीं करते।
  • “वर्कर बूटस्ट्रैप के लिए लीज़ किए गए होस्ट पर Node.js आवश्यक है”settings.setup में Node इंस्टॉल जोड़ें (ऊपर देखें)।
  • AWS इंस्टेंस-भूमिका सत्यापन विफल होता हैaws.instanceProfile (और यदि सेट हो, तो CRABBOX_AWS_INSTANCE_PROFILE) साफ़ करें। Crabbox 0.38.1 या नया संस्करण इंस्टॉल करें; पुराने बाइनरी AWS प्रवेश के लिए आवश्यक आधिकारिक providerMetadata.instanceProfileAttached अनुबंध उपलब्ध नहीं कराते।
  • प्रदाता त्रुटि के साथ डिस्पैच विफल होता है — प्लेसमेंट रिकॉर्ड और environments.list अंतिम त्रुटि को रखते हैं, जिसमें सेटअप/बूटस्ट्रैप stderr टेल शामिल है। विफलता पर बॉक्स नष्ट कर दिए जाते हैं, इसलिए यह टेल प्राथमिक फ़ोरेंसिक साक्ष्य है।
  • डिस्पैच करते समय क्लाइंट टाइमआउटopenclaw gateway call का डिफ़ॉल्ट टाइमआउट 10s है; --timeout उदारतापूर्वक पास करें (दोनों स्थितियों में डिस्पैच सर्वर की ओर चलता रहता है, और प्रोविज़निंग के दौरान पुनः प्रयास को session cannot dispatch from placement provisioning के साथ अस्वीकार कर दिया जाता है)।
  • 2026.7.2 बीटा से अपग्रेड करने के बाद वर्कर पुनः प्राप्त किया गया — उन बीटा संस्करणों में पुराने वर्कर लॉन्च अनुबंध का उपयोग किया गया था। पुनः आरंभ होने पर OpenClaw किसी निष्क्रिय असंगत वर्कर को नष्ट करता है, सेशन और वर्कस्पेस बनाए रखता है, प्लेसमेंट को पुनः प्राप्त के रूप में चिह्नित करता है और अगले डिस्पैच या टर्न पर वर्तमान वर्कर प्रोविज़न करता है। यदि बीटा वर्कर को आरंभ होते समय बाधित किया गया हो, तो सफ़ाई के बाद उसे विफल चिह्नित किया जाता है; वर्तमान अनुबंध के साथ उसे प्रोविज़न करने के लिए डिस्पैच का पुनः प्रयास करें।
  • क्लाउड वर्कस्पेस टकराव सूचना — टर्न पूरा हुआ और प्रत्येक सूचीबद्ध पथ का स्थानीय संस्करण रखा गया। क्लाउड संस्करण का निरीक्षण करने या उसे अपनाने के लिए सूचना में दिए गए स्टेज्ड-रेफ़ कमांड का उपयोग करें; गैर-टकराव वाले परिवर्तनों के लिए पुनः प्रयास आवश्यक नहीं है, क्योंकि वे पहले ही लागू किए जा चुके हैं।
  • “पिछले क्लाउड टर्न के वर्कस्पेस परिणाम का मिलान अभी भी जारी है” — Gateway ने पिछले परिणाम के टिकाऊ फ़ेंस की थोड़ी देर प्रतीक्षा की और सेशन क्लेम प्राप्त नहीं कर सका। मिलान पूरा होने की प्रतीक्षा करें, फिर टर्न का पुनः प्रयास करें; Gateway को पुनः आरंभ करना सुरक्षित है क्योंकि पुनर्प्राप्ति मृत वर्कर को पुनः प्राप्त करने से पहले स्टेज किए गए परिणामों को सुरक्षित रखती है।
  • लीज़ रखरखावcrabbox list --provider <backend> सक्रिय लीज़ दिखाता है; crabbox stop --provider <backend> --id <lease> किसी लीज़ को मैन्युअल रूप से रिलीज़ करता है। निष्क्रिय लीज़ प्रोफ़ाइल के idleTimeout पर समाप्त हो जाती हैं।

संबंधित