आपके एजेंट पीछे प्रोसेस छोड़ जाते हैं।
AgentsRoom उन्हें ढूँढ निकालता है।
AI कोडिंग एजेंट हर टूल कॉल पर आपकी मशीन में एक असली सिस्टम प्रोसेस शुरू करता है। ज़्यादातर सेकंडों में खत्म हो जाते हैं। कुछ कभी नहीं, और मशीन की मेमोरी भर जाने के लिए ऐसे मुट्ठी भर प्रोसेस का एक साथ चलना ही काफ़ी है।
प्रोसेस गार्ड आपके एजेंट के चाइल्ड प्रोसेस स्कैन करता है, जो आपकी मेमोरी खा रहे हैं उन्हें चिह्नित करता है, चाहे अकेले-अकेले या पूरे झुंड की तरह, ज़िम्मेदार एजेंट का नाम बताता है और आपको उसे बीच में रोकने देता है। आपकी पीठ पीछे कुछ भी बंद नहीं किया जाता।
गार्ड असल में क्या देखता है: एक एजेंट ने जो प्रोसेस शुरू किए, और उनमें से कौन-से काम करना बंद कर चुके हैं।
AI कोडिंग एजेंट एक प्रोसेस नहीं होता। वह जो भी टूल कॉल करता है, उससे आपकी मशीन पर एक असली प्रोसेस शुरू होता है: एक सर्च, एक बिल्ड, एक टाइप चेक, एक टेस्ट रन, एक स्क्रिप्ट। इसे समानांतर चल रहे कुछ एजेंट से गुणा कीजिए, पूरे दिन के हिसाब से, और सैकड़ों प्रोसेस पैदा होकर दफ़्न हो जाते हैं, बिना आपके एक भी देखे।
इनमें से लगभग सब खत्म हो जाते हैं। समस्या वे हैं जो नहीं होते। ऐसा सर्च जिसका पैटर्न रेगेक्स इंजन को फोड़ देता है, न क्रैश होता है न धीमा पड़ता है: वह मेमोरी लेता जाता है, कंप्रेस्ड मेमोरी में धकेल दिया जाता है, और फिर बाकी ज़िंदगी पेज फ़ॉल्ट झेलते हुए बिताता है, जबकि कर्नेल उसके लिए कई GB स्वैप करता रहता है। वह कभी खत्म नहीं होगा। उसे कभी कोई मारेगा भी नहीं। और जिस एजेंट ने उसे शुरू किया था अगर वह बंद हो जाए, तो प्रोसेस अनाथ बन जाता है, जिसका मशीन पर अब कोई ज़िम्मेदार नहीं।
इसीलिए सुस्ती चुपचाप चली आती है। कोई एक नाटकीय पल नहीं होता, पूरे कार्यदिवस में धीरे-धीरे जमाव होता है, और यही वह आकार है जिसमें लोग गलत चीज़ को दोष देते हैं: गर्मी, बहुत सारे एजेंट, ऐप में मेमोरी लीक। जिस सेशन को हमने मापा, उसमें ऐप खुद 91 प्रोसेस में 2.8 GB ले रहा था और आठों एजेंट CLI मिलकर 1.6 GB। दोनों में से कोई भी समस्या नहीं था।
प्रोसेस गार्ड सुरक्षा जाल है। एजेंट जो पीछे छोड़ जाते हैं उस पर यह नज़र रखता है, बताता है कि कौन-सा अटका है और किसने उसे शुरू किया, और आपको उसे खत्म करने देता है। मूल कारण बदलते रहेंगे: कोई और टूल, कोई और पैटर्न, कोई और प्रोवाइडर। जाल को बदलने की ज़रूरत नहीं।
AI एजेंट चलाने वाली मशीन धीमी क्यों पड़ जाती है
नीचे दिए आँकड़े 16 GB लैपटॉप पर आठ एजेंट चलते हुए मापे गए एक सेशन से आए हैं। यहाँ कुछ भी अनुमान नहीं है।
मशीन साढ़े पाँच घंटे से चालू थी। गर्मी की कोई समस्या नहीं: कोई थ्रॉटलिंग दर्ज नहीं हुई, बैटरी 30.6 C पर। 8 कोर पर लोड एवरेज 17 और 21 के बीच था, और CPU अपना 56% समय कर्नेल में बिता रहा था, जबकि निष्क्रियता सिर्फ़ 1.5% थी। यही अनुपात सारी कहानी खोल देता है। असली काम करने वाली मशीन अपना समय यूज़र कोड में बिताती है; 56% सिस्टम टाइम वाली मशीन का मतलब है एक कर्नेल जो मेमोरी कंप्रेस करने, डीकंप्रेस करने और स्वैप करने के अलावा कुछ नहीं कर रहा।
सात अटके हुए सर्च प्रोसेस हर एक 3.9 से 8.0 GB दबाए बैठे थे, यानी 16 GB RAM वाली मशीन पर कुल 41.8 GB की माँग। स्वैप 23.5 में से 22.3 GB पर था, और बूट के बाद से लगभग 993 GB स्वैप में लिखा जा चुका था। उन सात प्रोसेस को खत्म करते ही 15.5 GB तुरंत वापस मिल गए, बिना एक भी एजेंट रीस्टार्ट किए और बिना ऐप रीस्टार्ट किए।
इसे कोई हाथ से क्यों नहीं पकड़ पाता, इसकी वजह यह है कि आम टूल इस बारे में झूठ बोलते हैं। macOS पर एक अटका हुआ प्रोसेस 20 MB रेज़िडेंट मेमोरी दिखा सकता है जबकि असल में 8 GB दबाए बैठा हो, क्योंकि उसने जो कुछ छुआ वह सब मेमोरी कंप्रेसर से होकर गुज़रा। हमने एक को लाइव मापा: 4.7 GB रेज़िडेंट, और असली फ़ुटप्रिंट 14 GB। वर्चुअल साइज़ से भी कोई मदद नहीं: उस प्लेटफ़ॉर्म पर launchd तक करीब 440 GB वर्चुअल साइज़ बताता है, तो उस पर फ़िल्टर लगाने का मतलब है पूरी मशीन को चिह्नित कर देना।
वही सेशन, घंटे-दर-घंटे: मेमोरी के वे टुकड़े जिन्हें अब कोई इस्तेमाल नहीं कर रहा, और छोड़ देने पर क्या होता है।
और इन प्रोसेस में चार ऐसे गुण होते हैं जो पक्का करते हैं कि कल भी ये यहीं होंगे।
ये कभी खत्म नहीं होते
इनकी अपनी मेमोरी स्वैप में है, इसलिए ये गणना करने के बजाय पेज फ़ॉल्ट झेलने में समय बिताते हैं। और ऐसा करते वक़्त ये खाली नहीं बैठे होते: हमने जिन बेकाबू प्रोसेस को मापा उनमें से हर एक कोर का 10 से 19% जला रहा था, और जितने ज़्यादा जमा होते जाते हैं, हर एक को उतना ही कम मिलता है। इस चक्र से बाहर निकलने का कोई रास्ता नहीं, और कितना भी इंतज़ार करने से कुछ नहीं होता।
ये कभी मरते नहीं
टूल कॉल पर कोई टाइमआउट नहीं होता। मशीन पर किसी को पचास मिनट से निष्क्रिय पड़े प्रोसेस पर कोई राय नहीं है। वह वहीं पड़ा रहेगा जब तक कोई उसे मार न दे या मशीन रीबूट न हो।
ये अपने एजेंट से ज़्यादा जीते हैं
एजेंट का टैब बंद कीजिए और प्रोसेस बच सकता है। हर सिस्टम यह कड़ी अलग तरह से तोड़ता है: क्लासिक Unix उसे init प्रोसेस के नीचे भेज देता है, Linux डेस्कटॉप उसे आपके systemd यूज़र मैनेजर के नीचे, और Windows किसी के नीचे नहीं भेजता, बस उसे एक ऐसे पैरेंट की ओर इशारा करते हुए छोड़ देता है जो अब मौजूद ही नहीं। इसीलिए गार्ड पैरेंट को कभी नहीं देखता। जब कड़ी अभी सलामत थी तब उसने जिसे गोद लिया था वह उसे याद रखता है, और जो कुछ भी चालू प्रोसेस ट्री में नहीं मिलता उसे अनाथ मानता है, तीनों सिस्टम पर एक ही तरह। हमने जो सात मापे, उनमें से दो पहले ही इसी हालत में थे।
ये जमा होते जाते हैं
हर वेरिफ़िकेशन पास पर एक, हर बदकिस्मत सर्च पर एक, और हर उस बार एक और जब कोई एजेंट किसी धीमी कमांड को अटकी हुई समझकर उसे दोबारा चला देता है। हमने एक साथ चलते हुए बारह टाइप चेक मापे, जिन्हें छह एजेंट ने शुरू किया था और उनमें से दो एजेंट के पास तीन-तीन एक साथ चल रहे थे। इसीलिए दिन भर सुस्ती लगातार बढ़ती ही जाती है, और इसीलिए रीबूट करने से लगता है कि ठीक हो गया। वह कुछ ठीक नहीं करता, बस गिनती शून्य कर देता है।
प्रोसेस गार्ड क्या करता है
यह उन प्रोसेस पर नज़र रखता है जो आपके एजेंट शुरू करते हैं, और किन्हें छूना है इस बारे में जान-बूझकर बहुत संकीर्ण है।
असली मेमोरी मापता है
रेज़िडेंट साइज़ नहीं, जो अटके हुए प्रोसेस को कई GB कम करके दिखाता है। गार्ड असली फ़ुटप्रिंट पढ़ता है, कंप्रेस्ड और स्वैप में गए पेज समेत, ताकि 20 MB दिखाने वाला और 8 GB दबाए बैठा प्रोसेस जैसा है वैसा दिखे।
प्रोसेसर मापता है, उस पर भरोसा नहीं करता
प्रोसेसर का इस्तेमाल दो स्कैन के बीच की दर के रूप में पढ़ा जाता है, सिस्टम टूल जो पूरी ज़िंदगी का औसत बताते हैं वैसे नहीं, इसलिए जो प्रोसेस पहले जमकर चला और फिर जाम हो गया वह भी पकड़ा जाता है। इससे मिलता सिर्फ़ इतना है कि जो अब भी काम कर रहा है उसके लिए सीमा ऊँची हो जाती है, छूट कभी नहीं मिलती: कोर का पाँचवाँ हिस्सा जला रहा बेकाबू प्रोसेस ठीक वही है जिसे इस गार्ड का पहला संस्करण चूक जाता था।
अनाथ प्रोसेस पकड़ता है
जो प्रोसेस अपने शुरू करने वाले एजेंट से ज़्यादा जी गया, उसकी सूचना अपने आप में दी जाती है, क्योंकि उसे और कोई कभी वापस नहीं लेगा। मालिकाना हक तब याद रखा जाता है जब प्रोसेस अभी जुड़ा हुआ है, और यही एकमात्र पल है जब उसे तय किया जा सकता है।
खत्म करने के लिए एक क्लिक
स्टेटस बार का एक बैज हर अटके हुए प्रोसेस को उसके एजेंट, मेमोरी, उम्र और CPU के साथ सूचीबद्ध करता है। किसी एक को खत्म करने पर वह और उसका शुरू किया हुआ सब कुछ बंद हो जाता है। मेमोरी तुरंत वापस आती है और आपके एजेंट चलते रहते हैं।
macOS, Windows और Linux
मेमोरी का सच बताने के लिए हर सिस्टम को अलग माप चाहिए: macOS पर कंप्रेस्ड पेज, Linux पर रेज़िडेंट और स्वैप हुआ हिस्सा, Windows पर प्राइवेट कमिट। तीनों लागू हैं, योजना में नहीं।
लागत लगभग शून्य
हर मिनट प्रोसेस का एक स्नैपशॉट, 824 प्रोसेस चला रही मशीन पर करीब 40 ms मापा गया। महँगी मेमोरी जाँच तभी चलती है जब कुछ पहले से अटका हुआ लगे, और जब तक कोई एजेंट सक्रिय नहीं, तब तक कोई स्कैन चलता ही नहीं।
अकेले नहीं, पूरी भीड़ देखता है
बारह टाइप चेक, हर एक 1.4 GB, यानी 16 GB मशीन पर 16.8 GB, और उनमें से हर एक किसी भी वाजिब सीमा से नीचे बैठा है। जब आपके एजेंट के शुरू किए प्रोसेस मिलकर मशीन की आधी फ़िज़िकल मेमोरी भर देते हैं, तो आकार को एक-एक करके आँकना बंद हो जाता है।
ज़िम्मेदार एजेंट का नाम बताता है
एक ही एजेंट की दो या उससे ज़्यादा चिह्नित कमांड उसके अवतार के नीचे समूहबद्ध होती हैं, इस जानकारी के साथ कि वे मिलकर कितना दबाए हैं और एक चेतावनी के साथ कि वे किस चक्र में फँसी हैं। एक कमांड इत्तेफ़ाक़ है, एक साथ कई कमांड एक आदत है।
सिर्फ़ प्रोसेस नहीं, एजेंट को रोकता है
जब एजेंट अपनी बारी के बीच में हो और तभी उसका प्रोसेस खत्म कर दिया जाए, तो एजेंट को एक एरर मिलता है और वह उस पर प्रतिक्रिया देता है, अक्सर वही कमांड दोबारा चलाकर। इसके बजाय एक बटन एजेंट के टर्मिनल पर Ctrl+C भेजता है: उसकी बारी खत्म हो जाती है, कुछ भी दोबारा शुरू नहीं होता, और एजेंट खुला ही रहता है।
वे नियम जो इसे झूठा अलार्म बजाने से रोकते हैं
जो गार्ड आपके बिल्ड को चिह्नित करे, उसे आप एक हफ़्ते में बंद कर देंगे, इसलिए सीमा जान-बूझकर ऊँची रखी गई है। किसी एजेंट का हर वह चाइल्ड प्रोसेस जो आपकी तय सीमा से ज़्यादा समय से ज़िंदा है, उसकी असली मेमोरी मापी जाती है, और जैसे ही वह आपकी दी हुई छूट से ज़्यादा दबाए बैठा हो, उसकी सूचना दी जाती है। जो प्रोसेस अब भी प्रोसेसर इस्तेमाल कर रहा है उसे उससे दोगुना दबाना पड़ता है, और यही बात लंबे, जायज़ बिल्ड को रास्ते से हटाए रखती है।
प्रोसेसर का इस्तेमाल वह सीमा तय करता है, वह कोई छननी नहीं है। इस गार्ड का पहला संस्करण मेमोरी देखने से पहले ही यह शर्त लगाता था कि प्रोसेस निष्क्रिय हो, और वह गलत था। जिस सर्च का पैटर्न रेगेक्स इंजन को फोड़ देता है वह निष्क्रिय नहीं होता: वह एक कोर का पाँचवाँ हिस्सा जलाता रहता है, जबकि कर्नेल उसके लिए कई GB स्वैप करता रहता है। इससे भी बुरा यह कि जितने ज़्यादा जमा होते जाते हैं, हर एक को उतना ही कम प्रोसेसर मिलता है, यानी अंधा कोना ठीक शुरुआत में सबसे चौड़ा था, जब किसी एक को खत्म करना सबसे सस्ता होता।
दूसरा नियम इसलिए है कि हर प्रोसेस पर अलग-अलग लगी सीमा भीड़ को नहीं देख पाती। बारह टाइप चेक, हर एक 1.4 GB दबाए हुए, अलग-अलग देखें तो वाजिब हैं और मिलकर 16 GB मशीन के लिए जानलेवा। इसलिए जब एजेंट के शुरू किए सारे प्रोसेस मिलकर मशीन की आधी फ़िज़िकल मेमोरी घेर लेते हैं, तो उन सबकी सूचना दी जाती है, चाहे अकेले हर एक का वज़न कुछ भी हो। उस समूह में से कुछ भी कभी अपने आप खत्म नहीं किया जाता: वह आपकी तय की हुई हद से नीचे है, और उसे सिर्फ़ अपने पड़ोसियों की वजह से चिह्नित किया गया।
यह कैसे काम करता है
चार कदम, मिनट में एक बार, और महँगा वाला कदम लगभग कभी नहीं चलता।
मशीन का एक सस्ता स्नैपशॉट
हर मिनट गार्ड सभी चल रहे प्रोसेस का एक स्नैपशॉट लेता है और हर एजेंट टर्मिनल के नीचे के पेड़ में चलता है। 824 प्रोसेस चला रही मशीन पर मापी गई लागत: करीब 40 ms। जब तक कोई एजेंट नहीं चल रहा, यह होता ही नहीं।
संदिग्धों की छोटी सूची
उस स्नैपशॉट में से यह किसी एजेंट का हर वह चाइल्ड प्रोसेस रखता है जो आपकी तय सीमा से ज़्यादा समय से ज़िंदा है। बस यही पूरा फ़िल्टर है, और प्रोसेसर अब भी इस्तेमाल करने की वजह से कुछ भी बाहर नहीं किया जाता: ऐसा करने से ही इस गार्ड का पिछला संस्करण बेकाबू प्रोसेस चूकता था। सामान्य इस्तेमाल में यह सूची खाली रहती है, क्योंकि एजेंट की टूल कॉल सेकंडों में खत्म हो जाती हैं।
जो अटके लगते हैं उन्हें मापना
सिर्फ़ उसी छोटी सूची के लिए गार्ड असली मेमोरी माप की कीमत चुकाता है, कंप्रेस्ड और स्वैप में गए पेज समेत। जिस प्रोसेस को वह माप नहीं पाता उसे कभी चिह्नित नहीं करता: अनजान होना फ़ैसला नहीं है।
सूचना देता है, फ़ैसला आप पर छोड़ता है
स्टेटस बार में एक बैज दिखता है और एक ही सूचना आपको एक बार इसकी खबर देती है। आप सूची खोलते हैं, देखते हैं कि प्रोसेस क्या है, कितना दबाए है, कब से अटका है और किस एजेंट ने उसे शुरू किया, और चाहें तो उसे खत्म कर देते हैं।
यह किन चीज़ों को कभी नहीं छूएगा
जो टूल प्रोसेस खत्म कर सकता है, उसे इस बारे में बहुत संकीर्ण होना चाहिए कि उसका काम क्या है। ये सीमाएँ ढाँचे में बनी हैं, ऐसे विकल्प नहीं जिन्हें चालू करना आपको याद रखना पड़े।
- एजेंट का अपना CLI। आप जो भी प्रोवाइडर चलाएँ, गार्ड उस बाइनरी की रक्षा करता है जिससे ऐप ने वह टर्मिनल शुरू किया था। वह नाम वह किसी हार्डकोडेड सूची से नहीं, बल्कि लॉन्च से ही पढ़ता है, इसलिए उसी CLI का सब-प्रोसेस भी सुरक्षित रहता है, चाहे कितनी भी गहराई पर हो।
- आपके डेव कमांड टर्मिनल। निष्क्रिय पड़ा डेव सर्वर बेकाबू होने की हर कसौटी पर खरा उतरता है: भारी, पुराना, प्रोसेसर का कोई इस्तेमाल नहीं। और वही एक प्रोसेस है जिसे आप सचमुच चलता हुआ चाहते हैं। सिर्फ़ एजेंट टर्मिनल पर नज़र रखी जाती है, इसलिए आपका डेव सर्वर तस्वीर में आता ही नहीं।
- शेल और ऐप की अपनी अंदरूनी पाइपलाइन। टर्मिनल हेल्पर और वह शेल जिसमें एजेंट चलता है, बनावट से ही बाहर हैं। सिर्फ़ एजेंट CLI के नीचे के टूल प्रोसेस ही कभी उम्मीदवार बनते हैं।
- जो कुछ उसने गोद नहीं लिया। प्रोसेस खत्म करने वाला इकलौता रास्ता हर उस प्रोसेस को मना कर देता है जिसे गार्ड ने किसी एजेंट के अपने पेड़ से नहीं उठाया। यह आपकी मशीन पर किसी और चीज़ को बंद करने का ज़रिया नहीं बन सकता।
और जब तक आप न कहें, कुछ भी अपने आप खत्म नहीं किया जाता। डिफ़ॉल्ट रूप से गार्ड जो मिला वह बताता है और फ़ैसला आप करते हैं, क्योंकि यह आप ही जानते हैं कि कोई बड़ा और चुपचाप बैठा प्रोसेस अपेक्षित था या नहीं। चालू होने पर भी अपने आप खत्म करना उस हर चीज़ को छोड़ देता है जो अब भी प्रोसेसर इस्तेमाल कर रही है, और उस हर चीज़ को भी जो सिर्फ़ अपने पड़ोसियों के दबाए हुए की वजह से चिह्नित हुई है।
यह अपनी जगह कब सही ठहराता है
इनमें से हर एक असली स्थिति है, कोई काल्पनिक नहीं।
शाम 6 बजे मशीन सुबह 9 बजे से धीमी
कोई एक पल नहीं जब कुछ टूटा हो, बस दिन भर लगातार फिसलन। यह आकार लगभग हमेशा जमा हुए अटके प्रोसेस का होता है, और हाथ से पकड़ने में सबसे मुश्किल भी, क्योंकि किसी भी एक क्षण में कुछ भी गलत नहीं दिखता।
कई एजेंट समानांतर काम करते हुए
आप जितने ज़्यादा एजेंट चलाते हैं, उतनी ज़्यादा टूल कॉल होती हैं, और उतने ही ज़्यादा मौके कि उनमें से कोई जाम हो जाए। हर कॉल पर विफलता की दर बहुत छोटी है; समानांतर काम के पूरे दिन से गुणा होकर वह छोटी नहीं रह जाती।
एक सर्च जो कभी लौटता ही नहीं
ऐसा पैटर्न जो रेगेक्स इंजन को फोड़ देता है, कुछ सौ किलोबाइट की फ़ाइल पर कई GB ले लेता है। एजेंट उसका इंतज़ार करता है, आप एजेंट का, और कीमत मशीन दोनों की चुकाती है।
आपने एजेंट बंद किया, प्रोसेस रह गया
टैब बंद करने से हमेशा कुछ खाली नहीं होता। जो प्रोसेस पहले ही अलग हो चुका है वह अपनी मेमोरी बनाए रखता है और ऐप में दिखने वाली हर चीज़ से अपना आखिरी नाता खो देता है।
16 GB वाला लैपटॉप
भरपूर RAM वाली मशीन पर कुछ अटके प्रोसेस लंबे समय तक छिपे रह जाते हैं। 16 GB लैपटॉप पर वे जल्दी स्वैप तक पहुँच जाते हैं, और जैसे ही सिस्टम मेमोरी कंप्रेस करने लगता है, आपका हर एजेंट एक साथ धीमा पड़ जाता है।
ऐप को दोष देने से पहले
जब AgentsRoom खुला हो और मशीन रेंगने लगे, तो ऐप सबसे साफ़ शक का घेरा होता है। हर प्रोसेस के असली आँकड़े हाथ में हों, साथ में यह भी कि किसे किस एजेंट ने शुरू किया, तो शक ऐसी चीज़ बन जाता है जिसे आप सचमुच जाँच सकते हैं।
सीमाएँ आप तय करते हैं
डिफ़ॉल्ट जान-बूझकर सतर्क रखे गए हैं। नीचे दिया सब कुछ सेटिंग्स में, टर्मिनल के नीचे रहता है, और इनमें से हर एक को कोई एजेंट AgentsRoom के MCP टूल से पढ़ और बदल भी सकता है।
- एजेंट के चाइल्ड प्रोसेस पर नज़र रखें
- डिफ़ॉल्ट रूप से चालू। इसे बंद कर दीजिए और कोई स्कैन कभी नहीं चलेगा।
- मेमोरी की एक सीमा से ऊपर ही सूचना दें
- डिफ़ॉल्ट दो गीगाबाइट। उससे कम पर अटके प्रोसेस के लिए आपको टोकना ठीक नहीं। भरपूर RAM वाले वर्कस्टेशन पर इसे बढ़ा दीजिए, और जिस लैपटॉप पर मेमोरी गिनती की है वहाँ घटा दीजिए।
- और कम से कम इतनी उम्र के बाद
- डिफ़ॉल्ट पाँच मिनट। उससे कम पर कुछ मापा ही नहीं जाता, और यही एजेंट की आम टूल कॉल को, यानी वे जो सेकंडों में खत्म हो जाती हैं, तस्वीर से पूरी तरह बाहर रखता है।
- अटके हुए प्रोसेस अपने आप खत्म करें
- डिफ़ॉल्ट रूप से बंद, और यह सावधानी नहीं बल्कि सोचा-समझा प्रोडक्ट फ़ैसला है। गार्ड एक राय बना रहा है, और सिर्फ़ आप जानते हैं कि कोई बड़ा और चुपचाप बैठा प्रोसेस अपेक्षित था या नहीं। इसे चालू कीजिए और यह खुद कार्रवाई करेगा, बाद में एक नोटिफ़िकेशन के साथ।
प्रोसेसर की सीमा सामने नहीं रखी गई, और न ही वह बिंदु जिस पर मशीन को भरा हुआ माना जाता है। दोनों एक बार गलत रह चुके हैं और उन्हें पसंद के आधार पर नहीं, बल्कि असली घटनाएँ मापकर ठीक किया गया, इसलिए इनमें से किसी के लिए स्लाइडर देना ज़्यादातर अंधा कोना वापस लाने का ही तरीका होता।
अक्सर पूछे जाने वाले सवाल
क्या इसका मतलब है कि AgentsRoom मेरा कंप्यूटर धीमा करता है?
नहीं, और यह फ़ीचर ठीक इसीलिए मौजूद है। जिस सेशन को हमने मापा, उसमें ऐप 91 प्रोसेस में 2.8 GB ले रहा था और आठों एजेंट CLI मिलकर 1.6 GB। वे 41.8 GB उन टूल प्रोसेस ने दबा रखे थे जो जाम हो चुके थे। संयोग से AgentsRoom ही अकेली जगह है जहाँ से हर एजेंट और उसका शुरू किया हर प्रोसेस दिखता है, इसलिए फ़ैसला भी यहीं से हो सकता है।
क्या यह मेरा बिल्ड या टेस्ट रन मार देगा?
वह पूछे बिना उसे कभी खत्म नहीं करेगा। सूचना ज़रूर दे सकता है: बिल्ड को आपकी सीमा से दोगुना दबाए रखना होगा, यानी डिफ़ॉल्ट रूप से चार गीगाबाइट, या फिर एजेंट प्रोसेस के ऐसे समूह का हिस्सा होना होगा जो आपकी मशीन की आधी मेमोरी भर रहा हो। पर अपने आप खत्म करना उस प्रोसेस को कभी नहीं छूता जो अब भी प्रोसेसर इस्तेमाल कर रहा है, और न उसे जो सिर्फ़ पड़ोसियों के दबाए हुए की वजह से चिह्नित हुआ है। दोनों ही हाल में आपको एक पंक्ति, असली आँकड़े और एक बटन मिलता है, और जब तक आप उसे दबाते नहीं, कुछ नहीं होता।
क्या यह मेरे डेव सर्वर पर नज़र रखता है?
नहीं, और कभी रखेगा भी नहीं। निष्क्रिय पड़ा डेव सर्वर बेकाबू होने की हर कसौटी पर खरा उतरता है: बहुत मेमोरी दबाए बैठा है, घंटों से चल रहा है, और दो रिक्वेस्ट के बीच प्रोसेसर छूता ही नहीं। सिर्फ़ एजेंट टर्मिनल के चाइल्ड प्रोसेस देखे जाते हैं, इसलिए आपके डेव कमांड बनावट से ही दायरे के बाहर हैं।
क्या यह एजेंट को ही बंद कर सकता है?
नहीं। आप जो भी प्रोवाइडर इस्तेमाल करें, एजेंट का CLI सुरक्षित रहता है, और यह सुरक्षा जाने-पहचाने नामों की सूची पर नहीं बल्कि उस बाइनरी पर टिकी है जिससे ऐप ने वह टर्मिनल शुरू किया था। शेल और ऐप का अपना टर्मिनल हेल्पर भी बाहर हैं।
अनाथ प्रोसेस क्या है और उसे अलग बर्ताव क्यों मिलता है?
जिस प्रोसेस का पैरेंट खत्म हो गया, उसकी उस एजेंट से कड़ी टूट जाती है जिसने उसे शुरू किया था, और उसे कभी कोई साफ़ नहीं करेगा। यह कड़ी कैसे टूटती है, यह सिस्टम पर निर्भर है: क्लासिक Unix उसे init प्रोसेस के नीचे भेज देता है, Linux डेस्कटॉप आपके systemd यूज़र मैनेजर के नीचे, और Windows किसी के नीचे नहीं भेजता, बस पीछे एक मरा हुआ पैरेंट आईडी छोड़ जाता है। इसीलिए AgentsRoom पैरेंट की जाँच कभी नहीं करता। जब तक प्रोसेस जुड़ा हुआ है तभी वह मालिकाना हक दर्ज कर लेता है, और यही एकमात्र पल है जब उसे तय किया जा सकता है, और जो कुछ भी चालू प्रोसेस ट्री में नहीं मिलता उसे अनाथ मानता है, तीनों सिस्टम पर एक ही तरह।
इस निगरानी की अपनी लागत कितनी है?
हर मिनट प्रोसेस का एक स्नैपशॉट, 824 प्रोसेस चला रही मशीन पर करीब 40 ms मापा गया। ज़्यादा महँगा मेमोरी माप सिर्फ़ उन प्रोसेस पर चलता है जो पहले से अटके लगते हैं, यानी सामान्य इस्तेमाल में चलता ही नहीं। और जब तक कोई एजेंट सक्रिय नहीं, स्कैन का कोई अस्तित्व ही नहीं।
Activity Monitor के मेमोरी कॉलम को ही क्यों न देख लें?
क्योंकि macOS पर वह समस्या को दस गुना कम करके दिखाता है। कंप्रेस्ड मेमोरी में धकेला गया प्रोसेस 8 GB दबाए रहते हुए भी 20 MB रेज़िडेंट दिखा सकता है। हमने एक को लाइव मापा: 4.7 GB रेज़िडेंट, और असली फ़ुटप्रिंट 14 GB। वर्चुअल साइज़ भी बेहतर नहीं: सिस्टम प्रोसेस तक उसके सैकड़ों गीगाबाइट बताते हैं।
क्या यह Claude Code, Codex और बाकियों के साथ काम करता है?
हाँ। गार्ड को किसी खास टूल या प्रोवाइडर के बारे में कुछ पता नहीं होता। आपने जो भी एजेंट टर्मिनल शुरू किया, यह उसके चाइल्ड प्रोसेस देखता है, और जिस CLI की यह रक्षा करता है वह लॉन्च से ही पढ़ा जाता है। कोई नया प्रोवाइडर जुड़ने से यहाँ कुछ नहीं बदलता।
क्या यह Windows और Linux पर चलता है?
हाँ। मेमोरी सच बोले, इसके लिए हर प्लेटफ़ॉर्म को अलग माप चाहिए: macOS पर कंप्रेस्ड पेज, Linux पर रेज़िडेंट और स्वैप हुआ हिस्सा, Windows पर प्राइवेट कमिट। तीनों लागू हैं।
क्या यह मुझसे पूछे बिना प्रोसेस खत्म कर देगा?
जब तक आप वह विकल्प चालू न करें, नहीं। डिफ़ॉल्ट रूप से यह जो मिला वह बताता है, एजेंट, मेमोरी, उम्र और प्रोसेसर के इस्तेमाल समेत, और फ़ैसला आप करते हैं। अपने आप खत्म करना एक सेटिंग है, जो डिब्बे से निकलते समय बंद रहती है।
जब मैं एजेंट का कोई प्रोसेस खत्म करता हूँ तो एजेंट का क्या होता है?
एजेंट चलता रहता है। उसकी टूल कॉल हमेशा के लिए लटके रहने के बजाय एक एरर पाती है, और यही नतीजा आप चाहते भी हैं: वह प्रोसेस तो वैसे भी कभी पूरा नहीं होने वाला था। कुछ भी दोबारा शुरू नहीं होता और कोई कॉन्टेक्स्ट नहीं खोता।
क्या यह मूल कारण ठीक करता है?
नहीं, और यह कोशिश भी नहीं करता। कारण बदलते रहते हैं: आज कोई टूल, कल कोई और पैटर्न, अगले महीने कोई और प्रोवाइडर। यह एक सुरक्षा जाल है, और इसे इसीलिए बनाया गया है कि जब कारण ऐसा हो जिसे अब तक किसी ने देखा ही न हो, तब भी यह काम करता रहे।
बारह प्रोसेस, और उनमें से एक भी मेरी तय सीमा से ऊपर नहीं। क्या यह कुछ कहेगा?
हाँ, और नियम इसी मामले की वजह से बदला। 16 GB मशीन पर मापा गया: छह एजेंट के शुरू किए बारह टाइप चेक, हर एक 0.84 से 1.72 GB, सब आराम से 2 GB की सीमा से नीचे, मिलकर 15.4 GB, स्वैप भरा हुआ और मशीन काम लायक नहीं। एक-एक करके आँकें तो हर एक ठीक ही था। जैसे ही कुल जोड़ आपकी आधी फ़िज़िकल मेमोरी पार करता है, उन सबकी सूचना दी जाती है, उस एजेंट के नीचे समूहबद्ध जिसने उन्हें शुरू किया।
«एजेंट को रोकें» असल में करता क्या है?
यह उस एजेंट के टर्मिनल पर Ctrl+C भेजता है, वही कीस्ट्रोक जो आप खुद दबाते। एजेंट की मौजूदा बारी खत्म हो जाती है और वह आपका इंतज़ार करता है: वह बंद नहीं होता, उसका सेशन बरकरार रहता है, और आपकी मशीन पर और कुछ नहीं छुआ जाता। यह इसलिए है क्योंकि एजेंट के काम करते रहते हुए उसका प्रोसेस खत्म करना सिर्फ़ लक्षण का इलाज है: एजेंट को एरर मिलता है और वह अक्सर वही कमांड दोबारा चला देता है।
आपको यह भी पसंद आ सकता है
कॉन्टेक्स्ट कैनरी
दूसरी पूर्व-चेतावनी: यह मशीन नहीं, एजेंट के अपने कॉन्टेक्स्ट पर नज़र रखती है, और बताती है कि कोई एजेंट कब बहक रहा है, इससे पहले कि वह फ़ाइलें और API गढ़ने लगे।
डेव टर्मिनल
अपने डेव सर्वर और लंबे कमांड AgentsRoom में चलाइए, और लंबा कमांड पूरा होने पर नोटिफ़िकेशन पाइए। ये वही टर्मिनल हैं जिन्हें प्रोसेस गार्ड कभी न छूने के लिए ही बनाया गया है।
एजेंट स्थिति ट्रैकिंग
एक नज़र में देखिए कौन-से एजेंट काम कर रहे हैं, कौन आपका इंतज़ार कर रहे हैं और कौन खाली हैं, बिना एक भी टर्मिनल पढ़े।
टोकन उपयोग
नज़र रखने लायक दूसरा संसाधन। हर एजेंट की टोकन खपत और कोटा, ताकि आपको पता रहे कि आपका इस्तेमाल कहाँ जा रहा है।
स्प्लिट व्यू
एक ही विंडो में कई एजेंट साथ-साथ, हर एक का अपना पैन, अपना रंग और लाइव स्थिति।
CLI Doctor
जब कोई एजेंट शुरू ही नहीं हो पाता, तो यह खाली टर्मिनल छोड़ने के बजाय बताता है कि क्यों और अब क्या करना है।
जिन प्रोसेस को कोई इस्तेमाल नहीं कर रहा, उनकी कीमत चुकाना बंद कीजिए
AgentsRoom डाउनलोड करना मुफ़्त है, और प्रोसेस गार्ड पहले लॉन्च से ही चालू रहता है।
कंपेनियन ऐप: चलते-फिरते अपने एजेंट्स मॉनिटर करें
Claude, Codex, Antigravity CLI या किसी अन्य AI प्रदाता का उपयोग करें।
बग और अनुरोध सीधे अपने सार्वजनिक बैकलॉग में भेजें।
AgentsRoom को कार्य करते देखें।