agentic-development-claude-loop.html
< BACK विंटेज रील-टू-रील टेप मशीन एक गर्म एम्बर-रोशनी वाले स्टूडियो में ऑटोनॉमस रूप से चल रही है, 35mm फिल्म ग्रेन

एजेंटिक डेवलपमेंट: Claude को पूरी लूप चलाने दें

पिछले अक्टूबर मैंने Claude को एक काफी बोरिंग टास्क दिया: "WordPress REST API wrapper को PHP में स्कैफोल्ड करो, इसके लिए PHPUnit टेस्ट लिखो, इन्हें चलाओ, जो कुछ भी फेल हो उसे फिक्स करो।" मैंने इसे एक लोकल Claude tool-use सेटअप के माध्यम से मेरे टर्मिनल तक एक्सेस दिया और चाय बनाने चला गया। बारह मिनट बाद वापस आया। सभी टेस्ट ग्रीन थे। मेरे पास एक काम करने वाला wrapper था 94% कवरेज के साथ और एक छोटी इनलाइन कमेंट जहाँ Claude ने एक एज केस को पकड़ा था जिसका मैंने ब्रीफ में जिक्र नहीं किया था। मैं Bermondsey में अपनी किचन में खड़ा होकर सच में असहज महसूस कर रहा था।Claude tool-use setup and walked away to make tea. Came back twelve minutes later. Tests were green. I had a working wrapper with 94% coverage and a small inline comment where Claude had caught an edge case I hadn't mentioned in the brief. I stood there in my kitchen in Bermondsey genuinely unsettled.

यही एजेंटिक डेवलपमेंट है। ऑटोकंप्लीट नहीं, एक स्मार्टर Stack Overflow नहीं। एक मॉडल जो किसी लक्ष्य के बारे में सोचता है, अगली एक्शन चुनता है, इसे एक्सीक्यूट करता है, नतीजा देखता है, और तब तक लूप करता है जब तक यह पूरा न हो जाए। और यह Seahawk Media में मेरे प्रोजेक्ट चलाने के तरीके को पिछले नौ सालों में लगभग किसी और चीज से ज्यादा तेजी से बदल रहा है।

"एजेंटिक" का असल मतलब क्या है (और क्या नहीं)

चलिए सटीक हों, क्योंकि यह शब्द आमतौर पर ढीले तरीके से इस्तेमाल होता है। एक एजेंटिक AI लूप में तीन चीजें होती हैं: एक लक्ष्य, टूल्स का एक सेट, और यह तय करने की क्षमता कि अगला क्या करना है जो अभी हुआ है उसके आधार पर। मॉडल सिर्फ टेक्स्ट जेनरेट नहीं कर रहा। यह काम कर रहा है, देख रहा है, और फिर से प्लान कर रहा है।

यह जादू नहीं है। मॉडल अभी भी फंक्शन सिग्नेचर को हैलूसिनेट कर सकता है। यह खुद को एक कोने में लूप कर सकता है सात बार एक ही गलत फिक्स को दोहराते हुए। यह स्टेप एक पर आपके लक्ष्य को गलत समझ सकता है और दस स्टेप्स के लिए आत्मविश्वास से गलत दिशा में बिल्ड कर सकता है। मैंने सभी को देखा है। एक बार, एक React dashboard प्रोजेक्ट पर, Claude ने लगभग बीस मिनट बिताए एक समस्या को हल करने के लिए तेजी से बैरोक null चेक जोड़ते हुए जो वास्तव में एक मिसिंग await था। वह मेरी गलती थी, मैंने इसे एक अस्पष्ट इनिशियल स्पेक दिया।not is magic. The model can still hallucinate a function signature. It can loop itself into a corner doing the same wrong fix seven times. It can misunderstand your goal at step one and build confidently in the wrong direction for ten steps. I've seen all of these. Once, on a React dashboard project, Claude spent about twenty minutes adding increasingly baroque null checks to solve a problem that was actually a missing await. That one was my fault, I gave it a vague initial spec.

