उत्पाद

Agent SDK का परिचय

Rustam Lalkaka6 मिनट में पढ़ें

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

सबसे उपयोगी एजेंट वे होते हैं जो किसी टीम के काम करने के तरीके के हिसाब से बने हों। अब तक, ऐसा एजेंट बनाने के लिए आम तौर पर दो ही रास्ते थे: या तो किसी और के वर्कफ़्लो को ध्यान में रखकर बनाया गया उत्पाद अपनाना, या सब कुछ शुरू से बनाना।

आज हम Agent SDK जारी कर रहे हैं—वही फ्रेमवर्क जिससे हम Bugbot, सुरक्षा समीक्षक और Rollouts जैसे अपने प्रबंधित एजेंट बनाते हैं। Agent SDK की मदद से आप एजेंट को कोड में परिभाषित कर सकते हैं और उन्हें किसी भी दूसरे सॉफ़्टवेयर प्रोजेक्ट की तरह प्रबंधित कर सकते हैं। किसी टेम्पलेट से शुरुआत करें या अपने कोडिंग एजेंट को हमारे दस्तावेज़ दें। एजेंट तैयार होते ही, agent-sdk deploy की एक ही कमांड से उसे Cursor अवसंरचना पर डिप्लॉय करें।

अपने वर्कफ़्लो के अनुरूप बिल्ड करें

Agent SDK की मदद से आप ऐसे एजेंट तेज़ी से बना और डिप्लॉय कर सकते हैं जो ठीक उसी तरह काम करते हैं जैसे आपकी टीम करती है। ये उन इवेंट्स का जवाब देते हैं जिन्हें आपकी टीम पहले से संभालती है, और ऐसी नीतियों का पालन करते हैं जिन्हें आपकी टीम जाँच सकती है और बदल सकती है।

कोड समीक्षा इसका एक उदाहरण है। हर टीम के अपने मानक होते हैं कि किन चीज़ों पर ध्यान देना ज़रूरी है और उनकी समीक्षा किसे करनी चाहिए। Agent SDK के साथ आप ऐसा एजेंट बना सकते हैं जो GitHub, GitLab या Bitbucket से आने वाले पुल रिक्वेस्ट इवेंट्स का जवाब दे। यह एजेंट किसी परिवर्तन के जोखिम का आकलन कर सकता है, उसे सही टीम तक भेज सकता है, और आपकी नीति पर खरे उतरने वाले परिवर्तनों को स्वीकृत कर सकता है।

उदाहरण के लिए, Cursor की एक टीम ने अपने अनुभवों से सीखे गए सबकों का एक बड़ा और तेज़ी से बढ़ता नॉलेज बेस तैयार किया था, और वह चाहती थी कि हर पुल रिक्वेस्ट को उसके आधार पर जाँचा जाए, ताकि कोडबेस में बदलाव होने पर भी टीम के पिछले निर्णय कायम रहें। Agent SDK के साथ उन्होंने लगभग एक दिन में kb-reviewer बना लिया। अब यह उनके मुख्य कोडबेस के हर PR पर चलता है, दर्ज किसी सबक के विपरीत जाने वाले परिवर्तनों को चिह्नित करता है, हर पहचानी गई समस्या के पीछे के नोट का हवाला देता है, और इंजीनियरों को बताई गई विसंगतियों को सुलझाने के लिए प्रेरित करता है।

अधिक जटिल कार्यों के लिए, एजेंट कोई कार्य किसी दूसरे विशेषीकृत एजेंट को सौंप सकते हैं, जिसके अपने टूल और सत्र होते हैं। वे किसी काम को समानांतर में चलने वाले कई उप-एजेंट के बीच बाँट भी सकते हैं।

Agent SDK में evals और इवेंट रीप्ले का समर्थन पहले से मौजूद है, जिससे विकास तेज़ी से होता है और यह भरोसा भी बना रहता है कि महत्वपूर्ण वर्कफ़्लो ठीक वैसे ही निष्पादित हों जैसी आप अपेक्षा करते हैं। PGA Tour अपने सॉफ़्टवेयर विकास कारखाने को चलाने के लिए Agent SDK का उपयोग करता है। Evals की बदौलत उनकी रफ़्तार बनी रहती है।

