---
read_when: You want agent sessions to run on ephemeral cloud machines instead of the Gateway host, or you are configuring cloudWorkers profiles.
sidebarTitle: Cloud Workers
status: active
summary: 'अस्थायी क्लाउड मशीनों पर सत्र भेजें: प्रोविज़निंग, वर्कर रनटाइम, प्रॉक्सी के माध्यम से इन्फ़रेंस और परिणामों की स्ट्रीमिंग'
title: क्लाउड वर्कर्स
x-i18n:
    generated_at: "2026-07-16T14:36:54Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: c20b3b4f1408ed3ef0beb155a207f99476323cf67eba7b44931eec32c79e52be
    source_path: gateway/cloud-workers.md
    workflow: 16
---

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

काम पूरा होने पर (या बॉक्स के बंद हो जाने पर), मशीन हटा दी जाती है। टिकाऊ स्थिति — ट्रांसक्रिप्ट, वर्कस्पेस कमिट, प्लेसमेंट रिकॉर्ड — Gateway के पास रहती है।

<Note>
क्लाउड वर्कर वैकल्पिक हैं और प्रोफ़ाइल कॉन्फ़िगर किए जाने तक दिखाई नहीं देते। बिना कॉन्फ़िगरेशन वाले इंस्टॉल में कोई नया RPC, कॉन्फ़िगरेशन या UI दिखाई नहीं देता।
</Note>

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

| विषय                                                 | स्थान                                                                         |
| ------------------------------------------------------- | -------------------------------------------------------------------------------- |
| एजेंट लूप + टूल (`exec`, `read`, `write`, `edit`, …) | क्लाउड वर्कर बॉक्स                                                                 |
| मॉडल इन्फ़रेंस और प्रोवाइडर क्रेडेंशियल                | Gateway (`{provider, model}` संदर्भ द्वारा प्रॉक्सी किया गया)                               |
| ट्रांसक्रिप्ट (टिकाऊ, सत्र स्टोर)                     | Gateway                                                                          |
| साइडबार में लाइव स्ट्रीमिंग                         | Gateway फ़ैनआउट, जिसे वर्कर की पुनः चलाने योग्य इवेंट स्ट्रीम से फ़ीड मिलता है                      |
| वर्कस्पेस git इतिहास                                   | बॉक्स पर बिना क्रेडेंशियल के बनाया गया; Gateway कमिट अपनाता है और पुश/PR का स्वामी होता है |

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

## आवश्यकताएँ

