Promise.all, while और if, का उपयोग करें।
इसमें कोई ग्राफ़ DSL और कोई अलग वर्कफ़्लो प्रारूप नहीं है। प्रोग्राम ही ऑर्केस्ट्रेशन है। Swarm उस प्रोग्राम में प्रतीक्षा-योग्य कलेक्टर चिल्ड्रन, संरचित परिणाम, सीमित समवर्ती निष्पादन और प्रगति रिपोर्टिंग जोड़ता है।
Swarm सक्षम करें
अनुशंसित तरीका Control UI में Settings → Labs → Swarm है। टॉगल तुरंत प्रभावी होता है और आपके कॉन्फ़िगरेशन मेंtools.swarm.enabled लिखता है।
आप openclaw.json में भी सीधे Swarm सक्षम कर सकते हैं:
संख्यात्मक मान धनात्मक पूर्णांक होने चाहिए। OpenClaw
maxConcurrent को 1–1000, maxChildrenPerGroup को 1–10000,
maxTotalPerGroup को 1–100000 और waitTimeoutSecondsMax को
1–86400 तक सीमित करता है।
आप किसी एक कॉन्फ़िगर किए गए एजेंट के लिए
agents.list[].tools.swarm से Swarm को ओवरराइड कर सकते हैं। प्रति-एजेंट ऑब्जेक्ट शीर्ष-स्तरीय
tools.swarm ऑब्जेक्ट के ऊपर मर्ज होता है।
आवश्यकताएँ
agents.run, phase और log गेस्ट ग्लोबल्स के लिए Swarm और
OpenClaw Code Mode दोनों आवश्यक हैं:
sessions_spawn तक प्रभावी पहुँच भी होनी चाहिए। टूल प्रोफ़ाइल,
अनुमति/अस्वीकृति नीति, प्रदाता नियम और सैंडबॉक्स नीति उस टूल को हटा सकते हैं।
यदि कोई स्क्रिप्ट रिपोर्ट करती है कि sessions_spawn
अनुपलब्ध है, तो Code Mode सक्रियण और
उप-एजेंट देखें।
defaultAgentId और प्रति-रन agentId मानों में अनुरोधकर्ता की
subagents.allowAgents नीति द्वारा अनुमत कॉन्फ़िगर किए गए लक्ष्य का नाम होना चाहिए। OpenClaw किसी अन्य एजेंट पर फ़ॉलबैक करने के बजाय
अज्ञात या अस्वीकृत लक्ष्य को अस्वीकार करता है।
Swarm स्क्रिप्ट लिखें
Swarm सक्षम होने पर Code Mode यह गेस्ट API उपलब्ध कराता है:schema के बिना, agents.run() चाइल्ड के अंतिम टेक्स्ट में रिज़ॉल्व होता है। JSON Schema के साथ, यह चाइल्ड के
structured_output टूल के माध्यम से सबमिट किए गए मान में रिज़ॉल्व होता है। विफल, समाप्त किया गया, टाइमआउट हुआ या स्कीमा-अमान्य चाइल्ड
SwarmAgentError के साथ प्रॉमिस अस्वीकार करता है। Code Mode के भीतर
API.read("agents.d.ts") से सटीक जनरेटेड घोषणाएँ और संक्षिप्त ऑर्केस्ट्रेशन मुहावरे पढ़ें।
डैशबोर्ड और साइडबार में पहचानने योग्य चाइल्ड नाम के लिए label का उपयोग करें। उस चाइल्ड के
शुरू होने से ठीक पहले कोई चरण प्रकाशित करने के लिए विकल्पों में phase का उपयोग करें, या जब कई चिल्ड्रन एक ही चरण से संबंधित हों तब
phase() कॉल करें।
log() एक छोटा प्रगति नोट प्रकाशित करता है। प्रगति कॉल फ़ायर-एंड-फ़ॉरगेट होती हैं;
UI अनुपलब्ध होने पर वे स्क्रिप्ट को विलंबित नहीं करतीं।
संरचित परिणामों के साथ समानांतर रूप से काम फैलाएँ
यह उदाहरण प्रत्येक विषय के लिए एक शोधकर्ता लॉन्च करता है, उन सभी की प्रतीक्षा करता है, फिर एक अंतिम चाइल्ड से उनकी संरचित रिपोर्टों का संश्लेषण करने को कहता है:Promise.all कार्य फैलाने और परिणाम समेटने की सीमा है। OpenClaw समूह के लिए
अधिकतम maxConcurrent चिल्ड्रन शुरू करता है और शेष को सबमिशन
क्रम में कतारबद्ध करता है।
निर्णय गेट पर लूप चलाएँ
जब प्रत्येक पास यह तय करता है कि एक और पास आवश्यक है या नहीं, तब सीमितwhile लूप का उपयोग करें:
maxTotalPerGroup अंतिम सुरक्षा उपाय है,
स्पष्ट समाप्ति शर्त का विकल्प नहीं।
सबसे पहले समाप्त होने वाले चाइल्ड को प्रोसेस करें
agents.run() एक सामान्य प्रॉमिस लौटाता है, इसलिए Promise.race पहले
Code Mode चाइल्ड पर प्रतिक्रिया कर सकता है। निम्न-स्तरीय टूल कॉल करने वाले हार्नेस के लिए,
agents_wait वही प्रथम-पूर्णता सीमा प्रदान करता है: कम-से-कम एक अनुरोधित रन पूरा होते ही
या सीमित टाइमआउट समाप्त होने पर यह लौटता है।
पूर्ण ड्रेन लूप के लिए अन्य हार्नेस से Swarm का उपयोग करें देखें।
कलेक्टर चिल्ड्रन का व्यवहार
कलेक्टर चिल्ड्रन सामान्य पृथक उप-एजेंट सत्र होते हैं, जिनका पूर्णता पथ अलग होता है। वे पैरेंट सत्र में उत्तर की घोषणा करने या उसे निर्देशित करने के बजाय पैरेंट द्वारा प्रतीक्षा किए जाने के लिए एक टिकाऊ कलेक्टर परिणाम लिखते हैं। लक्ष्य एजेंट इस क्रम में रिज़ॉल्व होता है:agentIdस्पॉन याagents.run()कॉल पर।tools.swarm.defaultAgentId।- अनुरोध करने वाला एजेंट।
worker एजेंट id शामिल नहीं है; इसे डिफ़ॉल्ट के रूप में नामित करने से पहले कॉन्फ़िगर करें।
उस वर्कर को उसके प्रति-एजेंट कॉन्फ़िगरेशन में tools.swarm: false के साथ सुदृढ़ करें, ताकि
उसे स्पॉन किया जा सके लेकिन वह अपने शीर्ष-स्तरीय सत्रों से Swarm शुरू न कर सके:
structured_output टूल जोड़ता है और
उसके पेलोड को दिए गए JSON Schema के विरुद्ध सत्यापित करता है। अमान्य या अनुपस्थित पेलोड को सुधार के लिए एक संकेत मिलता है। यदि पुनः प्रयास भी
सत्यापित नहीं होता, तो कलेक्टर पूर्णता चाइल्ड का कच्चा टेक्स्ट बनाए रखती है,
structured को सेट नहीं करती और schemaError शामिल करती है। निम्न-स्तरीय agents_wait
परिणाम स्पष्ट रिकवरी लॉजिक के लिए उन फ़ील्डों को उपलब्ध कराता है।
चिल्ड्रन लीफ़ होते हैं
Swarm चिल्ड्रन डिफ़ॉल्ट रूप से लीफ़ होते हैं। सार्वभौमिकagents.defaults.subagents.maxSpawnDepth गार्ड, 1 की डिफ़ॉल्ट गहराई पर किसी चाइल्ड को
अपने चिल्ड्रन स्पॉन करने से रोकता है। सामान्य ऑर्केस्ट्रेशन मुहावरा चाइल्ड से और काम स्पॉन करना नहीं, बल्कि
काम को पैरेंट को लौटाना है:
agents.defaults.subagents.maxSpawnDepth के माध्यम से ऑप्ट-इन करना होता है और Swarm के लिए इन्हें हतोत्साहित किया जाता है।
समूह सीमाएँ, बजट और अवलोकनीयता सभी समतल कलेक्टर समूह मानकर चलते हैं।
प्रत्येक चाइल्ड का एक प्रवेश स्वामी होता है। घोषणा और इंटरैक्टिव चिल्ड्रन
agents.defaults.subagents.maxChildrenPerAgent (डिफ़ॉल्ट 5) का उपयोग करते हैं और
कलेक्टर चिल्ड्रन को नहीं गिनते। कलेक्टर चिल्ड्रन केवल maxChildrenPerGroup और
maxTotalPerGroup का उपयोग करते हैं; वे प्रति-सत्र चाइल्ड बजट का उपभोग नहीं करते। स्पॉन
गहराई गार्ड फिर भी दोनों मोड पर लागू होता है।
प्रवेश के बाद, maxConcurrent से अधिक चिल्ड्रन अपने Swarm
समूह के भीतर FIFO क्रम में, वैश्विक उप-एजेंट लेन के अंदर कतारबद्ध होते हैं। ये समवर्ती निष्पादन परतें
काम को अस्वीकार करने के बजाय कतारबद्ध करती हैं। किसी भी समूह सीमा को पार करने वाला कलेक्टर स्पॉन
त्रुटि में संबंधित कॉन्फ़िग कुंजी के साथ अस्वीकार कर दिया जाता है।
Swarm का अवलोकन करें
Swarm सक्रिय रहने के दौरान Control UI में पैरेंट सत्र का डैशबोर्ड खोलें। Swarm विजेट प्रत्येक सक्रिय कलेक्टर समूह को हर चाइल्ड के लिए एक बिंदु के रूप में प्रस्तुत करता है, जिसमें कतारबद्ध, चल रहा, पूर्ण या विफल स्थिति होती है। लेबल बिंदुओं के टूलटिप में दिखाई देते हैं, इसलिए छोटे, स्थिर लेबल बड़े Swarm को पढ़ना आसान बनाते हैं। सत्र साइडबार सामान्य पैरेंट/चाइल्ड वृक्ष बनाए रखता है। Swarm पदानुक्रम खोए बिना किसी कलेक्टर चाइल्ड का निरीक्षण करने या उसका ट्रांसक्रिप्ट खोलने के लिए पैरेंट पंक्ति को विस्तृत करें। कलेक्टर परिणाम अपने समूह के संग्रहित होने तक प्रतीक्षा-योग्य रहते हैं। प्रत्येक सदस्य की प्रतिधारण समय-सीमा पूरी होने के बाद, OpenClaw समूह के चिल्ड्रन को एक बैच के रूप में संग्रहित करता है, ताकि पूर्ण हुए Swarm लाइव सत्र वृक्ष में न रहें।अन्य हार्नेस से Swarm का उपयोग करें
आप OpenClaw Code Mode के बिना Swarm का उपयोग कर सकते हैं। इसके मुख्य टूल हार्नेस-स्वतंत्र हैं: कलेक्टर चाइल्ड कोsessions_spawn({ collect: true }) से शुरू करें और सीमित agents_wait
कॉल से उनसे परिणाम प्राप्त करें।
Codex Code Mode योग्य डायनेमिक OpenClaw टूल को स्वचालित रूप से
tools.* के अंतर्गत उपलब्ध कराता है। यह OpenClaw के QuickJS गेस्ट API का उपयोग नहीं करता या
tools.codeMode की आवश्यकता नहीं होती, लेकिन tools.swarm को फिर भी सक्षम होना चाहिए। Codex हार्नेस
agents_wait कॉल पूरे 600-सेकंड टाइमआउट का समर्थन करते हैं। इस पैटर्न का उपयोग करें:
agents_wait कॉल 1–1000 रन आईडी स्वीकार करता है। यह लौटाता है:
pending रिक्त न हो जाए। कलेक्टर मोड नेटिव
OpenClaw सब-एजेंट का समर्थन करता है; यह ACP रनटाइम, थ्रेड बाइंडिंग, दृश्यमान
सेशन या स्थायी सेशन मोड का समर्थन नहीं करता।
सीमाएँ और रोडमैप
Swarm v1 एकल-चरण कलेक्टर चाइल्ड चलाता है; नियोजितagents.session() API
स्टेटफुल बहु-चरण वर्कर जोड़ेगा। चाइल्ड वर्तमान में स्थानीय
Gateway की सब-एजेंट लेन पर चलते हैं; क्लाउड प्लेसमेंट को एक स्पष्ट स्पॉन
विकल्प के रूप में जोड़ने की योजना है। सहेजी गई वर्कफ़्लो परिभाषाएँ और ग्राफ़ DSL, Swarm की
वर्तमान दिशा का हिस्सा नहीं हैं।
संबंधित
- Code Mode QuickJS गेस्ट रनटाइम और सक्रियण नियमों के लिए
- सब-एजेंट चाइल्ड नीति, आइसोलेशन और सेशन व्यवहार के लिए
- मल्टी-एजेंट सैंडबॉक्स टूल प्रति-एजेंट प्रतिबंधों के लिए
- टूल अवलोकन टूल प्रोफ़ाइल और नीति रूटिंग के लिए