अनुसंधान

हमने अपना क्लाउड एजेंट परिवेश कैसे सेट अप किया

Mathew Hogan & Arvind Saripalli8 मिनट में पढ़ें

जब हमने क्लाउड एजेंट्स को कंप्यूटर देने का फैसला किया, ताकि वे अपने परिवर्तनों का परीक्षण कर सकें, तो पहला कदम यह सुनिश्चित करना था कि वे हमारे कोडबेस में उनका परीक्षण अच्छी तरह कर सकें।

क्लाउड एजेंट्स के लिए अपने मोनोरेपो को तैयार करते हुए हमें पता चला कि विकास परिवेश भी अपने आप में एक उत्पाद है—बस इसके उपयोगकर्ता एजेंट होते हैं। क्लाउड को स्थानीय विकास के अनुरूप बनाना होता है, रेपो को इतना स्पष्ट रखना होता है कि एजेंट बिना किसी टीम-विशिष्ट जानकारी के कोड चला और उसका परीक्षण कर सकें, और कोडबेस में बदलाव के साथ उस परिवेश को भी सुचारु बनाए रखना होता है।

इस परिवेश को बनाने ने हमारे काम करने का तरीका बदल दिया है। दिसंबर में Cursor मोनोरेपो में मर्ज किए गए लगभग हर दस में से एक PR क्लाउड एजेंट्स ने लिखा था। आज, वे आधे से अधिक PR लिखते हैं।

7-day rolling share of merged PRs from cloud agents

क्लाउड को स्थानीय विकास के अनुरूप बनाना

हमारे रेपो में क्लाउड एजेंट्स को प्रभावी ढंग से चलाने का पहला कदम यह सुनिश्चित करना था कि हमारा रेपो क्लाउड VM में भी सही ढंग से काम करे। यह चरण उन सभी इंजीनियरों के लिए परिचित है जिन्होंने पहली बार रिमोट विकास परिवेश सेट अप किया है।

ज़्यादातर Cursor डेवलपर Mac मशीनों पर स्थानीय रूप से विकास करते हैं, जबकि हमारे क्लाउड VM Linux पर चलते हैं। इसलिए हमें विभिन्न डेवलपमेंट यूटिलिटीज़ और सेटअप स्क्रिप्ट्स को प्लेटफ़ॉर्म-निरपेक्ष बनाना पड़ा, ताकि वे Ubuntu VM पर काम कर सकें। हमने महत्वपूर्ण डेवलपमेंट निर्भरताएँ Cursor द्वारा परिभाषित Dockerfile में जोड़ीं, जो क्लाउड एजेंट्स के लिए शुरुआती इमेज के रूप में काम करती है।

क्लाउड एजेंट्स अपने परिवेश में सुरक्षित रूप से चल रहे हैंक्लाउड एजेंट्स अपने परिवेश में सुरक्षित रूप से चल रहे हैं

हमने अपनी सुरक्षा टीम के साथ मिलकर क्लाउड एजेंट उत्पाद में सुरक्षा सुविधाएँ भी जोड़ीं, ताकि उपयोगकर्ता आवश्यक सीक्रेट्स को भरोसे के साथ एजेंट के परिवेश में इंजेक्ट कर सकें। इन सुविधाओं में नेटवर्क निकासी प्रतिबंध, सीमित दायरे वाली और प्रॉक्सी के माध्यम से git रिमोट पहुँच, कमिट्स और कमिट संदेशों में सीक्रेट स्कैनिंग, और टूल परिणामों में सीक्रेट रिडैक्शन शामिल हैं। इससे एजेंट, कोशिश करने पर भी, सीक्रेट मान नहीं पढ़ सकता।

एजेंट्स के लिए सरल इंटरफ़ेस

