میرا AI کوڈنگ ایجنٹ بار بار خراب ہو رہا تھا — میں نے کیا تبدیلیاں کیں
چھ ہفتے پہلے، میرا AI کوڈنگ ایجنٹ بالکل بیکار کوڈ تیار کر رہا تھا۔
یہ ایسے فنکشنز لکھتا تھا جو کمپائل تو ہو جاتے تھے لیکن کچھ کام نہیں کرتے تھے۔ یہ غلط وجوہات کی بنا پر ٹیسٹ پاس کر لیتا تھا۔ یہ ایک بگ (bug) ٹھیک کرتا لیکن تین نئے بگ پیدا کر دیتا۔
میں نے سوچا کہ مسئلہ ایجنٹ میں ہے۔ میں غلط تھا۔ مسئلہ میری اپنی نظم و ضبط (discipline) کی کمی تھی۔
میں اپنے انجینئرنگ کے کام کا 40% حصہ AI ایجنٹ کے ذریعے کرتا ہوں۔ یہ ریفیکٹرز (refactors)، ٹیسٹ جنریشن، اور بگ انویسٹی گیشنز سنبھالتا ہے۔ جب میرا کوڈ بیس (codebase) بکھرا ہوا تھا، تو AI نے اس بکھراؤ کو تین گنا زیادہ بڑھا دیا۔
AI نظم و ضبط کا متبادل نہیں ہے۔ یہ صرف اس چیز کو بڑھا دیتا ہے جو آپ کے پاس پہلے سے موجود ہے۔
آؤٹ پٹ کو بہتر بنانے کے لیے میں نے اپنے ورک فلو (workflow) میں یہ تبدیلیاں کیں:
ٹیسٹ کو رویے (behavior) کی تصدیق کرنی چاہیے، حالت (state) کی نہیں۔ "assert user is not None" جیسے ٹیسٹ لکھنا بند کریں۔ یہ ایک جھوٹ ہے۔ ایک ٹیسٹ کو مخصوص ڈیٹا چیک کرنا چاہیے جیسے کہ "assert user.email == expected_email"۔ اگر ٹیسٹ کمزور ہوگا، تو AI اس کا فائدہ اٹھائے گا۔
ہر ایک diff کو پڑھیں۔ میں پہلے کوڈ دیکھے بغیر ریفیکٹرز قبول کر لیا کرتا تھا۔ اس کی وجہ سے سرکولر ڈیپینڈنسیز (circular dependencies) اور بکھرا ہوا آرکیٹیکچر پیدا ہوا۔ اگر آپ یہ وضاحت نہیں کر سکتے کہ کوئی تبدیلی کیوں بہتر ہے، تو اسے مسترد کر دیں۔
حالت (state) کو واضح رکھیں۔ AI کو یہ خود "تلاش کرنے" نہ دیں کہ کیشز (caches) یا سیشنز (sessions) کو کیسے سنبھالنا ہے۔ انہیں اپنے پرامپٹس (prompts) یا اسکیموں (schemas) میں واضح طور پر بیان کریں۔ اندازوں پر مبنی حالت (inferred state) خاموش بگ کا باعث بنتی ہے جو پروڈکشن کو کریش کر دیتے ہیں۔
ایجنٹ کی تبدیلیوں کے لیے اپنے ٹیسٹ خود لکھیں۔ جب بھی ایجنٹ کوڈ تبدیل کرتا ہے، میں پہلے خود ایک ٹیسٹ لکھتا ہوں۔ اس میں 15 منٹ لگتے ہیں لیکن یہ ڈی بگنگ (debugging) کے کئی گھنٹے بچا لیتا ہے۔
واضح ناکامیوں کا مطالبہ کریں۔ اگر کوئی تبدیلی ٹیسٹ پاس کر لے لیکن لاجک (logic) کو توڑ دے، تو سسٹم کو اسے فوری طور پر نشان زد کرنا چاہیے۔ "ٹیسٹ پاس ہو گئے، اسے بھیج دیں" کو کبھی بھی ایک درست معیار کے طور پر قبول نہ کریں۔
نتائج:
- ہفتہ وار بگ کی تعداد 5 سے کم ہو کر 1 سے بھی کم رہ گئی۔
- ڈی بگنگ کا وقت ہفتہ وار 6 گھنٹوں سے کم ہو کر 1 گھنٹہ رہ گیا۔
ایجنٹ نہیں بدلا۔ میں بدل گیا۔
اگر آپ AI ایجنٹس استعمال کرتے ہیں، تو پہلے اپنے کوڈ بیس کو درست کریں۔ اپنے ٹیسٹ بہتر بنائیں، اپنی حالت (state) کو واضح کریں، اور اپنے ریویوز (reviews) کو سخت کریں۔
ایجنٹ ایک آئینہ ہے۔ اس بات کو یقینی بنائیں کہ آپ کے پاس کچھ ایسا ہو جسے بڑھانے کے قابل ہونا چاہیے۔
ماخذ: https://dev.to/susiloharjo/my-ai-coding-agent-kept-breaking-what-i-changed-4l5f
اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi
