Amplitude Cursor के साथ 3x अधिक उत्पादन कोड शिप करता है
Amplitude Cursor का उपयोग एक स्वायत्त विकास पाइपलाइन बनाने के लिए करता है, जो न्यूनतम डेवलपर हस्तक्षेप के साथ सॉफ़्टवेयर को आइडिया से उत्पादन तक पहुंचाती है।
Amplitude की इंजीनियरिंग टीम एक पूरी तरह स्वायत्त विकास पाइपलाइन बनाना चाहती थी, जो न्यूनतम डेवलपर हस्तक्षेप के साथ सॉफ़्टवेयर को आइडिया से उत्पादन तक पहुँचा सके। Cursor के साथ, Amplitude ने अब ऐसे सिस्टम तैयार कर लिए हैं जो सॉफ़्टवेयर लाइफ़साइकिल के अलग-अलग चरणों से—ग्राहक फ़ीडबैक से लेकर ऑब्ज़र्वेबिलिटी टूल्स और कोड समीक्षा तक—संदर्भ लेते हैं और उन्हें निष्पादन के लिए एजेंट्स को सौंप देते हैं।
अब, जब ग्राहक Slack में बग या फ़ीचर अनुरोध रिपोर्ट करते हैं, तो क्लाउड एजेंट स्वचालित रूप से जाँच शुरू कर देते हैं, एक टिकट खोलते हैं और फ़िक्स लिखते हैं। Cursor Automations पृष्ठभूमि में लगातार चलते रहते हैं, लेगेसी कोड को माइग्रेट करते हैं और हर नए या अपडेट किए गए PR के लिए जोखिम स्तर तय करते हैं। Bugbot समीक्षा की पहली पंक्ति की तरह काम करता है, कम-जोखिम वाले परिवर्तनों को स्वचालित रूप से मर्ज करता है, जबकि उच्च-जोखिम वाले PRs को सही समीक्षकों तक भेजता है।
ज़्यादातर AI coding tools आपको बस अधिक कोड देते हैं। Cursor आपको अधिक उपयोगी उत्पादन सॉफ़्टवेयर देता है। ऐसे एजेंट चलाने की क्षमता, जो काम को प्रभावी ढंग से समानांतर कर सकें, अपने बदलावों का खुद परीक्षण कर सकें, और किसी फ़ीचर को आइडिया से उत्पादन तक ले जा सकें—यही असली फ़र्क है।
सिर्फ लोकल एजेंट समानांतरता और स्वायत्तता को सीमित करते हैं
कोडिंग एजेंट्स को अपनाने के शुरुआती दौर में, Amplitude को उस समस्या का सामना करना पड़ा जिसे स्टाफ सॉफ़्टवेयर इंजीनियर Adam Lohner ने इंजीनियरिंग उत्पादकता में एक झूठा ठहराव बताया।
विकास की रफ़्तार में असली तेजी तब आती है, जब एजेंट सिर्फ बहुत सारा कोड नहीं, बल्कि वास्तव में उपयोगी प्रोडक्शन सॉफ़्टवेयर तैयार करते हैं। इसके लिए हमें एजेंट्स में कहीं बेहतर समानांतरता और स्वायत्तता चाहिए थी, जो लोकल डेवलपर वर्कस्टेशनों तक सीमित एजेंट दे नहीं पाते।
लोकल एजेंट सीमित संसाधनों के उसी सेट के लिए प्रतिस्पर्धा करते हैं और जल्दी ही टकराव में फंस जाते हैं। एक साथ सिर्फ दो या तीन एजेंट चलाने पर भी प्रदर्शन गिर सकता है। Amplitude का कोडबेस इतना बड़ा है कि लोकल डेवलपर मशीनें मेमोरी सीमाओं तक पहुँच रही थीं, यहाँ तक कि ज़्यादा RAM वाले हाई-एंड हार्डवेयर पर भी।
लोकल एजेंट्स को उस तरह पूर्ण विकास परिवेश तक पहुँच भी नहीं होती, जैसी किसी इंजीनियर को होती है। इसके बिना, एजेंट अपने काम का स्वयं परीक्षण या सत्यापन नहीं कर सकते। डेवलपर्स को फिर भी परिवेश कॉन्फ़िगर करना, एंड-टू-एंड परीक्षण चलाना, और कुछ भी शिप होने से पहले परिवर्तनों को मैन्युअली सत्यापित करना पड़ता है।
क्लाउड एजेंट को लोकल सीमाओं से आगे ले जाता है
बेहतर समानांतरता और स्वायत्तता के लिए, Amplitude ने Cursor के क्लाउड एजेंट का रुख किया। कुछ क्षमताएँ खास तौर पर उभरकर सामने आईं:
- बड़े पैमाने पर समानांतर निष्पादन: क्लाउड एजेंट पृथक, स्केलेबल VM में चलते हैं, जिससे वे संसाधन संबंधी सीमाएँ हट जाती हैं जो लोकल समानांतरता को बाधित करती हैं।
- पूर्ण dev परिवेश: क्लाउड एजेंट ठीक वैसे ही अपने काम का परीक्षण, सत्यापन और उस पर दोहराव कर सकते हैं जैसे कोई इंजीनियर करता है, क्योंकि उन्हें एक पूर्ण विकास परिवेश तक पहुँच मिलती है।
- लंबे समय तक चलने वाला निष्पादन: Amplitude अब छोटे, समकालिक कार्यों के बजाय क्लाउड एजेंट को अधिक गहरे और महत्वाकांक्षी काम शुरू से अंत तक सौंप रहा है।
- हमेशा-सक्रिय एजेंट: Cursor Automations, Amplitude को ऐसे क्लाउड एजेंट सेट अप करने देते हैं जो मैन्युअल प्रॉम्प्टिंग के बजाय ट्रिगर्स या आवर्ती शेड्यूल के जवाब में चलते हैं।
हम Cursor में एक साथ कई क्लाउड एजेंट चला रहे हैं, और हर एक को हमारे टूल स्टैक तक पूरी पहुँच है। ऐसे एजेंट स्पिन अप कर पाने की क्षमता, जो लोकल संसाधन सीमाओं से नहीं टकराते और जिन्हें लगातार सूक्ष्म-प्रबंधन की ज़रूरत नहीं होती, हमारे लिए एक बड़ा बदलाव साबित हुई है।
Amplitude के इंजीनियर अब काम के प्रकार के आधार पर क्लाउड और लोकल एजेंट के बीच स्विच करते हैं। नए विचार अक्सर क्लाउड में शुरू होते हैं, जहाँ Cursor का harness एजेंट को लंबे समय तक स्वतंत्र रूप से काम करने देता है। कई इंजीनियर सीधे उन Slack थ्रेड्स से Cursor शुरू करते हैं, जहाँ फ़ीचर आइडियाज़ पर चर्चा हो रही होती है।
डेवलपर्स एजेंट को लोकल में तब लाते हैं, जब वे अधिक नियंत्रित पुनरावृत्ति पर ध्यान केंद्रित करना चाहते हैं या बारीक विवरणों के और करीब जाना चाहते हैं। Cursor, क्लाउड और लोकल दोनों में एकीकृत कार्यस्थान के रूप में काम करता है।
Cursor आपके अलग-अलग समानांतर एजेंट को ऑर्केस्ट्रेट करने के लिए सबसे अच्छा इंटरफ़ेस देता है। आप ऊँचे स्तर पर रह सकते हैं या ज़रूरत पड़ने पर डिफ और फ़ाइलों जैसे विवरणों में उतर सकते हैं।
क्लाउड एजेंट अपनाने के बाद से, Amplitude ने साप्ताहिक उत्पादन कमिट्स में 3 गुना वृद्धि देखी है। कमिट वॉल्यूम के हिसाब से Cursor, Amplitude के कोडबेस में शीर्ष 3 योगदानकर्ताओं में शामिल हो गया है, और हर हफ्ते 1,000 से अधिक एजेंट रन बिना किसी प्रॉम्प्टिंग या डेवलपर हस्तक्षेप के शुरू किए जाते हैं।
क्लाउड वह जगह है जहाँ सॉफ़्टवेयर बनता है, और लोकल वह जगह है जहाँ हम परीक्षण करते हैं और दोहराव करते हैं। इन दोनों के बीच निर्बाध हैंडऑफ़ के लिए Cursor का समर्थन, Amplitude के उत्पाद वेग को खोलने वाली अहम कुंजी रहा है।
Slack से टिकट से PR तक
Amplitude में समर्पित Slack चैनल हैं, जहाँ फ़ील्ड टीमें ग्राहकों की बग रिपोर्ट और फ़ीचर अनुरोध साझा करती हैं। Cursor से पहले, इन चैनलों की निगरानी करने, समस्याओं की छँटाई करने, टिकट्स को आगे बढ़ाने और बैकलॉग से काम असाइन करने के लिए उनके पास एक समर्पित टीम सदस्य था।
फिर, Pauly ने इस पूरे वर्कस्ट्रीम को एजेंट्स को सौंपने के लिए एक Cursor Automation बनाया। जब Slack में कोई नया संदेश आता है, तो एक क्लाउड एजेंट Linear में जाँच करता है कि उस समस्या के लिए पहले से कोई टिकट मौजूद है या नहीं। अगर है, तो एजेंट उसमें ग्राहक से जुड़ा नया संदर्भ जोड़ देता है। अगर नहीं, तो एजेंट कोडबेस खंगालता है, एक नया टिकट खोलता है, और लागू किए गए समाधान के साथ एक PR भी खोलता है।
Cursor Automations हमें ग्राहकों और हमारे इंजीनियरों के बीच की दूरी कम करने में मदद कर रहे हैं। हम ग्राहकों की ज़रूरतों को अधिक तेज़ी से और बेहतर समाधानों के साथ पूरा कर पा रहे हैं।
आप Slack रिपोर्ट्स को PRs में बदलने के लिए इस टेम्पलेट से एक स्वचालन बनाना शुरू कर सकते हैं।
स्वचालित लीगेसी रिफैक्टरिंग
Amplitude के फ़्रंटएंड कोडबेस में वर्षों से अलग-अलग और परस्पर टकराने वाले पैटर्न जमा होते गए थे, जिनमें लीगेसी CSS कंपोनेंट, पुराने React लेआउट, और असंगत स्टाइलिंग नियम शामिल थे।
हमारे पास इतने सारे परस्पर टकराने वाले लीगेसी पैटर्न हैं कि एजेंट्स के लिए आगे बढ़ने का सही रास्ता समझना मुश्किल हो जाता है। यह 'जैसा इनपुट, वैसा आउटपुट' वाली समस्या है।
इसे ठीक करने के लिए, Lohner ने cron-आधारित Cursor Automations का एक सेट बनाया, जो हर घंटे चलकर लीगेसी माइग्रेशन को धीरे-धीरे आगे बढ़ाते हैं। एक स्वचालन CSS फ़ाइलों को स्कैन करता है, उन स्टाइल्स की पहचान करता है जिन्हें सीधे Tailwind classes से बदला जा सकता है, फिर वे बदलाव करता है, पुरानी फ़ाइलें हटाता है, एक PR खोलता है, और Slack सूचना पोस्ट करता है। दूसरा Amplitude में लीगेसी React लेआउट कंपोनेंट्स के 20,000 से ज़्यादा instances को native Tailwind equivalents से बदलता है।
इन माइग्रेशन को क्लाउड में स्वचालन के रूप में चलाने का मतलब है कि वे लगातार पृष्ठभूमि में होते रहते हैं, बिना दूसरे काम में बाधा डाले या डेवलपर्स का समय लिए।
एजेंट-नेतृत्व वाली कोड समीक्षा
Amplitude की इंजीनियरिंग वेग को धीमा करने वाली दूसरी बड़ी बाधा मैन्युअल कोड समीक्षा थी। Amplitude एक ऐसी एजेंट-प्रथम समीक्षा प्रक्रिया चाहता था जो उत्पाद की विश्वसनीयता बढ़ाए और डेवलपर्स के काम में रुकावटें कम करे।
Amplitude ने Bugbot को अपनी समर्पित एजेंटिक समीक्षा परत के रूप में लागू किया। इसका अपनाना स्वाभाविक रूप से बढ़ा, क्योंकि डेवलपर्स ने देखा कि Amplitude के कोडबेस के आकार और जटिलता को देखते हुए Bugbot उन समस्याओं को पकड़ रहा था जो मानवीय समीक्षक छोड़ दे रहे थे।
Bugbot नियमित रूप से बेहद मुश्किल बग्स पकड़ लेता है और समस्याओं के लिए ठोस समाधान सुझाता है।
Lohner ने एक Cursor Automation भी बनाया, जो हर PR के जोखिम-प्रभाव स्तर का आकलन करता है। कम-जोखिम वाले परिवर्तन मर्ज तक बढ़ सकते हैं, जहाँ Bugbot डेवलपर के हस्तक्षेप के बिना समस्याओं की समीक्षा करता है और उन्हें ऑटोफिक्स करता है। अधिक जटिल लॉजिक परिवर्तनों वाले उच्च-जोखिम PRs स्वचालित रूप से सही इंजीनियरों के पास भेज दिए जाते हैं। लगभग 60-70% कम-जोखिम PRs बिना किसी अतिरिक्त डेवलपर कार्य के मर्ज हो जाते हैं। आप इस टेम्पलेट की मदद से Slack रिपोर्टों को PRs में बदलने वाला एक स्वचालन बनाना शुरू कर सकते हैं।
वास्तविक, उत्पादन-स्तर के लिए खतरनाक बग्स को बार-बार पकड़ने का Bugbot का ट्रैक रिकॉर्ड इसे हमारी कोड समीक्षा प्रक्रिया का एक अहम हिस्सा बना चुका है।
इसके बाद, Amplitude विकास जीवनचक्र के उत्तरार्ध में स्वचालन को आगे बढ़ाने पर केंद्रित है: CI/CD पाइपलाइन, बिल्ड सत्यापन, और परिनियोजन। लक्ष्य यह है कि एजेंट्स डेवलपर के हस्तक्षेप के बिना समीक्षित PR से सॉफ़्टवेयर को उत्पादन तक पहुँचा दें।
यदि आप Cursor के साथ स्वायत्त विकास पाइपलाइन बनाने में रुचि रखते हैं, तो Cursor ट्रायल शुरू करने के लिए कृपया हमारी टीम से संपर्क करें।