لکھنے والے: sysls
ترجمہ: شن چاؤ ٹیک فلو
شین چاؤ کا خلاصہ: 2.6 ملین فالوورز والے ڈیولپر بلاگر sysls نے ایک لمبی، عملی مقالہ لکھا جسے 827 افراد نے شیئر کیا اور 7,000 افراد نے لائک کیا۔ اس کا مرکزی نقطہ صرف ایک جملہ ہے: آپ کے پلگ انز، میموری سسٹم اور دیگر ہارنسز زیادہ تر آپ کی مدد کے بجائے رکاوٹ بن رہے ہیں۔ یہ مقالہ نظریات نہیں بتاتا، بلکہ حقیقی پروڈکشن پروجیکٹس سے حاصل کردہ عملی اصولوں پر مشتمل ہے — جیسے کہ کنٹیکسٹ کو کنٹرول کرنا، AI کی پسندیدہ رویوں کو کیسے سنبھالنا، اور کام کے ختم ہونے کی شرائط کو کیسے تعریف کرنا۔ یہ تکنیکی طور پر دیکھا گیا سب سے واضح مقالہ ہے جس نے Claude/Codex کے انجینئرنگ عمل کو واضح کیا ہے۔
مکمل متن درج ذیل ہے:
تعارف
آپ ایک ڈیولپر ہیں، جو روزانہ کلاؤڈ اور کوڈیکس CLI استعمال کرتے ہیں، اور روزانہ سوچتے رہتے ہیں کہ کیا آپ نے ان کی صلاحیتوں کو بالکل استعمال کر لیا ہے۔ کبھی کبھی آپ دیکھتے ہیں کہ وہ بےحد انتہائی بےوقوفانہ کام کرتے ہیں، اور سمجھ نہیں پاتے کہ کچھ لوگ AI کا استعمال کرکے راکٹ کیسے بنارہے ہیں، جبکہ آپ دو پتھروں کو بھی مستحکم طور پر ایک دوسرے پر نہیں رکھ پا رہے۔
آپ کو لگتا ہے کہ آپ کا ہارنیس کا مسئلہ ہے، پلگ ان کا مسئلہ ہے، ٹرمینل کا مسئلہ ہے، وغیرہ۔ آپ نے بیڈز، اوپن کوڈ، زیپ استعمال کیا، اور آپ کا CLAUDE.md 26,000 لائنز پر مشتمل ہے۔ لیکن جتنا بھی آپ کوشش کریں، آپ نہیں سمجھ پاتے کہ آپ کیوں جنت سے دور جا رہے ہیں، جبکہ دوسرے فرشتوں کے ساتھ مزہ کر رہے ہیں۔
یہ وہی مضمون ہے جس کا آپ انتظار کر رہے تھے۔
میں کوئی مفاد نہیں رکھتا۔ میں CLAUDE.md کو AGENT.md کے ساتھ شامل کرتا ہوں، اور میں Claude کو Codex کے ساتھ شامل کرتا ہوں، میں دونوں کا زیادہ استعمال کرتا ہوں۔
گزشتہ کچھ ماہوں میں، میں نے ایک دلچسپ بات نوٹ کی: تقریباً کوئی بھی ایجنسی کی صلاحیتوں کو زیادہ سے زیادہ کرنے کا طریقہ نہیں جانتا۔
ایسا لگتا ہے جیسے کچھ لوگوں کو صرف ایک چھوٹا سا گروپ ایجنٹس کو پوری دنیا بنانے کی اجازت دے رہا ہے، جبکہ باقی لوگ ٹولز کے بڑے سمندر میں گھوم رہے ہیں اور چونکہ کچھ صحیح پیکج، مہارت یا ہارنیس کا ترکیب تلاش کر لیتے ہیں، تو وہ AGI تک پہنچ جائیں گے۔
آج، میں یہ سب کچھ توڑنا چاہتا ہوں اور آپ کو ایک سادہ، ایماندار جملہ چھوڑنا چاہتا ہوں، اور پھر ہم وہیں سے شروع کرتے ہیں۔ آپ کو تازہ ترین ایجینٹ ہارنیس کی ضرورت نہیں، نہ ہی ایک ملین پیکجز انسٹال کرنے کی، اور نہ ہی مقابلہ کے لیے ایک ملین آرٹیکلز پڑھنے کی۔ دراصل، آپ کی جوش ممکنہ طور پر آپ کے لیے زیادہ نقصان دہ ہے۔
میں سیاحت کے لیے نہیں آیا ہوں — جب سے ایجنسٹ صرف کوڈ لکھنے کی کوشش کر رہا تھا، میں نے اس کا استعمال شروع کر دیا تھا۔ میں نے تمام پیکجز، تمام ہارنسز، اور تمام پیرادائیمز آزمانے کی کوشش کی۔ میں نے ایجنسٹ فیکٹری کا استعمال کرتے ہوئے سگنلز، انفراسٹرکچر، اور ڈیٹا پائپ لائنز لکھے ہیں، یہ "ٹوی پروجیکٹس" نہیں تھے، بلکہ حقیقی پروڈکشن ماحول میں چلنے والے عملی استعمال تھے۔ اس سب کے بعد…
آج، میں نے ایک ایسی ترتیب استعمال کی جو اتنا سادہ ہے کہ مزید سادہ نہیں ہو سکتی — صرف بنیادی CLI (Claude Code اور Codex) اور ایجینٹ انجینئرنگ کے کچھ بنیادی اصولوں کی سمجھ کے ساتھ، میں نے اپنی زندگی کا سب سے زیادہ انقلابی کام تخلیق کیا۔
سمجھیں کہ دنیا تیزی سے آگے بڑھ رہی ہے
سب سے پہلے، میں یہ کہنا چاہوں گا کہ بنیادی ماڈل کمپنیاں ایک تاریخی دوڑ میں ہیں، اور واضح طور پر جلد ہی سست نہیں ہوں گی۔ ہر "ایجینٹ انٹیلیجنس" کے بہتر ہونے سے آپ کا ان کے ساتھ تعاون کرنے کا طریقہ تبدیل ہو جائے گا، کیونکہ ایجینٹس کو ہر بار زیادہ حکم ماننے کے لیے ڈیزائن کیا جا رہا ہے۔
صرف کچھ نسلوں پہلے، اگر آپ CLAUDE.md میں لکھتے کہ "کوئی بھی کام شروع کرنے سے پہلے READTHISBEFOREDOINGANYTHING.md پڑھیں"، تو اس کا 50 فیصد احتمال تھا کہ وہ آپ کو "تمہارا بھلا" کہے گا اور اپنا جو چاہے کرے گا۔ آج، یہ زیادہ تر ہدایات کی پابندی کرتا ہے، حتیٰ کہ پیچیدہ نیسٹڈ ہدایات کی بھی — جیسے آپ کہہ سکتے ہیں "پہلے A پڑھو، پھر B پڑھو، اگر C ہے تو D پڑھو"، اور زیادہ تر صورتوں میں وہ خوشی خوشی ان کی پیروی کرتا ہے۔
یہ کیا ظاہر کرتا ہے؟ سب سے اہم اصول یہ سمجھنا ہے کہ ہر نئی نسل کے ایجنسٹ آپ کو یہ دوبارہ سوچنے پر مجبور کر دیتے ہیں کہ بہترین حل کیا ہے، جس کی وجہ سے کم ہی زیادہ ہوتا ہے۔
جب آپ بہت سارے مختلف لائبریریز اور ہارنسز استعمال کرتے ہیں، تو آپ خود کو ایک "حل" میں قید کر لیتے ہیں، لیکن یہ مسئلہ نئی نسل کے ایجینٹس کے سامنے شاید ممکن ہی نہیں۔ آپ جانتے ہیں کہ ایجینٹس کے سب سے زیادہ جوشیلے اور استعمال کرنے والے صارفین کون ہیں؟ ہاں — وہ ایڈوانسڈ کمپنیوں کے ملازمین ہیں، جن کے پاس بے حد ٹوکن بجٹ ہوتا ہے اور وہ حقیقی طور پر نئے ترین ماڈلز استعمال کرتے ہیں۔ کیا آپ سمجھتے ہیں کہ اس کا کیا مطلب ہے؟
اس کا مطلب یہ ہے کہ اگر ایک حقیقی مسئلہ موجود ہے اور اس کا اچھا حل ہے، تو اگلی نسل کی کمپنیاں وہی حل کے سب سے بڑے صارفین ہوں گی۔ اور پھر وہ کیا کریں گی؟ وہ اس حل کو اپنے پروڈکٹ میں شامل کر دیں گی۔ سوچیں، ایک کمپنی کبھی کسی دوسرے پروڈکٹ کو اپنے حقیقی مسائل حل کرنے اور باہری انحصار پیدا کرنے کی اجازت کیوں دے گی؟ میں کیسے جانتا ہوں کہ یہ سچ ہے؟ صرف مہارت، میموری ہارنس، سب اجینٹس… ان سب کو دیکھیں، وہ سب حقیقی مسائل کے حل سے شروع ہوئے، جن کا عملی طور پر ثبوت ملا ہے کہ وہ حقیقی طور پر مفید ہیں۔
تو، اگر کوئی چیز حقیقت میں انقلابی ہے اور ایجینٹ کے استعمال کو معنی خیز طریقے سے وسعت دے سکتی ہے، تو یہ زمانے کے ساتھ بنیادی کمپنی کے مرکزی پروڈکٹ میں شامل ہو جائے گی۔ میرا اعتماد کریں، بنیادی کمپنی تیزی سے آگے بڑھ رہی ہے۔ تو آرام کریں، آپ کو کچھ بھی انسٹال نہیں کرنا ہے اور آپ کو کسی بھی باہری منبع پر انحصار نہیں کرنا ہے تاکہ بہترین کام کر سکیں۔
میں چاہتا ہوں کہ کمنٹس میں جلد ہی "سیس ایل ایس، میں نے کچھ ہارنیس استعمال کیا، بہت عالی! میں نے ایک دن میں گوگل دوبارہ تعمیر کر لیا!" جیسے جملے آئیں — اس کے بارے میں میں کہتا ہوں: مبارک ہو! لیکن آپ ہمارے مقصد کا شرکاء نہیں ہیں، آپ ایک انتہائی نایاب، اصل میں ایجینٹ انجینئرنگ کو سمجھنے والے کمیونٹی کے حصے کی نمائندگی کرتے ہیں۔
کنٹیکس سب کچھ ہے
سچ کہوں تو، سیاق و سباق ہی سب کچھ ہے۔ ایک اور مسئلہ جو ہزاروں پلگ ان اور باہری منابع کے استعمال سے پیدا ہوتا ہے، وہ یہ ہے کہ آپ "سیاق و سباق کا بڑھنا" متاثر ہوتے ہیں — یعنی آپ کا ایجینٹ بہت زیادہ معلومات سے دبا ہوا ہوتا ہے۔
مجھے پائیتھن میں ایک حرف کا کھیل بنانا ہے؟ آسان۔ انتظار کریں، 26 سیشن پہلے کا "میموری مینیجمنٹ" نوٹ کیا تھا؟ اہ، صارف کا اسکرین 71 سیشن پہلے ہم نے زیادہ سب پروسیسز بنانے کی وجہ سے فریز ہو گیا تھا۔ ہمیشہ نوٹ لکھنا چاہیے؟ ٹھیک ہے، کوئی بات نہیں... اس کا حرف کے کھیل سے کیا تعلق ہے؟
آپ جانتے ہیں۔ آپ صرف ایجنت کو ایسا ہی معلومات فراہم کرنا چاہتے ہیں جو کام مکمل کرنے کے لیے درکار ہو، نہ زیادہ، نہ کم! جتنا بہتر آپ اس بات پر کنٹرول رکھیں گے، ایجنت اتنا ہی بہتر پرفارم کرے گا۔ جب آپ مختلف عجیب یادداشت کے نظام، پلگ انز، یا بہت سارے نام اور فنکشنز کا استعمال شروع کر دیں گے، تو آپ ایجنت کو ایک بم بنانے کی ہدایات اور ایک کیک بیکن کا ریسیپ دے رہے ہوتے ہیں، جبکہ آپ صرف اسے سیکوئیا جنگل کے بارے میں ایک نظم لکھنا چاہتے ہیں۔
تو، میں دوبارہ تبلیغ کرتا ہوں— تمام انحصاروں کو الگ کر دیں، اور پھر…
اصلی طور پر مفید کام کریں
تجزیہ کی تفصیلات کو درست طریقے سے بیان کریں
کیا آپ کو یاد ہے کہ سیاق و سباق سب کچھ ہے؟
کیا آپ یاد رکھتے ہیں کہ آپ ایجینٹ کو کام مکمل کرنے کے لیے درکار بالکل درست معلومات، نہ زیادہ نہ کم، فراہم کرنا چاہتے ہیں؟
اس کا پہلا طریقہ یہ ہے کہ تحقیق اور عمل کو الگ کر دیں۔ آپ کو اپنے ایجینٹ سے کیا مانگ رہے ہیں، اس بات پر بہت دقیق ہونا ہوگا۔
بے دقتی کے نتائج کیا ہیں؟ "ایک تصدیقی نظام بنائیں۔" اس کے لیے ایجینٹ کو تحقیق کرنی ہوگی: تصدیقی نظام کیا ہے؟ کون سے اختیارات دستیاب ہیں؟ ان کے مثبت اور منفی پہلوؤں میں کیا فرق ہے؟ اب اسے انٹرنیٹ پر ایسی بہت ساری معلومات تلاش کرنی ہوں گی جو اسے دراصل درکار نہیں، جس سے متن میں مختلف ممکنہ منصوبہ بندیوں کے تفصیلی پہلوؤں سے بھر دیا جائے گا۔ جب اصل میں اسے لاگو کرنے کا وقت آئے تو وہ زیادہ آسانی سے الجھ جائے گا، یا اپنے منتخب کردہ منصوبہ پر غیر ضروری یا غیر متعلقہ خيالات پیدا کرے گا۔
اس کے برعکس، اگر آپ کہیں کہ "bcrypt-12 پاس ورڈ ہیش کے ساتھ JWT تصدیق، ریفرش ٹوکن ری سائیکلنگ، 7 دن کی مدت ختم ہونا..."، تو اس کے لیے کسی اور متبادل کا جائزہ لینے کی ضرورت نہیں ہوگی، آپ کیا چاہتے ہیں اس کا اندازہ لگ جائے گا، اور اس سے متعلق تفصیلات کے ساتھ متن بھر دیا جائے گا۔
بے شک، آپ ہمیشہ تکنیکی تفصیلات نہیں جانتے۔ کئی بار آپ نہیں جانتے کہ کیا درست ہے، اور کبھی کبھی آپ فیصلہ کرنے کا کام ایجنٹ کو سونپنا چاہتے ہیں۔ اس صورت میں کیا کریں؟ بہت آسان — مختلف تکنیکی ممکنات کا جائزہ لینے کے لیے ایک تحقیقی کام بنائیں، یا تو خود فیصلہ کریں کہ کون سا طریقہ استعمال کرنا ہے، یا ایجنٹ کو فیصلہ کرنے دیں، اور پھر ایک نئے سیاق و سباق والے ایجنٹ کو اسے عمل میں لانے کے لیے بھیج دیں۔
جب آپ اس طرح سوچنا شروع کر دیں، تو آپ کام کے راستے میں ایسی جگہیں دیکھ پائیں گے جہاں ایجینٹ کے کنٹیکس کو غیر ضروری طور پر آلودہ کیا جا رہا ہے، اور پھر آپ ایجینٹ کے کام کے راستے میں علیحدگی کی دیواریں بناسکتے ہیں، غیر ضروری معلومات کو ایجینٹ سے الگ کر دیں اور صرف وہ خاص کنٹیکس ہی رکھیں جو اسے اپنے کام میں بہترین کارکردگی دکھانے میں مدد کرتا ہے۔ یاد رکھیں، آپ کے پاس ایک بہت ہی صلاحیت مند، ذہین ٹیم ممبر ہے جو کائنات کے تمام قسم کے گیندوں کو جانتا ہے—لیکن جب تک آپ اسے نہیں بتاتے کہ آپ ایک ایسا جگہ ڈیزائن کرنا چاہتے ہیں جہاں لوگ ناچیں اور مزہ کریں، وہ آپ کو گول شکلوں کے فوائد کے بارے میں لگاتار بات کرتا رہے گا۔
پسندیدہ ڈیزائن کی حدود
کوئی بھی ایسا پروڈکٹ استعمال نہیں کرنا چاہتا جو آپ کی تنقید کرتا رہے، آپ کو بتائے کہ آپ غلط ہیں، یا آپ کے حکمات کو بالکل نظرانداز کرے۔ اس لیے، یہ ایجینٹس آپ کے ساتھ متفق ہونے کی کوشش کریں گے اور آپ جو کرنا چاہتے ہیں وہ کریں گے۔
اگر آپ اسے ہر تین الفاظ کے بعد "خوشی" شامل کرنے کو کہیں، تو وہ اس کی پابندی کرنے کی کوشش کرے گی — اکثر لوگ اس بات کو سمجھتے ہیں۔ اس کی فرمانبرداری ہی اسے اتنی مفید پروڈکٹ بناتی ہے۔ لیکن اس میں ایک بہت دلچسپ خصوصیت ہے: اس کا مطلب ہے کہ اگر آپ کہیں "میرے لیے کوڈ ریپوزٹری میں ایک بگ تلاش کریں"، تو وہ ایک بگ تلاش کر لے گا — چاہے اس کے لیے ایک بگ "بنانا" پڑے۔ کیوں؟ کیونکہ وہ آپ کے حکم کی پابندی کرنے کے لیے بہت بہت خواہش رکھتا ہے!
زیادہ تر لوگ فوراً LLM کی طرف سے خیالات اور غیر موجود چیزوں کے جھوٹے دعوؤں کی شکایت کرتے ہیں، لیکن اپنے خود کے مسائل کو نہیں سمجھتے۔ آپ اسے کچھ تلاش کرنے کو کہتے ہیں، تو وہ وہی پیش کر دیتا ہے—حتیٰ کہ تھوڑا سا حقیقت کو منحنی کرکے!
تو کیا کریں؟ میں نے پایا کہ "نیوٹرل پرامپٹ" بہت کام کرتا ہے، یعنی ایجنٹ کو کسی خاص نتیجہ کی طرف مائل نہ کرنا۔ مثال کے طور پر، میں "میرے لیے ڈیٹا بیس میں ایک بگ تلاش کریں" نہیں کہتا، بلکہ "پورے ڈیٹا بیس کو اسکین کریں، ہر کمپوننٹ کے منطق کے ساتھ چلیں، اور تمام دریافت شدہ نکات کی رپورٹ کریں۔"
ایسے نیوٹرل نوٹس کبھی کبھی بگس کا پتہ چلاتے ہیں، کبھی صرف کوڈ کے کام کرنے کے طریقے کا جائزہ لیتے ہیں۔ لیکن یہ ایجینٹ کو "بگ والے" پہلے سے طے شدہ فرضیہ کی طرف مائل نہیں کرتے۔
بھروسہ کرنے والے کے مرض کا دوسرا طریقہ اسے فائدہ میں تبدیل کرنا ہے۔ میں جانتا ہوں کہ ایجنسی میری خوشی کے لیے کوشش کر رہی ہے اور میرے حکم پر عمل کر رہی ہے، میں اسے اس طرف یا اس طرف مائل کر سکتا ہوں۔
تو میں نے ایک بگ تلاش کرنے والے ایجینٹ کو متعین کیا کہ ڈیٹا بیس میں تمام بگز کی شناخت کرے، اور اسے بتایا کہ کم اثر والے بگز کو +1 نمبر، کچھ اثر والے بگز کو +5 نمبر، اور شدید اثر والے بگز کو +10 نمبر دیں۔ میں جانتا ہوں کہ یہ ایجینٹ تمام قسم کے بگز (شامل کرکے وہ بھی جو بگ نہیں ہیں) کی شناخت کرنے میں بہت جوش دکھائے گا اور مجھے 104 نمبر جیسی رپورٹ دے گا۔ میں اسے تمام ممکنہ بگز کا سوپر سیٹ سمجھتا ہوں۔
پھر میں نے ایک مخالف ایجینٹ کو متعین کیا تاکہ وہ مخالفت کرے، اور اسے بتایا کہ ہر کامیاب مخالفت پر اسے اس بگ کا اسکور ملے گا، لیکن اگر مخالفت غلط ہوئی تو اسے اس بگ کے اسکور کا -2 گنا جرمانہ ہوگا۔ یہ ایجینٹ ممکنہ حد تک زیادہ سے زیادہ بگس کی مخالفت کرنے کی کوشش کرے گا، لیکن جرمانے کی وجہ سے احتیاط سے کام لے گا۔ وہ اب بھی فعال طور پر "مخالفت" کرے گا (حقیقی بگس سمیت)۔ میں اسے تمام حقیقی بگس کا ایک ذیلی مجموعہ سمجھتا ہوں۔
آخر میں، میں نے دوں کے انپٹس کو جمع کرنے اور اسکور دینے کے لیے ایک جج ایجنٹ کو مقرر کیا۔ میں نے جج ایجنٹ کو بتایا کہ میرے پاس اصل صحیح جواب ہے، اگر وہ درست جواب دے تو +1 اسکور ملے گا، اور غلط جواب دے تو -1 اسکور ملے گا۔ اس کے بعد وہ ہر "بگ" پر بگ ایجنٹ اور اینٹیگن ایجنٹ دونوں کو الگ الگ اسکور دینے لگا۔ جج جو بھی سچ بتائے، میں اس کی تصدیق کرتا۔ زیادہ تر معاملات میں یہ طریقہ حیرت انگیز طور پر انتہائی درست ثابت ہوا، کبھی کبھار غلطیاں ہوتی ہیں، لیکن یہ تقریباً مکمل طور پر درست آپریشن ہے۔
شاید آپ کو صرف الگ الگ بگ ایجینٹس تلاش کرنا کافی لگے، لیکن یہ طریقہ میرے لیے بہت کام کرتا ہے کیونکہ یہ ہر ایجینٹ کی اپنی پیدائشی طور پر پروگرام کی گئی خواہش — خوش کرنے کی — کا فائدہ اٹھاتا ہے۔
کیسے پتہ چلے کہ کیا مفید ہے اور کیا استعمال کرنے کے قابل ہے؟
یہ سوال پیچیدہ لگتا ہے، جیسے آپ کو AI کی تازہ ترین ترقیات کو سیکھنا اور ہمیشہ ٹریک کرنا ہوگا، لیکن اصل میں یہ بہت آسان ہے... اگر OpenAI اور Claude دونوں نے اسے حاصل کر لیا ہو یا اسے حاصل کرنے والی کمپنی کو خرید لیا ہو... تو اس کا استعمال زیادہ تر مفید ہوگا۔
کیا آپ نے نوٹ کیا ہے کہ "مهارات (skills)" اب ہر جگہ موجود ہیں اور Claude اور Codex کے سرکاری دستاویزات کا حصہ ہیں؟ کیا آپ نے نوٹ کیا ہے کہ OpenAI نے OpenClaw کو خرید لیا ہے؟ کیا آپ نے نوٹ کیا ہے کہ Claude نے فوراً یادداشت، آواز اور ریموٹ ورک کے فنکشنز شامل کر دیے؟
منصوبہ بندی (planning) کیسی ہے؟ کیا آپ کو یاد ہے کہ کتنے لوگوں نے دریافت کیا کہ منصوبہ بندی کرنا اور پھر اسے عمل میں لانا واقعی بہت مفید ہے، اور یہ بعد میں ایک مرکزی خصوصیت بن گئی؟
ہاں، وہ مفید ہیں!
کیا آپ کو یاد ہے کہ بے ختم stop-hooks بہت مفید تھے، کیونکہ ایجینٹس لمبے وقت تک چلنے والے کام کرنا نہیں چاہتے تھے… پھر جب Codex 5.2 آیا، تو وہ ضرورت ایک رات میں کھو گئی؟
یہی وہ سب کچھ ہے جو آپ کو جاننا ہے… اگر کوئی چیز حقیقت میں اہم اور مفید ہے، تو کلوڈ اور کوڈیک خود ہی اسے لاگو کر دیں گے! اس لیے آپ کو "نئی چیزوں" کا استعمال کرنا یا ان کو جاننا یا "اپ ٹو ڈیٹ رہنا" کے بارے میں زیادہ فکر نہیں کرنی چاہیے۔
مدد کریں۔ اپنے منتخب CLI ٹول کو کبھی کبھار اپ ڈیٹ کریں اور نئے فیچرز کو پڑھیں۔ یہی کافی ہے۔
کمپریشن، کنٹیکسٹ اور افتراضات
کچھ لوگ پروکسی کا استعمال کرتے وقت ایک بڑا جال پڑھتے ہیں: کبھی کبھی وہ زمین پر سب سے ذکی مخلوق جیسے لگتے ہیں، اور کبھی آپ کو یقین نہیں ہوتا کہ آپ کو اس نے دھوکہ دے دیا ہے۔
کیا یہ چیز ذکی ہے؟ یہ تو ایک ایڈھا ہے!
بڑا فرق یہ ہے کہ ایجینٹ کو کیا فرضیات بنانے یا "خالی جگہوں کو بھرنا" مجبور کیا گیا ہے۔ آج، وہ "نقاط کو جوڑنا"، "خالی جگہوں کو بھرنا" یا فرضیات بنانے میں اب بھی بہت خراب ہیں۔ جب تک وہ یہ کرتے رہیں، فوراً نظر آ جاتا ہے کہ صورتحال واضح طور پر بگڑ گئی ہے۔
CLAUDE.md میں سے ایک اہم قاعدہ حصولِ سیاق و سباق کے بارے میں ہے، جو ایجینٹ کو ہر بار CLAUDE.md (یعنی ہر کمپریشن کے بعد) پڑھتے وقت اس قاعدہ کو پہلے پڑھنے کی ہدایت کرتا ہے۔ حصولِ سیاق و سباق کے قاعدہ کا حصہ بننے والی کچھ سادہ ہدایات بہت بڑا اثر رکھتی ہیں: ٹاسک پلان کو دوبارہ پڑھنا، اور جاری رکھنے سے پہلے (ٹاسک) سے متعلق فائلوں کو دوبارہ پڑھنا۔
ایجینٹ کو یہ بتائیں کہ کیسے ٹاسک ختم کریں
ہم انسانوں کے لیے ایک کام کے "ختم" ہونے کا احساس کافی واضح ہوتا ہے۔ ایجنسٹ کے لیے، موجودہ ذہانت کا بڑا مسئلہ یہ ہے کہ وہ ایک کام شروع کرنے کا طریقہ جانتی ہے، لیکن اسے ختم کرنے کا طریقہ نہیں جانتی۔
یہ اکثر بہت پریشان کن نتائج کا سبب بناتا ہے: ایجنت آخرکار صرف کچھ سٹنگس بناتا ہے اور کام ختم کر دیتا ہے۔
ٹیسٹنگ ایجینٹ کے لیے ایک بہترین میلیسٹون ہے، کیونکہ ٹیسٹنگ یقینی ہوتی ہے اور آپ بہت واضح توقعات طے کر سکتے ہیں۔ جب تک یہ X ٹیسٹ کامیاب نہ ہو جائیں، آپ کا کام مکمل نہیں ہوگا؛ اور آپ کو ٹیسٹ تبدیل کرنے کی اجازت نہیں ہے۔
پھر آپ صرف ٹیسٹ کا جائزہ لیں، جب تک کہ تمام ٹیسٹ پاس نہ ہو جائیں، آپ مطمئن ہو سکتے ہیں۔ آپ اسے خودکار بھی بناسکتے ہیں، لیکن اہم بات یہ ہے کہ — "کام کا ختم ہونا" انسانوں کے لیے قدرتی ہے، لیکن ایجینٹ کے لیے نہیں۔
کیا آپ جانتے ہیں کہ حالیہ وقت میں کون سا ممکنہ کام کا اختتام بن گیا ہے؟ اسکرین شاٹ + تصدیق۔ آپ ایجنٹ کو کسی چیز کو تک پہنچنے کے لیے متعین کر سکتے ہیں جب تک کہ تمام ٹیسٹ کامیاب نہ ہو جائیں، پھر اسے اسکرین شاٹ لینے اور اسکرین شاٹ پر "ڈیزائن یا رویہ" کی تصدیق کرنے کے لیے متعین کریں۔
یہ آپ کو اپنے مطلوبہ ڈیزائن کی طرف جانے کے لیے ایجینٹ کو دہراتے رہنے کی اجازت دیتا ہے، اور یہ خوف نہیں کہ وہ پہلی کوشش کے بعد رک جائے!
اس کا قدرتی امتداد ہے کہ ایجنٹ کے ساتھ ایک "معاہدہ" بنائیں اور اسے قواعد میں شامل کریں۔ مثال کے طور پر، یہ `{TASK}CONTRACT.md` یہ طے کرتا ہے کہ آپ کو سیشن ختم کرنے سے پہلے کیا کرنا ہوگا۔ `{TASK}CONTRACT.md` میں، آپ وہ ٹیسٹ، اسکرین شاٹس اور دیگر تصدیقی اقدامات متعین کریں گے جو آپ کو اپنا کام ختم ہونے کے لیے تصدیق کرنے سے پہلے مکمل کرنا ہوگا!
ہمیشہ چلنے والا پروکسی
ایک ایسا سوال جو میں اکثر پوچھا جاتا ہے، وہ یہ ہے کہ لوگ اپنے ایجینٹ کو 24 گھنٹے چلانے کے ساتھ ساتھ اس کے ڈھیلے پڑنے سے کیسے بچ سکتے ہیں؟
یہاں ایک بہت آسان طریقہ ہے۔ ایک stop-hook بنائیں جو `{TASK}_CONTRACT.md` کے تمام حصے مکمل نہ ہونے تک ایجینٹ کو سیشن ختم ہونے سے روک دے۔
اگر آپ کے پاس 100 ایسے معاہدے ہیں جن میں آپ کے بنانا چاہنے والے مواد کی تفصیلات درج ہیں، تو stop-hook ایجینٹ کو ختم ہونے سے روک دے گا، جب تک کہ تمام 100 معاہدے مکمل نہ ہو جائیں، جن میں تمام ضروری ٹیسٹ اور تصدیق بھی شامل ہیں!
ماہر کی تجویز: میں نے پایا کہ لمبے عرصے تک چلنے والی 24 گھنٹے کی سیشنز "کام" کرنے کے لیے بہترین نہیں ہوتیں۔ اس کا ایک سبب یہ ہے کہ یہ طریقہ ساختی طور پر سیشن میں غیر متعلقہ معاہدوں کا حوالہ شامل کر دیتا ہے!
تو، میں اس کی تجویز نہیں کرتا۔
یہاں ایک بہترین ایجینٹ آٹومیشن طریقہ ہے — ہر معاہدے کے لیے ایک نیا سیشن کھولیں۔ جب بھی آپ کو کچھ کرنے کی ضرورت ہو، تو معاہدہ بنائیں۔
جب کوئی چیز کرنی ہو تو ایک اورکیسٹنگ لیئر بنائیں تاکہ نیا معاہدہ بنایا جا سکے اور اس معاہدے کو سنبھالنے کے لیے نیا سیشن بنایا جا سکے۔
یہ آپ کے ایجینٹ تجربے کو بالکل بدل دے گا۔
ایٹریشن، ایٹریشن، ایٹریشن
کیا آپ ایک ایڈمنسٹریٹو اسسٹنٹ کو ملازمت دیں گے اور اسے انتظار کریں گے کہ وہ پہلے دن ہی آپ کا شیڈول جان لے؟ یا آپ کافی کیسے پیتے ہیں؟ کیا آپ رات 6 بجے کھانا کھاتے ہیں نہ کہ 8 بجے؟ واضح طور پر نہیں۔ آپ وقت کے ساتھ اپنی ترجیحات قائم کرتے ہیں۔
ایجنسی کے لیے بھی یہی بات لاگو ہوتی ہے۔ سب سے سادہ کنفیگریشن سے شروع کریں، پیچیدہ ڈھانچوں یا ہارنیس کو بھول جائیں، اور بنیادی CLI کو ایک موقع دیں۔
پھر، اپنی ترجیحات کو تدریجی طور پر شامل کریں۔ اس کے لیے کیا کریں؟
قوانین
اگر آپ چاہتے ہیں کہ ایجینٹ کچھ نہ کرے، تو اسے قاعدہ کے طور پر لکھ دیں۔ پھر CLAUDE.md میں ایجینٹ کو اس قاعدہ کے بارے میں بتائیں۔ مثال کے طور پر: "کوڈ لکھنے سے پہلے، `coding-rules.md` پڑھیں۔" قواعد کو نیسٹ کیا جا سکتا ہے، اور قواعد شرطی ہو سکتے ہیں! اگر آپ کوڈ لکھ رہے ہیں، تو `coding-rules.md` پڑھیں؛ اگر آپ ٹیسٹ لکھ رہے ہیں، تو `coding-test-rules.md` پڑھیں۔ اگر آپ کا ٹیسٹ ناکام ہو رہا ہے، تو `coding-test-failing-rules.md` پڑھیں۔ آپ ایجینٹ کے لیے کوئی بھی منطقی شاخ والے قواعد بناسکتے ہیں، اور Claude (اور Codex) CLAUDE.md میں واضح تفصیلات ہونے کے شرط پر خوشی خوشی ان کی پابندی کریں گے۔
اصل میں، میں نے اب تک دی گئی پہلی عملی تجویز یہ ہے: اپنی CLAUDE.md کو ایک منطقی، نیسٹڈ فہرست کے طور پر استعمال کریں جو مخصوص سیاق و سباق اور مخصوص نتائج کے تحت کہاں سے سیاق و سباق تلاش کرنا ہے، اس کا اظہار کرتی ہے۔ اسے اتنی ہلکی پھلکی رکھیں کہ صرف "کسی خاص صورتحال میں کہاں سے سیاق و سباق تلاش کرنا ہے" کا IF-ELSE منطق شامل ہو۔
اگر آپ دیکھیں کہ ایجنٹ کوئی ایسا کام کر رہا ہے جس کے آپ کے خلاف ہیں، تو اسے ایک قاعدہ کے طور پر شامل کر دیں اور ایجنٹ کو بتائیں کہ اگلی بار وہ اس کام کو کرنے سے پہلے اس قاعدہ کو پڑھ لے، تو وہ یقیناً اس طرح دوبارہ نہیں کرے گا۔
مهارات
مهارات (Skills) کا قاعده اسی طرح ہے، صرف اس فرق کے ساتھ کہ یہ کوڈنگ کی ترجیحات کی بجائے کوڈنگ "عملی اقدامات" کے لیے زیادہ مناسب ہے۔ اگر آپ کے پاس کسی چیز کو مخصوص طریقے سے مکمل کرنے کا طریقہ ہے، تو آپ اسے مہارت میں شامل کرنا چاہیں گے۔
واقعیت یہ ہے کہ لوگ اکثر شکایت کرتے ہیں کہ وہ نہیں جانتے کہ ایجنٹ مسئلہ کو کیسے حل کرے گا، جس سے انہیں بے چینی ہوتی ہے۔ اگر آپ چاہتے ہیں کہ یہ مسئلہ قطعی ہو جائے، تو ایجنٹ کو پہلے یہ تلاش کرنے دیں کہ وہ مسئلہ کو کیسے حل کرے گا، اور پھر اس حل کو ایک مہارت فائل میں لکھ دیں۔ اس طرح آپ ایجنٹ کے مسئلہ کو حل کرنے کے طریقے کو پہلے سے دیکھ سکتے ہیں اور اس کے اصل مسئلہ سے پہلے اسے درست یا بہتر بناسکتے ہیں۔
آپ ایجنت کو یہ کیسے بتائیں کہ یہ مہارت موجود ہے؟ ہاں! آپ CLAUDE.md میں لکھتے ہیں کہ جب آپ کو اس سیناریو کا سامنا ہو اور آپ کو اس بات کا انتظام کرنا ہو، تو اس `SKILL.md` کو پڑھیں۔
پروسیجرز اور مہارتیں
آپ یقیناً اپنے ایجینٹ کو لگاتار قواعد اور مہارتیں شامل کرنا چاہیں گے۔ یہی وہ طریقہ ہے جس سے آپ اسے ذاتی صفات اور اپنی ترجیحات کی یاد دلاتے ہیں۔ تقریباً باقی سب کچھ زائد ہے۔
جب تم یہ کرنا شروع کر دو، تو تمہارا ایجینٹ جادو کی طرح محسوس ہوگا۔ یہ "تمہاری خواہش کے مطابق" کام کرے گا۔ اور پھر تم بالآخر محسوس کرو گے کہ تم نے ایجینٹ انجینئرنگ کو "سمجھ لیا" ہے۔
پھر……
آپ دیکھیں گے کہ کارکردگی دوبارہ کم ہونا شروع ہو جائے گی۔
کیا ہو رہا ہے؟!
بہت آسان ہے۔ جیسے جیسے آپ مزید زیادہ قواعد اور مہارتیں شامل کرتے ہیں، وہ ایک دوسرے کے خلاف ہونے لگتی ہیں، یا ایجینٹ کو شدید سیاق و سباق کا بوجھ ہو جاتا ہے۔ اگر آپ کو ایجینٹ کو پروگرامنگ شروع کرنے سے پہلے 14 مارک ڈاؤن فائلز پڑھنی ہیں، تو اس کے پاس بھی بے کار معلومات کا ایک ڈھیر ہوگا۔
کیا کریں؟
صاف کریں۔ اپنے ایجینٹ کو «سپا کروائیں»، قواعد اور مہارتیں اکٹھی کریں، اور اپڈیٹڈ ترجیحات کے ذریعے تضادات کو دور کریں۔
پھر یہ جادو کی طرح محسوس ہوگا۔
بس یہی۔ یہی حقیقی راز ہے۔ سادہ رہیں، قواعد اور مہارت کا استعمال کریں، CLAUDE.md کو فہرست کے طور پر استعمال کریں، اور ان کے حوالہ اور ڈیزائن کی حدود کو محتاطانہ سمجھیں۔
نتیجے کے لیے ذمہ دار ہوں
آج کوئی مثالی ایجینٹ نہیں ہے۔ آپ بہت ساری ڈیزائن اور عمل کی تفصیلات ایجینٹ پر چھوڑ سکتے ہیں، لیکن آپ کو نتائج کے لیے ذمہ دار ہونا چاہیے۔
تو احتیاط کریں... اور پھر مزہ لیں!
مستقبل کے کھلونوں کو استعمال کرنا (جبکہ واضح طور پر اسے اہم کاموں کے لیے استعمال کر رہے ہوں) ایک لطف ہے!
