Skip to content

Tutorial 3 Your First Agent Task hi

James Morris edited this page Jul 29, 2026 · 1 revision

ट्यूटोरियल 3 · आपका पहला एजेंट टास्क

लक्ष्य: अपने एजेंट को निर्देशित करके CLI में एक बिल्कुल नया कमांड जोड़ना — शुरू से अंत तक। हम lockedin endorse जोड़ेंगे: यह पूरी तरह अनजान लोगों को उन skills के लिए endorse करता है जो लगभग निश्चित रूप से उनके पास नहीं हैं। एकदम brand पर।

यह ट्यूटोरियल का दिल है। आप असली loop का अभ्यास करेंगे: spec → tests → implementation → हरा गेट → review।

← पिछला: ट्यूटोरियल 2 कोड कैसे काम करता है · अगला: ट्यूटोरियल 4 प्रॉम्प्टिंग और रिव्यू


चरण 0 — तय करें कि "पूरा" कैसा दिखता है

कुछ भी prompt करने से पहले, spec को खुद सादी भाषा में लिखें। अस्पष्ट अनुरोध अस्पष्ट कोड लाते हैं — किसी इंसान या एजेंट से।

endorse 5–7 लाइनें print करता है, हर एक किसी randomly चुने व्यक्ति को (मौजूदा NAMES pool दोबारा इस्तेमाल करें) किसी randomly चुने buzzword skill के लिए (एक नया pool) endorse करती है। यह एक satirical one-liner पर समाप्त होता है। यह lockedin endorse के रूप में, in-session /endorse के रूप में reachable होना चाहिए, और help में दिखना चाहिए। सारी randomness को seeded pick/shuffle helpers इस्तेमाल करने ही चाहिए ताकि output deterministic रहे। npm test हरा रहना चाहिए, और एक नया test होना चाहिए जो कम से कम एक invariant को pin करे।

वही पैराग्राफ़ वह चीज़ है जो आप एजेंट को देंगे। ध्यान दें कि यह अध्याय 2 की constraints के नाम लेता है (seeded RNG, test गेट, invariant की आदत)।

चरण 1 — एजेंट से plan माँगें, code नहीं

एक plan माँगकर शुरू करें। किसी भी फ़ाइल के बदलने से पहले एक खराब approach पकड़ने का यह आपका मौका है।

"मैं LockedIn CLI में एक endorse कमांड जोड़ना चाहता हूँ। spec यह है: [paste your spec]। कोड लिखने से पहले, बताओ कौन-सी फ़ाइलें बदलोगे और तुम्हारा approach क्या है, ताकि मैं मंज़ूरी दे सकूँ। connect जैसे कमांड के मौजूदा pattern को follow करो।"

एक अच्छा plan उल्लेख करता है: एक नया SKILLS pool + src/lockedin.js में एक renderEndorse(), उसे dispatch() और handleSlash() में जोड़ना, renderHelp() में एक row जोड़ना, नए function/pool को export करना, और दोनों test फ़ाइलों में tests जोड़ना। अगर plan seeded-RNG नियम या tests छोड़ता है, अभी कहें।

चरण 2 — Test-first

एजेंट से implementation से पहले tests लिखने को कहें। Test-first आपके spec को कुछ executable में बदल देता है, और यह एजेंट को ईमानदार रखता है।

"बढ़िया। पहले, सिर्फ़ failing tests जोड़ो: एक unit test कि renderEndorse() एक ज्ञात skill और कम से कम 5 endorsements का ज़िक्र करने वाला text लौटाता है, और एक cli.test.js test कि lockedin endorse exit 0 करता है और एक endorsement print करता है। एक fixed seed इस्तेमाल करो। renderEndorse अभी implement मत करो — पहले tests fail होते देखें।"

उन्हें चलाएँ और उन्हें सही कारण से fail होते देखें (function अभी मौजूद नहीं):

npm test

चरण 3 — एजेंट को implement करने दें

अब implementation को हरी झंडी दें:

"अब उन tests को पास कराने के लिए इसे implement करो, connect pattern को follow करते हुए। ~25 buzzword skills का एक SKILLS pool, एक renderEndorse() जो string लौटाए, dispatch और handleSlash जोड़ो, एक help row जोड़ो, और जो जोड़ा उसे export करो। randomness के लिए सिर्फ़ pick/shuffle इस्तेमाल करो।"

एजेंट जो बनाता है वह बाकी फ़ाइल जैसा ही दिखना चाहिए। उदाहरण के लिए, एक SKILLS pool और एक renderer:

const SKILLS = [
  'Thought Leadership', 'Synergy', 'Storytelling', 'Vibes',
  'Strategic Napping', 'Stakeholder Alignment', 'Radical Candour', /* ...~25 total... */
];

function renderEndorse() {
  const people = shuffle(NAMES).slice(0, 5 + Math.floor(rand() * 3)); // 5–7
  const skills = shuffle(SKILLS);
  const out = [''];
  people.forEach((n, i) =>
    out.push('  ✔ ' + n + ' को ' + skills[i % skills.length] + ' के लिए endorse किया'));
  out.push('', '  आपने 6 अजनबियों को ऐसी skills के लिए endorse किया जिन्हें आप verify नहीं कर सकते। वे एक घंटे के भीतर आपको भी endorse करेंगे।');
  return out.join('\n');
}

…साथ में dispatch() और handleSlash() में एक-एक line, renderHelp() में एक row, और module.exports में जोड़ा गया SKILLS, renderEndorse

चरण 4 — गेट

npm test

हरा? आपने अभी एक एजेंट के साथ, test-first, एक feature ship किया। हरा नहीं? यह सामान्य है — अध्याय 4 के iteration loop पर जाएँ और एजेंट को ठीक-ठीक बताएँ कि क्या fail हुआ।

फिर असली चीज़ पर नज़र डालें (tests text जाँचते हैं, पर आपको फिर भी देखना चाहिए):

node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse   # reproducible

चरण 5 — स्वीकार करने से पहले review करें

ऐसा diff कभी स्वीकार न करें जिसे आपने पढ़ा नहीं। खासकर इनके लिए स्किम करें:

  • क्या इसने pattern को follow किया? नया कमांड connect की तरह होना चाहिए — कोई नई dependency नहीं, src/ के अंदर कोई console.log नहीं।
  • सिर्फ़ seeded RNG? diff में Math.random खोजें। कोई नहीं होना चाहिए।
  • क्या इसने कुछ ऐसा छुआ जो नहीं छूना चाहिए था? बदलाव additive होना चाहिए; असंबंधित लाइनें नहीं हिलनी चाहिए।
  • क्या नया test सार्थक है? अगर बाद में कोई feature तोड़े तो यह fail होना चाहिए — सिर्फ़ true assert न करे।

अगर कुछ गड़बड़ है, एक fix माँगें (अध्याय 4)। अगर सही है, आपका काम पूरा।


✅ अपने एजेंट के साथ आज़माएँ

ऊपर का पूरा loop असल में करें। फिर, extra credit के लिए, एजेंट से इसे बढ़ाने को कहें:

  • "endorse को एक optional नाम लेने दो: lockedin endorse Ada को खासतौर पर Ada को endorse करना चाहिए। एक test जोड़ो, गेट हरा रखो।"

अब आपने एक feature शुरू से अंत तक बनाया है। आख़िरी अध्याय इसे सहज करने के बारे में है — एक lead engineer की तरह prompt देना और review करना।

अगला: ट्यूटोरियल 4 प्रॉम्प्टिंग और रिव्यू

📘 LockedIn CLI wiki

Tutorial

Reference


Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.

Clone this wiki locally