- एक वर्कर प्रोवाइडर Plugin। बंडल किया गया `crabbox` Plugin [Crabbox](https://github.com/openclaw/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` के अंतर्गत एक प्रोफ़ाइल जोड़ें:

```json
{
  "cloudWorkers": {
    "profiles": {
      "aws": {
        "provider": "crabbox",
        "install": "bundle",
        "settings": {
          "provider": "aws",
          "class": "standard",
          "ttl": "8h",
          "idleTimeout": "45m",
          "setup": "test -x /usr/bin/node || (curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs)"
        }
      }
    }
  }
}
```

प्रोफ़ाइल फ़ील्ड:

| कुंजी        | अर्थ                                                                                                                                                                                                                                        |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `provider` | किसी Plugin द्वारा पंजीकृत वर्कर प्रोवाइडर आईडी (बंडल किए गए Plugin के लिए `crabbox`)।                                                                                                                                                                  |
| `install`  | `bundle` (डिफ़ॉल्ट) चल रहे Gateway का बिल्ड भेजता है; `npm` पिन की गई इंटीग्रिटी के साथ जारी किए गए Gateway का सटीक संस्करण इंस्टॉल करता है। `npm` के लिए Gateway का पैकेज की गई रिलीज़ से चलना आवश्यक है।                                                      |
| `settings` | प्रोवाइडर के स्वामित्व वाला JSON। crabbox के लिए: `provider` (बैकएंड), `class` (मशीन क्लास), `ttl`, `idleTimeout` (Go अवधियाँ), वैकल्पिक `setup` और पूर्ण `binary` पथ। OpenClaw इन लीज़ के लिए सार्वजनिक SSH को अनिवार्य करता है और प्रबंधित Tailscale को अक्षम करता है। |
| `lifetime` | वैकल्पिक संग्रहीत नीति (`idleTimeoutMinutes`, `maxLifetimeMinutes`)।                                                                                                                                                                           |

### सेटअप कमांड

`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 रनटाइम के लिए कॉन्फ़िगर किए गए सत्र डिस्पैच नहीं किए जा सकते।

```bash
openclaw gateway call sessions.create \
  --params '{"key":"agent:main:big-refactor","worktree":true,"cwd":"/path/to/repo","worktreeName":"big-refactor"}'

openclaw gateway call sessions.dispatch \
  --timeout 1500000 \
  --params '{"key":"agent:main:big-refactor","profileId":"aws"}'
```

`sessions.dispatch` स्थानीय टर्न प्रवेश बंद करता है, सक्रिय कार्य के पूरा होने की प्रतीक्षा करता है, लीज़ का प्रावधान करता है, सेटअप चलाता है, OpenClaw को बूटस्ट्रैप करता है, वर्कस्पेस सिंक करता है, और प्लेसमेंट के `active` वर्कर स्वामित्व तक पहुँचने पर लौटता है। पहले डिस्पैच के लिए कई मिनट का समय रखें; जहाँ प्रोवाइडर समर्थन करता है, वहाँ लीज़ और इंस्टॉल कैश किए जाते हैं। इसके बाद सत्र से सामान्य रूप से बातचीत करें — टर्न स्वचालित रूप से वर्कर को रूट किए जाते हैं।

पूर्ण हो चुके वर्कर टर्न, टर्न क्लेम जारी होने से पहले पात्र और आकार-सीमित वर्कस्पेस फ़ाइलों को सत्र के प्रबंधित वर्कट्री में वापस समन्वित करते हैं। टर्मिनल वर्कर इवेंट को स्वीकार किए जाने से पहले वह एक टिकाऊ लंबित-परिणाम अवरोध बनाता है, ताकि Gateway पुनरारंभ से होने वाली रिकवरी दूरस्थ वर्कस्पेस को वापस खींच सके, इससे पहले कि पुराने टर्न की सफ़ाई उसके स्वामी को नष्ट कर सके। समन्वयन वर्कर मैनिफ़ेस्ट को प्रमाणित करता है और किसी भी पक्ष को अधिलेखित करने के बजाय स्थानीय विचलन पर रुक जाता है। फ़ाइलें बदलने से पहले, Gateway अपने SQLite स्थिति डेटाबेस में सीमित रोलबैक जर्नल संग्रहीत करता है; बाधित Gateway प्रक्रिया के बाद पुनः प्रयास उस जर्नल को रिकवर करता है। वर्कस्पेस परिणाम Git फ़ाइल सिमैंटिक्स का उपयोग करते हैं: नियमित फ़ाइलें, एक्ज़ीक्यूटेबल बिट, सिमलिंक, जोड़, बदलाव और हटाव बनाए रखे जाते हैं, जबकि खाली डायरेक्टरी और अन्य डायरेक्टरी मोड नहीं रखे जाते। दूरस्थ कमिट ऑब्जेक्ट बनाए नहीं रखे जाते; परिणामी फ़ाइल बदलाव सामान्य समीक्षा और कमिट के लिए प्रबंधित वर्कट्री में रहते हैं।

जब काम पूरा हो जाए और कोई टर्न न चल रहा हो, तो सत्र मेनू खोलें और **क्लाउड वर्कर रोकें…** चुनें। Gateway वातावरण नष्ट करने से पहले एक अंतिम वर्कस्पेस समन्वयन करता है। जो प्लेसमेंट पहले से `draining` या `reconciling` में है, उसका विघटन पूरा हो रहा है; सत्र हटाने से पहले उसके बैज के `reclaimed` होने की प्रतीक्षा करें।

खराब या अनियंत्रित संलग्न वर्कर के लिए, ऑपरेटर अंतिम उपाय के रूप में `{ "force": true }` के साथ `environments.destroy` कॉल कर सकता है। बलपूर्वक विघटन प्लेसमेंट को टिकाऊ रूप से विफल चिह्नित करता है और वातावरण नष्ट करने से पहले किसी भी असमन्वित दूरस्थ परिणाम को छोड़ देता है।

समतुल्य प्रशासनिक RPC यह है:

```bash
openclaw gateway call sessions.reclaim \
  --timeout 600000 \
  --params '{"key":"agent:main:big-refactor"}'
```

प्लेसमेंट एक टिकाऊ स्टेट मशीन (`local → requested → provisioning → syncing → starting → active`) से होकर गुजरता है, इसलिए डिस्पैच के बीच Gateway पुनरारंभ होने पर मशीनें लीक होने के बजाय समन्वयन होता है। विफल मॉडल टर्न सक्रिय प्लेसमेंट को पुनः प्रयास के लिए उपलब्ध रखता है। यदि इनबाउंड वर्कस्पेस समन्वयन विफल होता है, तो वर्कर भी सक्रिय रहता है ताकि ऑपरेटर स्थानीय टकराव हल कर सके और दूरस्थ परिणाम खोए बिना पुनः प्रयास कर सके; इसके विपरीत जीवनचक्र विफलताएँ प्लेसमेंट को त्रुटि या पुनः प्राप्त स्थिति में ले जाती हैं और उनका डायग्नोस्टिक अंतिम अंश सुरक्षित रखती हैं।

## सुरक्षा मॉडल

- **बंद वर्कर इनग्रेस।** वर्कर टनल किए गए सॉकेट पर बंद मेथड अनुमतिसूची वाले समर्पित प्रोटोकॉल से संचार करते हैं — कोई वर्कर ऑपरेटर RPC कॉल नहीं कर सकता।
- **निर्मित क्रेडेंशियल, स्थायी संग्रह में हैश किए गए।** प्रत्येक डिस्पैच एक वर्कर क्रेडेंशियल बनाता है; 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` के साथ अस्वीकार कर दिया जाता है)।
- **लीज़ रखरखाव** — `crabbox list --provider <backend>` सक्रिय लीज़ दिखाता है; `crabbox stop --provider <backend> --id <lease>` किसी एक को मैन्युअल रूप से रिलीज़ करता है। निष्क्रिय लीज़ प्रोफ़ाइल के `idleTimeout` पर समाप्त हो जाती हैं।

## संबंधित

- [सैंडबॉक्सिंग](/hi/gateway/sandboxing) — स्थानीय टूल निष्पादन के प्रभाव-क्षेत्र को कम करना
- [सेशन CLI](/hi/cli/sessions) — संग्रहीत सेशन का निरीक्षण करना
- [कॉन्फ़िगरेशन संदर्भ](/hi/gateway/configuration-reference)