Agent SDK की बदौलत PGA, Cursor की अवसंरचना पर हमारे सॉफ़्टवेयर कारखाने का हर कंपोनेंट बना पाया है। यह हमें वह लचीलापन देता है जो अपनी विकास प्रक्रिया को आगे बढ़ाने वाले एजेंट बनाने के लिए ज़रूरी है। साथ ही, evals के बिल्ट-इन समर्थन की बदौलत हम नए विचारों को तेज़ी से आज़मा पाते हैं और मौजूदा क्षमताओं को भरोसेमंद ढंग से बेहतर बना पाते हैं।

Michael Gyarmathy
प्रिंसिपल इंजीनियर, PGA America

सब कुछ कोड में परिभाषित करें

Agent SDK का एजेंट एक छोटे सॉफ़्टवेयर प्रोजेक्ट की तरह व्यवस्थित होता है। उसे दिशा देने वाले निर्देश उसके टूल्स के कोड, बाहरी सेवाओं से जुड़े कनेक्शन और उसके परीक्षण में इस्तेमाल होने वाले evals के साथ ही रखे जाते हैं।

हर फ़ाइल किसी ऐसी चीज़ को दर्शाती है जो एजेंट जानता है या कर सकता है। प्रॉम्प्ट्स Markdown में लिखे जाते हैं, जबकि टूल्स TypeScript फ़ंक्शन के रूप में परिभाषित किए जाते हैं। चूँकि सब कुछ कोड ही है, इसलिए परिवर्तनों को भी उसी संस्करण नियंत्रण और समीक्षा प्रक्रिया से गुज़ारा जा सकता है जिससे आपका बाकी सॉफ़्टवेयर गुज़रता है।

जहाँ भी आवश्यकता हो, वहाँ एजेंट डिप्लॉय करें

जब आप किसी एजेंट को उपयोग में लाने के लिए तैयार हों, तो प्रोजेक्ट डायरेक्टरी से agent-sdk deploy चलाकर उसे Cursor पर डिप्लॉय कर सकते हैं। यह कमांड एजेंट को बिल्ड करती है, उसे एक URL देती है और उसे हमारी अवसंरचना पर शुरू कर देती है। आप डैशबोर्ड से सीक्रेट्स और इंटीग्रेशन प्रबंधित कर सकते हैं, और साथ ही वही लॉग्स, evals और प्लेग्राउंड इस्तेमाल करते रह सकते हैं जो आपको स्थानीय रूप से उपलब्ध हैं।

आप एजेंट को अपनी खुद की अवसंरचना पर भी चला सकते हैं। हर एजेंट एक ही Node प्रक्रिया के रूप में चलता है, जिसे किसी कंटेनर में पैकेज किया जा सकता है।

शुरू करें

Agent SDK के साथ शुरुआत करना काफ़ी हद तक किसी भी अन्य सॉफ़्टवेयर प्रोजेक्ट को शुरू करने जैसा ही है। एक प्रोजेक्ट डायरेक्टरी बनाएँ, फिर स्थानीय प्लेग्राउंड शुरू करें:

import { homedir } from "node:os";
import { join } from "node:path";
import { defineAgent } from "@cursor/agent-sdk";

export default defineAgent({
  name: "Robo",
  model: {
    id: "composer-2.5",
    params: [
      { id: "effort", value: "high" },
      { id: "fast", value: "true" },
    ],
  },
  local: {
    cwd: join(homedir(), ".cache", "factory", "robo"),
  },
})

इसके बाद, आप स्थानीय रूप से इटरेट कर सकते हैं और agent-sdk deploy से परिनियोजन करने से पहले evals चला सकते हैं।

Agent SDK में ऐसे कौशल भी शामिल हैं जो विकास की पूरी प्रक्रिया में कोडिंग एजेंट्स का मार्गदर्शन करते हैं। आप किसी एजेंट को दस्तावेज़ दिखाकर उसके साथ मिलकर बॉट बना सकते हैं।

Agent SDK आज से सामान्य रूप से उपलब्ध है। दस्तावेज़ पढ़ें और शुरू करें।