जो व्यावहारिकों के लिए मायने रखता है उसका अंतर: संकीर्ण एजेंटिक कार्य खुले-अंत वाले कार्यों को मात देते हैं। "एक slug sanitisation फंक्शन लिखें और परीक्षण करें जो अरबी, जापानी और emoji को संभालता है" एक शानदार एजेंटिक कार्य है। "मेरे लिए एक SaaS बनाओ" नहीं है। इसे सीमित रखें, नहीं तो आप गलत मोड़ों की समीक्षा करने में उतना समय लगाएंगे जितना आपने कोड लिखने में लगाते।narrow agentic tasks beat open-ended ones. "Write and test a slug sanitisation function that handles Arabic, Japanese, and emoji" is a great agentic task. "Build me a SaaS" is not. Scope it tight, or you'll spend more time reviewing wrong turns than you would have spent just writing the code.

असल Stack जो मैं इस्तेमाल कर रहा हूँ

यहाँ टूल्स बहुत महत्वपूर्ण हैं। सही scaffolding के बिना, "agentic Claude" सिर्फ एक चैट विंडो है।

Seahawk में मेरा वर्तमान सेटअप:

  • [Claude API](https://www.anthropic.com/api) tool-use के साथ, विशेष रूप से computer_use बीटा और कस्टम bash/filesystem टूल्स, specifically the computer_use beta and custom bash/filesystem tools
  • Cursor IDE लेयर के रूप में, Claude 3.5 Sonnet को backend मॉडल के रूप में सेट किया गया है as the IDE layer, with Claude 3.5 Sonnet set as the backend model
  • pytest / PHPUnit / Jest प्रोजेक्ट के आधार पर, क्योंकि Claude को लूप करने के लिए एक निर्धारित सिग्नल चाहिए। टेस्ट आउटपुट के बिना, वह अंधा उड़ रहा है। depending on the project, because Claude needs a deterministic signal to loop on. Without test output, it's flying blind.
  • एक छोटा system prompt जो Claude को बताता है कि प्रोजेक्ट स्ट्रक्चर क्या है, कोडिंग स्टैंडर्ड्स क्या हैं, और महत्वपूर्ण बात, यदि वह निर्दिष्ट डायरेक्टरी के बाहर एक नई फाइल बनाने वाला है तो रुकना और पूछना है। that tells Claude what the project structure is, what the coding standards are, and, this is important, to stop and ask if it's about to create a new file outside the specified directory.

वह अंतिम बाधा मामूली लगती है। यह नहीं है। एजेंटिक मॉडल्स खुशी-खुशी पूरे नए मॉड्यूल्स को scaffold करेंगे अगर उन्हें लगता है कि यह लक्ष्य को पूरा करता है। फाइल सिस्टम पर guardrails ने मुझे कई "यह कहाँ से आया?" के पलों से बचाया है।

एक चीज जो मैं इस्तेमाल नहीं करता: ज्यादातर काम के लिए multi-agent orchestration frameworks। LangChain, AutoGen, CrewAI, ये सच में दिलचस्प हैं, लेकिन solo developer या छोटी-agency के उपयोग के लिए, agents-talk-to-agents को कॉन्फ़िगर करने का ओवरहेड आमतौर पर लायक नहीं होता। एक अच्छी तरह से परिभाषित Claude लूप तीन खराब तरीके से परिभाषित agents को एक-दूसरे पर चिल्लाते हुए हराता है।

मैं एक लूप-योग्य कार्य को कैसे संरचित करता हूँ

यह वह है जो मैंने इस साल शायद 200+ एजेंटिक सेशन के बाद तय किया है। मॉडल को एक कार्य विवरण दें जिसमें चार चीजें हों:

  1. लक्ष्य, विशिष्ट, परीक्षणीय, 30 चरणों में पूरा करने के लिए काफी छोटा, specific, testable, small enough to finish in under 30 steps
  2. प्रारंभिक स्थिति, कौन सी फाइलें मौजूद हैं, कौन सी परीक्षाएं पहले से पास हो रही हैं, what files exist, what tests already pass
  3. सफलता की शर्त, आमतौर पर "सभी परीक्षाएं हरी" या एक विशिष्ट फंक्शन सिग्नेचर जो इसे बनाना चाहिए, usually "all tests green" or a specific function signature it must produce
  4. रुकने की शर्त, "अगर आपने एक ही समाधान तीन से अधिक बार आजमाया है, तो रुकें और समझाएँ कि आप कहाँ फँसे हुए हैं", "if you've tried the same fix more than three times, stop and explain why you're stuck"

वह चौथी चीज कम आंकी गई है। इसके बिना, Claude कभी-कभी हमेशा के लिए लूप करेगा। सीमा-सदा के लिए नहीं, लेकिन मैंने इसे एक जटिल regex समस्या पर 18 प्रयास करते देखा है, प्रत्येक थोड़ा अलग, कोई भी सही नहीं, कभी रुकने के लिए नहीं कि "मुझे निश्चित नहीं हूँ।" इसे स्पष्ट रूप से भ्रम को सामने लाने के लिए कहना वास्तव में कुछ है जिस पर Anthropic मॉडल spec अनिश्चितता के लिए मॉडल के दृष्टिकोण के संदर्भ में चर्चा करता है, लेकिन व्यवहार में, आपको अभी भी इसके लिए प्रॉम्प्ट की आवश्यकता है।Anthropic model spec discusses in terms of the model's approach to uncertainty, but in practice, you still need to prompt for it.

2022 में एक क्लाइंट ने हमें एक लीगेसी Magento इंस्टॉल से WooCommerce में 14,000 उत्पाद सूचियों को माइग्रेट करने का काम दिया। उस समय Claude एजेंटिक लूप नहीं कर रहा था, इसलिए हमने माइग्रेशन स्क्रिप्ट को हाथ से दो हफ्तों में लिखा। आज वही काम? मैं एक कड़ी विशिष्टता लिखूँगा, इसे Claude को Magento DB स्कीमा के लिए पढ़ने की पहुँच और एक स्टेजिंग WooCommerce इंस्टेंस के लिए लिखने की पहुँच के साथ सौंपूँगा, और इसे चलने दूँगा। मुझे वास्तव में लगता है कि हम दो दिन में पूरा हो जाते। यह अंतर है।

जहाँ Claude आश्चर्यजनक रूप से अच्छा है

मौजूदा कोड को पुनर्गठित करना

यह वह जगह है जहाँ मुझे सबसे ज़्यादा प्रभावित हुआ हूँ। इसे एक गंदी 400-लाइन की क्लास दो, इसे single responsibility की ओर refactor करने के लिए कहो, और इसे अपने unit tests को checkpoints के रूप में चलाने दो। यह पूरी फ़ाइल में context को मेरी अपेक्षा से बेहतर रखता है और passing tests को तोड़ने के बारे में genuinely सावधान है। output हमेशा वह architecture नहीं होता जो मैं चुनूँ, लेकिन यह आमतौर पर defensible होता है।I would choose, but it's usually defensible.

ऐसे कोड के लिए Tests लिखना जो तुमने नहीं लिखा

Seahawk बहुत सारे site audits और rescues करता है। हम हर समय codebases को inherit करते हैं, अक्सर zero tests के साथ और original developer कहीं नज़र नहीं आता। मैंने agentic Claude का उपयोग करना शुरू किया है inherited code के लिए एक test suite लिखने के लिए, फिर हम कुछ भी करने से पहले। यह source को पढ़ता है, function names और comments से intent को infer करता है, tests लिखता है, उन्हें चलाता है, और जब कुछ unexpectedly fail हो तो adjust करता है। पिछले महीने इसने एक silent data corruption bug को पकड़ा एक custom WooCommerce order handler में जो शायद दो साल से वहाँ था। किसी को पता नहीं था।

Boilerplate को Grind करना

REST endpoint scaffolding, CRUD migrations, admin panel forms। वह boring stuff जो एक competent developer को एक दोपहर लगता है और किसी को पसंद नहीं। Claude यहाँ fast और consistent है, और consistency वास्तव में वह है जो तुम boilerplate में चाहते हो, यह creative नहीं बनता, यह tired नहीं होता, यह सिर्फ तुम्हारे existing code को pattern-match करता है और उसे extend करता है।

यह कहाँ गलत होता है

ईमानदारी से, failures instructive हैं। यहाँ वे हैं जो मुझे सबसे अधिक hit करते हैं:

  • बड़े codebases पर context window overflow। Claude 3.5 Sonnet के पास 200k token का context window है, जो तब तक असंभव बड़ा लगता है जब तक तुम इसे एक full WP plugin के साथ 40 files के साथ नहीं खिला रहे हो। यह उन चीजों को भूलना शुरू करता है जो इसने session के शुरुआत में देखी थीं। Solution: job को smaller loops में break करो explicit checkpoints के साथ। Claude 3.5 Sonnet has a 200k token context window, which sounds enormous until you're feeding it a full WP plugin with 40 files. It starts forgetting things it saw early in the session. Solution: break the job into smaller loops with explicit checkpoints.
  • उन चीजों पर confidence जिनके बारे में यह confident नहीं होना चाहिए। Claude एक database query को fix करेगा, test को चलाएगा, यह pass हो जाता है, और success report करता है, लेकिन query अब subtly कम efficient है क्योंकि इसने एक index-friendly WHERE clause को एक subquery से swap किया। इसने stated problem को solve किया और एक unstated problem create किया। Code review अभी भी matter करता है। Claude will fix a database query, run the test, it passes, and report success, but the query is now subtly less efficient because it swapped an index-friendly WHERE clause for a subquery. It solved the stated problem and created an unstated one. Code review still matters.
  • Tool permission creep। अगर तुम इसे bash access देते हो और इसे constrain नहीं करते, तो यह उन packages के लिए npm install चलाएगा जिन्हें तुमने ask नहीं किया, या worse, एक network request करेगा जिसे तुमने sanction नहीं किया। यह malicious नहीं है, यह model है जो helpful लगता है ऐसा कर रहा है। अपनी tool permissions को set करो शुरुआत से पहले, कुछ weird होने के बाद नहीं। If you give it bash access and don't constrain it, it will run npm install for packages you didn't ask for, or worse, make a network request you didn't sanction. This isn't malicious, it's the model doing what seems helpful. Set your tool permissions before you start, not after something weird happens.

सुरक्षा के बारे में एक नोट: अगर आप प्रोडक्शन डेटा से जुड़ी किसी भी चीज़ के विरुद्ध एजेंटिक लूप्स चला रहे हैं, तो कृपया Anthropic के स्वयं के टूल-यूज़ सेफ्टी गाइडेंस को पढ़ें। यह लंबा नहीं है, और यह आपको एक बुरे दिन से बचा लेगा।guidance on tool-use safety. It's not long, and it will save you a bad day.

एजेंटिक बिहेविअर बनाम चैट बिहेविअर के लिए प्रॉम्पटिंग

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

चीज़ें जो एजेंटिक प्रॉम्प्ट्स को काम करने देती हैं:

  1. सीमाएं पहले बताएं, आखिरी में नहीं। अधिकांश लोग उन्हें दबाते हैं।
  2. इसे बताएं कि क्या न करें। "/src/utils के बाहर किसी भी फ़ाइल को संशोधित न करें" दस पंक्तियों के सकारात्मक निर्देशों से अधिक उपयोगी है।not to do. "Do not modify any file outside /src/utils" is more useful than ten lines of positive instructions.
  3. इसे एक एस्केप हैच दें। "अगर आप एक निर्णय बिंदु पर पहुंचते हैं जहां आगे बढ़ने के लिए डेटाबेस स्कीमा बदलने की आवश्यकता होगी, तो रुकें और समझाएं कि क्यों।"
  4. टेस्ट रनर कमांड को स्पष्ट रूप से संदर्भित करें। "हर परिवर्तन के बाद ./vendor/bin/phpunit tests/ चलाएं और अपने अगले चरण के लिए आउटपुट का उपयोग करें।"./vendor/bin/phpunit tests/ after every change and use the output to guide your next step."

फ्रेमिंग शिफ्ट यह है: आप एक बहुत सक्षम लेकिन सवाल नहीं पूछ सकने वाले ठेकेदार के लिए एक ब्रीफ लिख रहे हैं। तो एक की तरह लिखें।

ऑटोनॉमी डायल: इसे कितना चलने दें

यह सवाल मुझे दूसरे एजेंसी मालिकों से सबसे ज्यादा मिलता है। क्या तुम इसकी निगरानी करोगे या इसे अपने आप चलने दोगे?

एक साल की कोशिश के बाद मेरा जवाब: यह पूरी तरह इस बात पर निर्भर करता है कि क्रियाएं कितनी प्रतिवर्ती हैं। सिर्फ़ पढ़ने वाली शोध, टेस्ट लिखना, नई डायरेक्टरी में स्कैफ़ोल्डिंग—इसे चलने दो। लेकिन जो कुछ भी लाइव डेटाबेस को छूता है, पैकेज मैनिफेस्ट में बदलाव करता है, या बाहरी APIs के साथ इंटरैक्ट करता है—हर कुछ कदमों पर जांच करो, या कम से कम एक्सीकूशन से पहले प्लान पढ़ लो।

ReAct प्रॉम्पटिंग पैटर्न (Reason + Act, 2022 के Yao et al. पेपर से) यहां समझने लायक है। यह असल में वही है जो Claude आंतरिक रूप से करता है जब तुम उसे टूल्स देते हो: वह अपने बारे में सोचता है कि क्या करना है, करता है, नतीजा पढ़ता है, फिर से सोचता है। उस तर्क को स्पष्ट करना, Claude से कहना कि हर कार्रवाई से पहले अपनी योजना प्रिंट करे, तुम्हें एक प्राकृतिक समीक्षा बिंदु देता है बिना लूप को तोड़े।ReAct prompting pattern (Reason + Act, from the 2022 Yao et al. paper) is worth understanding here. It's essentially what Claude does internally when you give it tools: it thinks out loud about what to do, does it, reads the result, thinks again. Making that reasoning visible, asking Claude to print its plan before each action, gives you a natural review point without breaking the loop.

मैंने Claude के स्टेप-बाय-स्टेप तर्क आउटपुट को उसी तरह देखना शुरू किया है जैसे मैं एक जूनियर डेवलपर के PR को देखता हूं। मैं इसे जल्दी से पढ़ता हूं। अगर कुछ गड़बड़ लगे, तो मैं हस्तक्षेप करता हूं। अगर यह उचित लगे, तो मैं इसे आगे बढ़ने देता हूं। यह मानसिक मॉडल मेरे लिए अच्छी तरह काम करती है।

FAQ

क्या agentic Claude वाकई क्लाइंट काम के लिए प्रोडक्शन-रेडी है?

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

agentic Claude और बस Cursor या GitHub Copilot का उपयोग करने में क्या फर्क है?

Cursor और Copilot इनलाइन कोड सुझाव और चैट इंटरफेस हैं। वे तुम्हारे द्वारा टाइप किए गए चीज़ों पर प्रतिक्रिया करते हैं। Agentic Claude एक लक्ष्य लेता है और स्वयं एक बहु-चरणीय योजना को एक्सीकूट करता है, टर्मिनल, फाइल सिस्टम या वेब ब्राउज़र जैसे टूल्स का उपयोग करके। यह एक ऑटोकंप्लीट इंजन और एक ऐसी प्रक्रिया के बीच का अंतर है जो दस मिनट के लिए बिना निरीक्षण के चल सकती है और एक पूर्ण कार्य के साथ वापस आ सकती है।

क्या मुझे इसे उपयोग करने के लिए कोड करना सीखना होगा?

आपको एक सुसंगत विनिर्देश लिखने के लिए पर्याप्त संदर्भ की जरूरत है और आउटपुट की आलोचनात्मक समीक्षा करने के लिए भी। अगर आप एक diff को पढ़ नहीं सकते और बता नहीं सकते कि बदलाव समझ में आता है या नहीं, तो आपका समय बेकार जाएगा। एजेंटिक AI दक्षता को बढ़ाता है। यह आधारभूत स्तर की जगह नहीं लेता।

एजेंटिक लूप्स के लिए मुझे कौन सा Claude मॉडल इस्तेमाल करना चाहिए?

Claude 3.5 Sonnet मेरा वर्तमान डिफ़ॉल्ट है। यह तर्क की गुणवत्ता और गति के बीच अच्छा संतुलन बनाता है, जो तब महत्वपूर्ण है जब आप 30-स्टेप लूप में प्रति टोकन पैसे खर्च कर रहे हों। Claude 3 Opus बहुत जटिल तर्क कार्यों में बेहतर है लेकिन धीमा और अधिक महंगा है, मैं इसे बड़ी नौकरियों के लिए शुरुआती योजना चरण में इस्तेमाल करता हूँ, फिर निष्पादन के लिए Sonnet को सौंप देता हूँ।

---

जो बात मुझे बार-बार लगती है वह यह है कि एजेंटिक विकास वास्तव में AI के डेवलपर्स की जगह लेने के बारे में नहीं है। यह इस बारे में है कि एक डेवलपर का समय कितना मूल्यवान है इसे बदलना। उन बारह मिनटों में जो मैंने पिछले अक्टूबर में वह PHP wrapper लिखने में नहीं बिताए, मैंने आर्किटेक्चर के बारे में सोचा। यह एक ऐसा सौदा है जो मैं हर बार लूँगा।

< BACK