-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 3 Your First Agent Task ur
🌎 زبان: اردو — تمام ۳۳ زبانیں دیکھیں
مقصد: اپنے ایجنٹ کو ہدایت دے کر CLI میں ایک بالکل نئی کمانڈ شامل کرنا — مکمل
طور پر۔ ہم lockedin endorse شامل کریں گے: یہ اجنبیوں کی ایسی مہارتوں کے لیے
توثیق کرتا ہے جو تقریباً یقیناً ان کے پاس نہیں۔ عین برانڈ کے مطابق۔
یہ ٹیوٹوریل کا دل ہے۔ آپ اصل لوپ کی مشق کریں گے: اسپیک → ٹیسٹ → نفاذ → سبز گیٹ → جائزہ۔
← پچھلا: ٹیوٹوریل ۲ کوڈ کیسے کام کرتا ہے · اگلا: ٹیوٹوریل ۴ پرامپٹنگ اور جائزہ
کچھ بھی پرامپٹ کرنے سے پہلے، سادہ زبان میں خود اسپیک لکھیں۔ مبہم درخواستیں مبہم کوڈ دیتی ہیں — چاہے کسی انسان سے ہوں یا کسی ایجنٹ سے۔
endorse۵–۷ لائنیں پرنٹ کرتا ہے، ہر ایک بے ترتیب طور پر منتخب شخص (موجودہNAMESپول دوبارہ استعمال کریں) کی کسی بے ترتیب منتخب بز ورڈ مہارت (ایک نیا پول) کے لیے توثیق کرتی ہے۔ یہ ایک طنزیہ ایک-لائنر پر ختم ہوتا ہے۔ اسےlockedin endorseکے طور پر، سیشن کے اندر/endorseکے طور پر، اورhelpمیں نظر آنا چاہیے۔ تمام بے ترتیبی کو سیڈ شدہpick/shuffleمددگاروں کا استعمال کرنا چاہیے تاکہ آؤٹ پٹ قابلِ تعیّن رہے۔npm testسبز رہنا چاہیے، اور کم از کم ایک ناقابلِ تغیر شرط کو طے کرنے والا ایک نیا ٹیسٹ ہونا چاہیے۔
وہ پیراگراف وہی چیز ہے جو آپ ایجنٹ کو سونپیں گے۔ غور کریں کہ یہ باب ۲ کی پابندیوں کا نام لیتا ہے (سیڈ شدہ RNG، ٹیسٹ گیٹ، ناقابلِ تغیر شرائط کی عادت)۔
منصوبہ مانگ کر شروع کریں۔ یہ آپ کا موقع ہے کہ کسی فائل کے بدلنے سے پہلے کسی برے طریقے کو پکڑ لیں۔
"میں LockedIn CLI میں ایک
endorseکمانڈ شامل کرنا چاہتا ہوں۔ یہ رہی اسپیک: [paste your spec]۔ کوڈ لکھنے سے پہلے، مجھے بتاؤ کہ تم کون سی فائلیں بدلو گے اور تمہارا طریقہ کیا ہے، تاکہ میں اسے منظور کر سکوں۔connectجیسی کمانڈ کے موجودہ نمونوں کی پیروی کرو۔"
ایک اچھا منصوبہ ان کا ذکر کرتا ہے: src/lockedin.js میں ایک نیا SKILLS پول +
ایک renderEndorse()، اسے dispatch() اور handleSlash() میں جوڑنا،
renderHelp() میں ایک قطار شامل کرنا، نئے فنکشن/پول کو ایکسپورٹ کرنا، اور دونوں
ٹیسٹ فائلوں میں ٹیسٹ شامل کرنا۔ اگر منصوبہ سیڈ شدہ-RNG اصول یا ٹیسٹ سے چوک جائے، تو
ابھی کہہ دیں۔
ایجنٹ سے کہیں کہ نفاذ سے پہلے ٹیسٹ لکھے۔ ٹیسٹ-پہلے آپ کی اسپیک کو کسی قابلِ عمل چیز میں بدل دیتا ہے، اور یہ ایجنٹ کو ایماندار رکھتا ہے۔
"زبردست۔ پہلے، صرف ناکام ہونے والے ٹیسٹ شامل کرو: ایک یونٹ ٹیسٹ کہ
renderEndorse()ایسا متن واپس کرے جو ایک معلوم مہارت اور کم از کم ۵ توثیقات کا ذکر کرے، اور ایکcli.test.jsٹیسٹ کہlockedin endorse0 پر ختم ہو اور ایک توثیق پرنٹ کرے۔ ایک مقررہ سیڈ استعمال کرو۔ ابھیrenderEndorseنافذ مت کرو — پہلے ٹیسٹ ناکام ہوتے دیکھیں۔"
انہیں چلائیں اور درست وجہ سے ناکام ہوتے دیکھیں (فنکشن ابھی موجود نہیں):
npm testاب نفاذ کو سبز جھنڈی دکھائیں:
"اب اسے نافذ کرو تاکہ وہ ٹیسٹ پاس ہو جائیں،
connectنمونے کی پیروی کرتے ہوئے۔ ~۲۵ بز ورڈ مہارتوں کا ایکSKILLSپول شامل کرو، ایکrenderEndorse()جو ایک اسٹرنگ واپس کرے،dispatchاورhandleSlashجوڑو، ایکhelpقطار شامل کرو، اور جو کچھ تم نے شامل کیا اسے ایکسپورٹ کرو۔ بے ترتیبی کے لیے صرفpick/shuffleاستعمال کرو۔"
ایجنٹ جو پیدا کرے وہ باقی فائل جیسا ہی لگنا چاہیے۔ مثال کے طور پر، ایک SKILLS پول
اور ایک رینڈرر:
const SKILLS = [
'فکری قیادت', 'ہم آہنگی', 'کہانی گوئی', 'وائبز',
'اسٹریٹجک نیند', 'اسٹیک ہولڈر ہم آہنگی', 'انتہائی بے باکی', /* ...~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] + ' کے لیے توثیق کی'));
out.push('', ' آپ نے 6 اجنبیوں کی ایسی مہارتوں کی توثیق کی جن کی آپ تصدیق نہیں کر سکتے۔ وہ ایک گھنٹے کے اندر آپ کی توثیق واپس کریں گے۔');
return out.join('\n');
}…نیز dispatch() اور handleSlash() میں ایک-ایک لائن، renderHelp() میں ایک
قطار، اور module.exports میں SKILLS, renderEndorse شامل۔
npm testسبز؟ آپ نے ابھی ایک ایجنٹ کے ساتھ، ٹیسٹ-پہلے، ایک فیچر شپ کیا۔ سبز نہیں؟ یہ معمول ہے — باب ۴ کے دہرائی لوپ میں جائیں اور ایجنٹ کو بالکل بتائیں کہ کیا ناکام ہوا۔
پھر اصل چیز کو خود آنکھوں سے دیکھیں (ٹیسٹ متن چیک کرتے ہیں، مگر آپ کو پھر بھی دیکھنا چاہیے):
node bin/lockedin.js endorse
LOCKEDIN_SEED=1 node bin/lockedin.js endorse # reproducibleکبھی ایسا diff قبول نہ کریں جو آپ نے نہ پڑھا ہو۔ خاص طور پر ان چیزوں کے لیے سرسری نظر ڈالیں:
-
کیا اس نے نمونے کی پیروی کی؟ نئی کمانڈ کو
connectکی عکاسی کرنی چاہیے — کوئی نئے انحصار نہیں،src/کے اندر کوئیconsole.logنہیں۔ -
صرف سیڈ شدہ RNG؟ diff میں
Math.randomتلاش کریں۔ کوئی نہیں ہونی چاہیے۔ - کیا اس نے کسی ایسی چیز کو چھوا جسے نہیں چھونا چاہیے تھا؟ تبدیلی اضافی ہونی چاہیے؛ غیر متعلقہ لائنوں کو ہلنا نہیں چاہیے۔
-
کیا نیا ٹیسٹ بامعنی ہے؟ اگر بعد میں کوئی فیچر توڑے تو اسے ناکام ہونا چاہیے —
محض
trueکا دعویٰ نہیں کرنا چاہیے۔
اگر کچھ گڑبڑ ہو، تو درستی مانگیں (باب ۴)۔ اگر یہ اچھا ہے، تو آپ کا کام مکمل ہے۔
اوپر کا پورا لوپ حقیقتاً کریں۔ پھر، اضافی نمبروں کے لیے، ایجنٹ سے کہیں کہ اسے بڑھائے:
- "
endorseکو ایک اختیاری نام قبول کرنے دو:lockedin endorse Adaکو خاص طور پر Ada کی توثیق کرنی چاہیے۔ ایک ٹیسٹ شامل کرو، گیٹ سبز رکھو۔"
اب آپ نے ایک فیچر مکمل طور پر بنا لیا ہے۔ آخری باب اسے سلاست سے کرنے کے بارے میں ہے — ایک لیڈ انجینئر کی طرح پرامپٹنگ اور جائزہ۔
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.