exec टूल के माध्यम से शेल कमांड चलाता है और लंबे समय तक चलने वाले कार्यों को मेमोरी में रखता है। process टूल उन बैकग्राउंड सत्रों को प्रबंधित करता है।
exec टूल
पैरामीटर:
व्यवहार:
- फ़ोरग्राउंड रन सीधे आउटपुट लौटाते हैं।
- बैकग्राउंड में भेजे जाने पर (स्पष्ट रूप से या
yieldMsटाइमआउट के माध्यम से), टूलstatus: "running"+sessionIdऔर आउटपुट का एक छोटा अंतिम अंश लौटाता है। - बैकग्राउंड और
yieldMsरनtools.exec.timeoutSecondsइनहेरिट करते हैं, जब तक कॉल में स्पष्टtimeoutन दिया गया हो। - सत्र को पोल या साफ़ किए जाने तक आउटपुट मेमोरी में रहता है।
- यदि
processटूल की अनुमति नहीं है, तोexecरन सिंक्रोनस रूप से चलता है औरyieldMs/backgroundको अनदेखा करता है। - शुरू किए गए exec कमांड को संदर्भ-संवेदी शेल/प्रोफ़ाइल नियमों के लिए
OPENCLAW_SHELL=execमिलता है। - अब शुरू होने वाले लंबे कार्य के लिए: इसे एक बार शुरू करें और कमांड के आउटपुट देने या विफल होने पर स्वचालित पूर्णता वेक (सक्षम होने पर) पर निर्भर रहें।
- यदि स्वचालित पूर्णता वेक उपलब्ध नहीं है, या बिना आउटपुट के सफलतापूर्वक समाप्त होने वाले कमांड की मौन-सफलता की पुष्टि चाहिए, तो
processसे पोल करें। - रिमाइंडर या विलंबित फ़ॉलो-अप का अनुकरण
sleepलूप या बार-बार पोल करके न करें — भविष्य के कार्य के लिए Cron का उपयोग करें।
एनवायरनमेंट ओवरराइड
कॉन्फ़िगरेशन (एनवायरनमेंट ओवरराइड की तुलना में वरीय)
चाइल्ड प्रोसेस ब्रिजिंग
exec/process टूल के बाहर लंबे समय तक चलने वाले चाइल्ड प्रोसेस (CLI का पुनः शुरू होना, Gateway सहायक) शुरू करते समय, चाइल्ड-प्रोसेस ब्रिज सहायक जोड़ें, ताकि समाप्ति सिग्नल आगे भेजे जाएँ और निकास/त्रुटि पर लिसनर अलग हो जाएँ। इससे systemd पर अनाथ प्रोसेस बनने से बचते हैं और सभी प्लेटफ़ॉर्म पर शटडाउन सुसंगत रहता है।process टूल
क्रियाएँ:
टिप्पणियाँ:
- केवल बैकग्राउंड सत्र सूचीबद्ध/संग्रहित होते हैं — केवल मेमोरी में, डिस्क पर नहीं। प्रोसेस पुनः शुरू होने पर सत्र खो जाते हैं।
- लाइव बैकग्राउंड सत्र सहयोगात्मक होस्ट निलंबन और सुरक्षित Gateway पुनः आरंभ को तब तक रोकता है, जब तक प्रोसेस स्वामी उसके वास्तविक निकास की पुष्टि न कर दे।
process removeसमाप्ति का अनुरोध करने के तुरंत बाद चल रहे सत्र को छिपा सकता है; निकास की पुष्टि होने तक निलंबन और पुनः आरंभ अवरुद्ध रहते हैं।- सत्र लॉग चैट इतिहास में केवल तभी सहेजे जाते हैं, जब आप
process poll/logचलाते हैं और टूल परिणाम रिकॉर्ड किया जाता है। processप्रत्येक एजेंट के दायरे में है; यह केवल उस एजेंट द्वारा शुरू किए गए सत्र देखता है।- स्वचालित पूर्णता वेक उपलब्ध न होने पर स्थिति, लॉग या पूर्णता पुष्टि के लिए
poll/logका उपयोग करें। - इंटरैक्टिव CLI को पुनर्प्राप्त करने से पहले
logका उपयोग करें, ताकि वर्तमान ट्रांसक्रिप्ट, stdin स्थिति और इनपुट-प्रतीक्षा संकेत एक साथ दिखाई दें। - जब इनपुट या हस्तक्षेप की आवश्यकता हो, तब
write/send-keys/submit/paste/killका उपयोग करें। process listमें त्वरित स्कैन के लिए व्युत्पन्नname(कमांड क्रिया + लक्ष्य) शामिल होता है।process list,poll, औरlogकेवल तभीwaitingForInputरिपोर्ट करते हैं, जब सत्र में अभी भी लिखने योग्य stdin हो और वह इनपुट-प्रतीक्षा सीमा से अधिक समय तक निष्क्रिय रहा हो (डिफ़ॉल्ट 15000 ms,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS)।process logपंक्ति-आधारितoffset/limitका उपयोग करता है। दोनों को छोड़ने पर, यह पेजिंग संकेत के साथ अंतिम 200 पंक्तियाँ लौटाता है। जबoffsetसेट हो औरlimitन हो, तो यहoffsetसे अंत तक लौटाता है (200 तक सीमित नहीं)।pollकाtimeoutलौटने से पहले उतने मिलीसेकंड तक प्रतीक्षा करता है; 30000 से अधिक मान 30000 तक सीमित किए जाते हैं।- पोलिंग माँग पर स्थिति जानने के लिए है, प्रतीक्षा-लूप शेड्यूलिंग के लिए नहीं। यदि कार्य बाद में होना चाहिए, तो Cron का उपयोग करें।