Ubuntu VMs पर हमारा डेवलपमेंट सेटअप काम करने लगा था, फिर भी एजेंट्स हमारे कोड को चलाने में अच्छे नहीं थे। यह आश्चर्य की बात नहीं थी, क्योंकि हमारा devex अव्यवस्थित था और उसमें कई बिल्ड कमांड, बिल्ड फ़्लैग और यूटिलिटी स्क्रिप्ट्स को सीखना और याद रखना पड़ता था।

हमने सिस्टम के कई हिस्सों को बिल्ड करने और चलाने के तरीके के लिए कौशल लिखे, लेकिन इससे केवल सीमित मदद मिली। कौशल सही कमांड का दस्तावेज़ीकरण कर सकते हैं, लेकिन वे कमांड खुद जटिल थे और उनमें गलतियाँ होने की भरपूर गुंजाइश थी।

उस जटिलता को कम करने के लिए, हमने anydev नाम का एक CLI बनाया, जिसका इस्तेमाल एजेंट्स सभी सेवाएँ शुरू करने के लिए कर सकते हैं। हम सामान्य यूटिलिटी स्क्रिप्ट्स को भी anydev के ज़रिए चलाते हैं और anydev में हर सबकमांड के उपयोग का तरीका बताने वाले कई --help मेनू जोड़े हैं। anydev में एक सुपरवाइज़र प्रक्रिया भी है, जो लंबे समय तक चलने वाले बिल्ड कमांड्स की निगरानी करती है और उन्हें पुनः आरंभ करती है, जिससे मॉडल को यह ज़िम्मेदारी बिल्कुल नहीं निभानी पड़ती।

anydev ने डेवलपमेंट अनुभव को इतना सरल बना दिया कि एजेंट्स अपना कोड भरोसेमंद तरीके से चला सके। कौशल ने इसके उपयोग का दस्तावेज़ीकरण करने में मदद की, लेकिन बड़ा बदलाव यह था कि एजेंट्स को अब खास, कई चरणों वाले बिल्ड कमांड्स संभालने, छिपी हुई गलतियों से बचने या लंबे समय तक चलने वाली प्रक्रियाओं की निगरानी करने की ज़रूरत नहीं थी।

यहीं से क्लाउड एजेंट्स, जिनके पास अपना-अपना कंप्यूटर था, लोकल एजेंट्स की तुलना में वास्तविक मूल्य देने लगे। कंप्यूटर उपयोग, उनके recordScreen टूल और एक काम करने वाले डेवलपमेंट परिवेश के साथ, एजेंट्स अब अपने परिवर्तनों का एंड-टू-एंड परीक्षण कर सकते थे और उपयोगकर्ता को अपने काम की शुद्धता साबित कर सकते थे।

वे किसी के बग रिपोर्ट ठीक करने पर Slack में या कोई परिवर्तन खोलने पर PR में एजेंट द्वारा रिकॉर्ड किए गए डेमो भी साझा कर सकते थे। कई कार्यों में, इंजीनियर अब ब्रांच को लोकल रूप से चेक आउट किए बिना ही क्लाउड एजेंट कोड को आत्मविश्वास के साथ मर्ज और डिप्लॉय कर सकते थे।

एक आंतरिक क्लाउड एजेंट, बेहतर एजेंट सत्र पुनःप्रयासों का परीक्षण करने के लिए अपने क्लाउड परिवेश में Cursor एजेंट्स का उपयोग करता है।

एक स्व-उपचार परिवेश

एजेंट के आसपास का परिवेश हमेशा बदलता रहता है, इसलिए उसे चालू रखने के लिए उसके चलने के तरीके और उसकी पहुँच में आने वाली चीज़ों को लगातार अपडेट करना पड़ता है।

