𝗠𝘆 𝗖𝗼𝗱𝗶𝗻𝗴 𝗔𝗴𝗲𝗻𝘁 𝗔𝘀𝗸𝗲𝗱 𝗣𝗲𝗿𝗺𝗶𝘀𝘀𝗶𝗼𝗻 𝗳𝗼𝗿 𝗘𝘃𝗲𝗿𝘆 𝗧𝗶𝗻𝘆 𝗦𝘁𝗲𝗽
میرے AI اسسٹنٹ کو ایک بڑا مسئلہ درپیش تھا۔ اس نے اجازت مانگنے سے انکار نہیں کیا تھا۔ بلکہ، اس نے ضرورت سے زیادہ بار اجازت مانگی۔
میں اسے PDF پڑھنے جیسا کوئی سادہ کام دیتا۔ اسسٹنٹ ایک قدم اٹھاتا، منظوری مانگتا، کمانڈ چلاتا، اور پھر فوراً اگلے چھوٹے سے قدم کے لیے دوبارہ پوچھتا۔ ایک کام پرومپٹس کا ایک ایسا سلسلہ بن گیا جو کبھی ختم نہیں ہوتا تھا۔
منظوری کے پرومپٹس ضروری ہیں۔ آپ چاہتے ہیں کہ ایک لوکل اسسٹنٹ کمانڈز چلانے، فائلیں لکھنے، یا ایپس کھولنے سے پہلے رک جائے۔ لیکن اصل کام کے لیے بہت سے مراحل درکار ہوتے ہیں۔ ایک PDF پڑھنے میں Python کی موجودگی چیک کرنا، کنورٹر تلاش کرنا، اس کنورٹر کو چلانا، اور متن پڑھنا شامل ہے۔
اگر ہر ایک قدم پر منظوری مانگی جائے، تو آپ خطرے کا اندازہ لگانا چھوڑ دیتے ہیں۔ آپ محض ان مداخلتوں سے چھٹکارا پانے کے لیے انہیں کلک کرنا شروع کر دیتے ہیں۔ یہ آپ کو حفاظتی نظام کو نظر انداز کرنے کی عادت ڈال دیتا ہے۔ یہ تو بالکل حفاظتی نظام نہ ہونے سے بھی زیادہ خطرناک ہے۔
پرانا طریقہ کار کچھ ایسا تھا:
- اسسٹنٹ ایک ٹول کا انتخاب کرتا ہے
- پالیسی تصدیق کا تقاضا کرتی ہے
- صارف منظوری دیتا ہے
- ٹول چلتا ہے
- اسسٹنٹ اگلے ٹول کے لیے دوبارہ پوچھتا ہے
اسسٹنٹ صارف کے مقصد کو سمجھنے میں ناکام رہا۔ آپ کسی ایک چھوٹے سے تجربے کی منظوری نہیں دے رہے تھے۔ آپ ایک مکمل کام کی منظوری دے رہے تھے۔
میں نے CliGate کے کام کرنے کے طریقے کو تبدیل کر دیا۔ اب، ایک بار جب آپ چیٹ میں پہلے عمل کی منظوری دے دیتے ہیں، تو سسٹم ایک فلیگ (flag) سیٹ کر دیتا ہے۔ اس سے بعد کے مراحل نئے منظوری کے چکروں کے بغیر جاری رہ سکتے ہیں۔ اسسٹنٹ کو اب بھی اصل نتائج ملتے ہیں تاکہ وہ اپنا کام جاری رکھ سکے۔
میں نے ایک 'ایسکیپ ہَیچ' (escape hatch) بھی شامل کیا ہے: /safe۔ یہ کمانڈ واضح تصدیقی موڈ (explicit confirmation mode) کو دوبارہ فعال کر دیتی ہے۔
میں نے زبان سے متعلق ایک بگ (bug) بھی ٹھیک کیا۔ جب سسٹم کسی کام کو جاری رکھتا تھا، تو وہ کبھی کبھی پرومپٹس کی زبان بدل دیتا تھا۔ اگر آپ چینی زبان میں بات کر رہے ہوتے، تو اسسٹنٹ اگلے پرومپٹ کے لیے انگریزی پر منتقل ہو جاتا۔ اب، اسسٹنٹ صحیح زبان کا انتخاب کرنے کے لیے آپ کے آخری اصل پیغام کو دیکھتا ہے۔
حل منظوریوں کو ختم کرنا نہیں ہے۔ حل یہ یاد رکھنا ہے کہ صارف نے منظوری کیوں دی تھی۔
لوکل ٹولز کے لیے، ٹاسک اسکوپڈ ٹرسٹ (task-scoped trust) استعمال کریں:
- کسی بڑے مرحلے یا حد کو عبور کرنے سے پہلے پوچھیں
- موجودہ کام کے لیے دی گئی منظوری کو یاد رکھیں
- سخت موڈ (strict mode) میں واپس جانے کا طریقہ فراہم کریں
- سسٹم کے پیغامات کو صارف کے مقصد کو تبدیل نہ کرنے دیں
میں CliGate میں منظوریوں کا نظام اسی طرح بناتا ہوں۔ یہ Claude Code، Codex CLI، اور Gemini CLI کے لیے میرا لوکل کنٹرول پلین (local control plane) ہے۔
آپ منظوری کی تھکن (approval fatigue) سے کیسے نمٹتے ہیں؟ کیا آپ ہر ٹول کال کے لیے منظوری دیتے ہیں، ہر کام کے لیے، یا ہر سیشن کے لیے؟
Source: https://dev.to/codekingai/my-coding-agent-asked-permission-for-every-tiny-step-4a07