उत्पाद

Projects का परिचय

Alexi Robbins & Fredrika Lindh6 मिनट में पढ़ें

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

फ़रवरी में हमने सॉफ्टवेयर विकास के तीसरे युग की अपनी परिकल्पना सामने रखी थी, जहाँ एजेंट के fleets पूरे-के-पूरे काम संभालते हैं। Projects उसी परिकल्पना का ठोस कार्यान्वयन है। अमूर्तता के एक स्तर ऊपर जाकर यह डेवलपर्स को एजेंट संभालने के झंझट से मुक्त करता है और उन्हें सीधे काम की दिशा तय करने देता है।

Cursor में हम कई महीनों से Projects का उपयोग कर रहे हैं — जैसे कुछ सौ PRs के माइग्रेशन चलाना, अपने डिज़ाइन सिस्टम को सुसंगत बनाए रखना, और खुद Projects को शिप करना। हमने पाया है कि यह उत्पादकता को कई गुना बढ़ा देता है: नए उपयोगकर्ता 30% अधिक PRs मर्ज करते हैं, जबकि मुख्य रूप से Projects का उपयोग करने वाले उपयोगकर्ता छह गुना अधिक।

एक coordinator के जरिए हजारों एजेंट को निर्देशित करें

आप किसी Project की निगरानी उसके coordinator एजेंट से चैट करके करते हैं। Coordinator स्वयं कोड नहीं लिखता, बल्कि उन एजेंट को निर्देशित करता है जो कोड लिखते हैं। चूँकि यह खुद काम निष्पादित करने के बजाय दूसरों को सौंपता है, यह कभी ब्लॉक नहीं होता और निर्देश मिलते ही सदैव उत्तरदायी रहता है।

Projects को संभव बनाने वाली तीन मुख्य क्षमताएँ हैं:

डिफ़ॉल्ट रूप से क्लाउड, आवश्यकता पड़ने पर स्थानीय। हर Project अपने अलग computer पर चलता है, इसलिए लैपटॉप बंद करने से वह नहीं रुकता। इससे कोई Project आपके लैपटॉप की क्षमता से कहीं अधिक उप-एजेंट समानांतर में चला सकता है। जब किसी चीज़ का परीक्षण आपकी मशीन पर करना ज़रूरी होता है, तो coordinator एक लोकल एजेंट शुरू करके उसे वहीं चलाता है।

साझा संदर्भ। हर बार कोई कार्य शुरू करते समय आपको एजेंट को शुरुआत से सब कुछ समझाना नहीं पड़ना चाहिए। हर Project फ़ाइलों का एक समूह बनाए रखता है, जो उसके एजेंट द्वारा उपयोग की जाने वाली हर क्लाउड और स्थानीय मशीन पर सिंक होता रहता है। एजेंट इसमें अनुसंधान और आर्टिफैक्ट्स जोड़ते हैं, साथ ही वह भी जो वे कोडबेस के बारे में सीखते हैं और यह भी कि आप कृति किस तरह से किया जाना पसंद करते हैं। उदाहरण के लिए, यदि कोई एजेंट यह पता लगा लेता है कि किसी सेवा का परीक्षण कैसे करना है, तो भविष्य का हर एजेंट उन निर्देशों का उपयोग कर सकता है। यह संदर्भ Project के साथ-साथ बढ़ता जाता है, जिससे coordinator समय के साथ और अधिक प्रभावी होता जाता है।

Subscriptions. Coordinator किसी Slack चैनल पर नज़र रख सकता है, शेड्यूल पर चल सकता है, या आपके सभी PRs को फ़ॉलो कर सकता है—CI ठीक करते हुए और उनके खुलने या मर्ज होने पर कार्रवाई करते हुए। इस तरह यह आपके प्रॉम्प्ट का इंतज़ार किए बिना, अपने पता लगाए गए संकेतों के आधार पर कार्रवाई कर सकता है।

Cursor में हम Projects का उपयोग कैसे करते हैं

हमारे इंजीनियर Projects के साथ जो कुछ करते हैं, उसका ज़्यादातर हिस्सा तीन पैटर्न में आ जाता है।

सुविधा कृति

अधिकांश इंजीनियर किसी बड़े काम के लिए एक Project बनाते हैं। कोई सुविधा आमतौर पर वहाँ से शुरू होता है जहाँ एजेंट सिस्टम पर अनुसंधान करते हैं और जो सीखते हैं उसे साझा संदर्भ के रूप में रिकॉर्ड करते हैं। इसके बाद coordinator एक योजना बनाता है और उसके अलग-अलग हिस्सों को समानांतर में लागू करने और परीक्षण करने के लिए एजेंट भेजता है।

फ़ीडबैक के हर टर्न के साथ Project आपके आर्किटेक्चर और प्राथमिकताओं को सीखता जाता है। जब सुविधा आज़माने के लिए तैयार हो जाता है, तो coordinator आपके कंप्यूटर पर एजेंट शुरू करके उसे स्थानीय रूप से चला सकता है। शिप होने के बाद वही Project लॉग्स की निगरानी कर सकता है और मूल निर्णयों के पीछे के पूरे संदर्भ के साथ बग रिपोर्ट संभाल सकता है।

माइग्रेशन

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

आप coordinator के साथ मिलकर एक सुरक्षित तरीका तय करते हैं, और फिर वह उस तरीके को थोड़ा-थोड़ा करके पूरे कोडबेस पर लागू करता है। शुरुआत में आप हर PR की बारीकी से समीक्षा करते हैं। जैसे-जैसे सुधार भरोसेमंद साबित होते जाते हैं, आपकी समीक्षा कम होती जाती है और coordinator खुद ही माइग्रेशन को आगे बढ़ाता रहता है।

Gardening

Projects ऐसे कामों के लिए बेहतरीन हैं जो कभी खत्म नहीं होते, जैसे कोड गुणवत्ता का रखरखाव करना या रिग्रेशन पर नज़र रखना। आप coordinator से कह सकते हैं कि वह नए PRs को फ़ॉलो करे, Slack में बग रिपोर्ट सुने, या शेड्यूल पर चले — और जब भी नया काम सामने आता है, वह कार्रवाई करता है।

हमारी टीम का एक इंजीनियर इसी तरह एक डिज़ाइन-सिस्टम Project चलाता है। शुरुआत में इंजीनियर हर सुधार की समीक्षा करता था और जो गलत होते थे उन्हें ठीक करता था। अब coordinator हर नए PR को स्कैन करता है, उन घटकों को निकालता है जो डिज़ाइन सिस्टम में आने चाहिए, और जब भी वही गलती दो बार दिखती है तो एक lint नियम जोड़ देता है। यह Project रोज़ाना 20 से 100 PRs तक पहुँचने की राह पर है, इसलिए coordinator काम को व्यवस्थित करता है और इंजीनियर वहीं ध्यान देता है जहाँ ज़रूरत होती है।

Projects के साथ शुरू करें

Projects बीटा में उपलब्ध है और आज से सभी उपयोगकर्ताओं के लिए धीरे-धीरे उपलब्ध कराया जा रहा है। बाईं ओर के नेविगेशन से एक Project शुरू करें, बताएँ कि आप क्या बनवाना चाहते हैं, और आगे का काम coordinator सँभाल लेता है। यह ऐसे कामों पर सबसे बेहतर चलता है जो एक ही चैट से आगे तक खिंचते हैं—चाहे वह कई PRs वाली कोई सुविधा हो, कोई माइग्रेशन हो, या कोई ऐसा job जिसे आप अपनी अनुपस्थिति में निपटाना चाहते हैं।