अस्वस्थ परिवेशों के विफल होने पर उनका निदान करने और उन्हें पुनर्प्राप्त करने के लिए, हमने Cursor Cloud MCP बनाया। हमने MCP चुना क्योंकि इससे हमें ऐसे टूल मिले जिन्हें गतिशील रूप से खोजा जा सकता था और जिनके इंटरफ़ेस को एजेंट लूप को दोबारा बनाए बिना बदला जा सकता था। क्लाउड एजेंट इसका उपयोग अपने परिवेश में सेटअप विफलताओं, निकासी नीति, बदले हुए सीक्रेट्स आदि की जाँच करने के लिए करते हैं। इससे वे समस्याएँ उत्पन्न होते ही उनका निदान और समाधान कर सकते हैं तथा अस्वस्थ परिवेशों को जल्दी पुनर्प्राप्त कर सकते हैं।

Cursor Cloud MCP लागू होने के बाद, हमने स्वचालन सेट अप किया, जिसका नाम Cloud Doctor है, जो समय-समय पर विफलताओं की जाँच करता है, यह याद रखता है कि कौन-सी त्रुटियाँ अस्थायी हो सकती हैं और कौन-सी महत्वपूर्ण हैं, मूल कारण का विश्लेषण करता है, और समस्याओं को उच्च भरोसे के साथ ठीक करने के लिए PRs खोल सकता है।

एजेंट अनुभव को बेहतर बनाना

स्वस्थ परिवेश में भी, एजेंट कभी-कभी अपने परिवर्तनों को सत्यापित करने के लिए लंबे या बेवजह जटिल रास्ते अपनाते हैं। वे गलत कौशल का उपयोग कर सकते हैं, VM में टाली जा सकने वाली समस्याओं का सामना कर सकते हैं या ऐसे वर्कफ़्लो अपना सकते हैं जिनमें जरूरत से ज़्यादा समय लगता है।

हम यहाँ भी Cursor Cloud MCP का उपयोग करते हैं। Cloud Doctor एजेंट ट्रेस की जाँच करके पता लगाते हैं कि कोई दूसरा एजेंट कहाँ भटका, कौन-से कौशल या कमांड भ्रामक थे और कौन-से वर्कफ़्लो लगातार धीमे हैं। इन निष्कर्षों के आधार पर, Cloud Doctor कौशल को ठीक करता है, पाथ को सरल बनाता है या परिवेश में बदलाव करता है, ताकि अगले एजेंट के लिए काम आसान हो।

यह लूप एजेंट के अपने डेवलपर अनुभव को लगातार बेहतर बनाता है। जब परिवेश स्वस्थ और स्व-उपचार वाला होता है, तो एजेंट विश्वसनीय रूप से चलते हैं और डेवलपर्स अधिक महत्वपूर्ण काम के लिए क्लाउड एजेंट पर भरोसा करते हैं।

इससे हमें आंतरिक रूप से क्लाउड एजेंट को अपनाने का दायरा बढ़ाने में मदद मिली है, और अब वे हमारे शिप किए जाने वाले अधिकांश कोड को लिखते हैं।

Cloud Doctor अस्वस्थ परिवेश को ठीक करने के लिए PR खोलता हैCloud Doctor अस्वस्थ परिवेश को ठीक करने के लिए PR खोलता है

अपने परिवेश को क्लाउड एजेंट के लिए तैयार करना

क्लाउड एजेंट की उत्पादकता काफी हद तक परिवेश पर निर्भर करती है। यह जानने के लिए कि आपका कोडबेस तैयार है या नहीं, इन तीन सवालों के जवाब दें:

  1. क्या एजेंट्स के पास वही टूल और डेटा पहुँच हैं जो किसी डेवलपर के पास होते हैं?
  2. क्या एजेंट्स ऐसे कौशल खोज सकते हैं, जिनमें यह दर्ज हो कि आपके डेवलपर्स वास्तव में कैसे काम करते हैं?
  3. क्या एजेंट्स मुख्य वर्कफ़्लो का परीक्षण और सत्यापन कर सकते हैं?

अगर आपको अपना परिवेश तैयार करने में सहायता चाहिए, तो कृपया संपर्क करें

या और जानने के लिए पढ़ें कि Faire ने क्लाउड एजेंट के साथ साप्ताहिक PR थ्रूपुट दोगुना किया