NAME
codex-multi-agent-workflows — کوڈیکس اور ملٹی ایجنٹ ورک فلو: ایجنٹوں کے ساتھ کنٹرول کھوئے بغیر کام کریں۔
SYNOPSIS
cat codex-multi-agent-workflows.md
DESCRIPTION
پہلی بار جب کوئی کوڈنگ ایجنٹ درحقیقت آپ کے لیے کسی مسئلے کو ٹھیک کرتا ہے، تو ردعمل تقریباً ہمیشہ ایک جیسا ہوتا ہے: جوش اور شکوک کا مرکب۔ اچھا، ضرور۔ لیکن پھر آپ فرق کو دیکھتے ہیں اور اپنے آپ سے پوچھتے ہیں: "ٹھیک ہے، لیکن اس نے بالکل کس چیز کو چھوا؟ کیا میں اس پر بھروسہ کر سکتا ہوں؟ کیا وہ کل دوبارہ اسی طرح کرے گا؟"۔
وہیں سے میرے خیال میں دلچسپ حصہ شروع ہوتا ہے۔ اس وقت نہیں جب ایجنٹ کوئی فنکشن لکھتا ہے، لیکن جب وہ کام کے تمام ٹکڑوں کو سنبھالنے کے قابل ہو جاتا ہے: ریپوزٹری پڑھیں، ایک پیچ بنائیں، ٹیسٹ چلائیں، PR کھولیں، جائزہ تبصرے کے بعد واپس آئیں۔ کوڈیکس بالکل اس سمت میں آگے بڑھ رہا ہے: بیک گراؤنڈ ورک، علیحدہ ورک ٹری، مربوط براؤزر، آٹومیشن، پلگ ان، میموری اور مزید واضح اجازت کنٹرول۔
نقطہ یہ ہے کہ ایسے مستقبل کا تصور نہ کیا جائے جہاں اب کوئی کوڈ نہیں پڑھتا ہے۔ یہ ایک خوفناک مستقبل ہوگا، ساتھ ہی ساتھ کافی بولی بھی۔ نقطہ یہ معلوم کرنا ہے کہ ان ایجنٹوں کے ساتھ کیسے کام کیا جائے جو انہیں سب کچھ کرنے کی اجازت دیئے بغیر بہت کچھ کرسکتے ہیں۔
عادت کی تبدیلی
روایتی خودکار تکمیل کے ساتھ آپ ہمیشہ وہیل پر تھے۔ اے آئی نے ایک لائن تجویز کی، آپ نے فیصلہ کیا۔ تاہم، ایک ایجنٹ کے ساتھ، رشتہ بدل جاتا ہے: آپ اسے ایک مقصد دیتے ہیں اور وہ خود ہی متعدد مراحل سے گزرتا ہے۔
یہ طاقتور ہے، لیکن یہ مسئلہ کو بدل دیتا ہے۔ سوال اب صرف "ماڈل پروگرام کر سکتے ہیں؟" نہیں ہے۔ سوال بنتا ہے:
- کیا میں نے اسے ایک چھوٹی سی گنجائش دی؟
- کیا آپ جانتے ہیں کہ نتیجہ کیسے چیک کرنا ہے؟
- کیا میں الگ تھلگ ماحول میں کام کر رہا ہوں؟
- کیا حتمی جائزہ اب بھی انسانی اور محتاط ہے؟
ایک صحت مند ورک فلو جادو کی چھڑی سے زیادہ ایسا لگتا ہے:
یہ "ایجنٹ سب کچھ بناتا ہے" سے کم رومانٹک لگتا ہے، لیکن یہ بہت بہتر کام کرتا ہے۔ اور یہ بھی ہے کہ انسانوں کے ساتھ اچھی ٹیمیں کیسے کام کرتی ہیں: واضح کام، فوری تاثرات، واضح جوابدہی۔
اچھا پرامپٹ تقریباً ایک اچھا ٹکٹ ہے۔
سب سے خطرناک اشارہ مبہم لیکن پراعتماد ہے: "انوائسز کا صفحہ درست کریں"، "فن تعمیر کو بہتر بنائیں"، "تصنیف ماڈیول کو صاف کریں"۔ یہ وہ درخواستیں ہیں جو نتیجہ خیز لگتی ہیں اور بہت بڑا فرق پیدا کرتی ہیں۔ لیکن پھر آپ اپنے آپ کو آثار قدیمہ کرتے ہوئے پائیں گے۔
ایک مددگار اشارہ زیادہ بورنگ ہے۔ مثال کے طور پر: انوائسز کے صفحہ کے لیے CSV برآمد کو لاگو کریں، یہ جانتے ہوئے کہ ٹیبل app/(dashboard)/invoices/page.tsx میں ہے، استفسارات src/server/invoices.ts میں ہیں اور app/(dashboard)/reports میں پہلے سے ہی ایک جیسا نمونہ موجود ہے۔
پھر واضح رکاوٹیں شامل کریں: ڈیٹا بیس اسکیما کو تبدیل نہ کریں، انحصار شامل نہ کریں اگر ایک چھوٹی افادیت کافی ہے، موجودہ UI طرز کو برقرار رکھیں۔ اور تصدیق کے ساتھ بند کریں: npm test -- invoices اور npm run build۔
اس قسم کا مختصر یہ نہیں ہے کہ "AI کو بہتر طریقے سے سمجھانا"۔ یہ سب سے بڑھ کر کام کرتا ہے تاکہ آپ کو یہ واضح ہو جائے کہ آپ کیا تفویض کر رہے ہیں۔ اگر آپ اسے ٹھوس طور پر نہیں لکھ سکتے ہیں، تو شاید یہ کام کسی ایجنٹ کے لیے تیار نہیں ہے۔
تین ملازمتیں جو میں خوشی سے تفویض کرتا ہوں۔
پہلا دہرایا جانے والا لیکن قابل تصدیق کام ہے: ٹیسٹ شامل کرنا، کالز کو نئے اندرونی API میں منتقل کرنا، درآمدات کو اپ ڈیٹ کرنا، فرسودہ اجزاء کو تبدیل کرنا، TypeScript کی غلطیوں کو ٹھیک کرنا۔ یہاں ایجنٹ گھنٹے بچا سکتا ہے اور خطرہ قابل کنٹرول ہے۔
دوسرا تحقیقی کام ہے: "یہ تلاش کریں کہ اس کل کا حساب کہاں لگایا گیا ہے"، "مجھے بتائیں کہ یہ ٹیسٹ کیوں نازک ہے"، "بگ کو دوبارہ پیش کریں اور مجھے بتائیں کہ کون سی فائلز متاثر ہوتی ہیں"۔ یہاں تک کہ جب یہ فوری طور پر پیچ پیدا نہیں کرتا ہے، یہ مفید جاسوسی کرسکتا ہے۔
تیسرا بار بار چلنے والا دیکھ بھال کا کام ہے: چھوٹے انحصار اپ ڈیٹس، پرانے فیچر کے جھنڈوں کی صفائی، بلاک شدہ PRs کا خلاصہ، بھولے ہوئے TODOs کی جانچ۔ یہ گلیمرس نہیں ہے، لیکن یہ بالکل اس قسم کا کام ہے جو ڈھیر ہوجاتا ہے۔
تین نوکریاں جو میں انسان کو رکھتا ہوں۔
مصنوعات کے فیصلے انسان ہی رہتے ہیں۔ اگر کوئی تبدیلی بدل جاتی ہے کہ صارف کس طرح ادائیگی کرتا ہے، ڈیٹا حذف کرتا ہے، قیمتیں دیکھتا ہے، یا اجازت کو سمجھتا ہے، تو میں ایک ذمہ دار شخص چاہتا ہوں۔
حفاظتی حدود بھی انسانی توجہ کے مستحق ہیں: تصنیف، کردار، ٹوکن، حساس ڈیٹا لاگنگ، ڈیٹا بیس کی منتقلی۔ ایک ایجنٹ لاگو کرنے میں مدد کر سکتا ہے، لیکن اس کا واحد فیصلہ ساز ہونا ضروری نہیں ہے۔
آخر میں، میں ہر وہ چیز رکھتا ہوں جس کے لیے تعمیراتی ذائقہ انسانی کی ضرورت ہوتی ہے۔ ایک ایجنٹ ایک ریفیکٹر تجویز کر سکتا ہے، لیکن یہ سمجھنا کہ آیا کوئی تجرید واقعی ضروری ہے یا ہم صرف ایک غیر موجود مسئلہ کو چمکانا ایک کام ہے۔
جائزہ اختیاری نہیں ہے۔
فتنہ، جب ایک ایجنٹ اچھا ہوتا ہے، CI کے سبز پر بھروسہ کرنا ہے۔ بات سمجھ میں آتی ہے۔ یہ بھی ہے جب مسائل شروع ہوتے ہیں.
میں ہمیشہ کم از کم پانچ چیزوں کو دیکھتا ہوں:
- کیا پیچ صرف درخواست کردہ کام کو حل کرتا ہے؟
- کیا اس نے ایسی فائلوں کو ہاتھ لگایا جن کا اس سے کوئی تعلق نہیں تھا؟
- کیا ٹیسٹ نئے رویے کا احاطہ کرتے ہیں یا صرف خوشی کا موقع؟
- کیا کوڈ مقامی نمونوں کی پیروی کرتا ہے؟
- کیا باقی پراجیکٹ کی طرح غلطیاں نمٹائی جاتی ہیں؟
جب کچھ غلط ہو تو، تاثرات مخصوص ہونے کی ضرورت ہے۔ "اسے ٹھیک کریں" سست ہے۔ بہتر: یہ افادیت parseMoney کو src/lib/money.ts میں نقل کرتی ہے۔ اس فنکشن کو دوبارہ استعمال کریں، EUR کیس کے لیے ٹیسٹ شامل کریں اور بلنگ ماڈیول کے عوامی API کو تبدیل نہ کریں۔
ایجنٹ چھوٹے، قابل تصدیق تبصروں کا بہتر جواب دیتے ہیں۔ دلچسپ بات یہ ہے کہ لوگ ایسا کرتے ہیں۔
Guardrails کوشش کے قابل
اگر کوئی ایجنٹ فائلوں کو پڑھ سکتا ہے، کوڈ لکھ سکتا ہے، اور کمانڈز کو چلا سکتا ہے، تو اسے ایک طاقتور عمل کے طور پر سمجھا جانا چاہیے۔ پاگل پن کی ضرورت نہیں ہے، آپ کو حفظان صحت کی ضرورت ہے۔
علیحدہ ورک ٹری یا شاخیں استعمال کریں۔ لہذا آپ فرق کا موازنہ کر سکتے ہیں، ناکام تجربات کو پھینک سکتے ہیں، اور ایجنٹ کے کام کو آپ جو کر رہے تھے اس کے ساتھ نہیں ملا سکتے۔
اجازتوں کو محدود کریں۔ rg، git diff، npm test اور npm run build جیسی کمانڈز بالکل مفت ہوسکتی ہیں۔ تعیناتیاں، ڈیٹا بیس کی منتقلی، رازوں تک رسائی اور تباہ کن حکموں کو واضح رہنا چاہیے۔
جب آپ کو ضرورت نہ ہو تو نیٹ ورک تک رسائی کو کم کریں۔ بہت سے کاموں کے لیے سرکاری دستاویزات، پیکیج رجسٹری اور مخصوص داخلی خدمات کافی ہیں۔ کم سطحی رقبہ، کم حیرت۔
کارروائیوں کو ٹریک کریں۔ جب کوئی پیچ جائزہ میں آتا ہے، تو آپ کو پرامپٹس، کمانڈز پر عمل درآمد، ٹیسٹ پاس ہونے اور فائلوں میں ترمیم کرنے کے قابل ہونا چاہیے۔ بیوروکریسی بنانے کے لیے نہیں بلکہ یہ سمجھنے کے لیے کہ اگر کچھ غلط ہوا تو کیا ہوا۔
ایک ٹیم کے طور پر شروع کرنے کا ایک آسان طریقہ
اگر میں ایک چھوٹی ٹیم میں ایجنٹوں کو متعارف کرانا چاہتا ہوں، تو میں بڑے انقلابات کے بغیر شروع کروں گا۔
میں واضح دائرہ کار والے مسائل کے لیے ایک agent-ready لیبل بناؤں گا۔ میں سیاق و سباق، رکاوٹوں اور تصدیقی احکامات کے ساتھ ایک ٹیمپلیٹ شامل کروں گا۔ میں چھوٹے PR کے لئے پوچھوں گا، مثالی طور پر چند سو لائنوں کے نیچے۔ مجھے مرئی تبدیلیوں کے لیے جانچ یا اسکرین شاٹس درکار ہوں گے۔ اور سب سے بڑھ کر میں انضمام کا ذمہ دار ایک شخص کو رکھوں گا۔
دو ہفتوں کے بعد میں ڈیٹا کو دیکھوں گا: کون سے کاموں کو واقعی تیز کیا گیا تھا، کون سے جائزے بھاری تھے، کون سے اشارے کنفیوز تھے، کوڈ بیس کے کون سے حصے ڈیلیگیٹ کرنے کے لیے بہت نازک ہیں۔
یہ "آج سے ہم ایجنٹوں کے ساتھ سب کچھ کریں گے" کے مقابلے میں کم شاندار طریقہ ہے، لیکن یہ وہی ہے جو آپ کو بغیر کسی پچھتاوے کے تیسرے ہفتے تک جانے کی اجازت دیتا ہے۔
سب سے زیادہ انسانی حصہ
مزے کی بات یہ ہے کہ جتنے زیادہ خودمختار ایجنٹ بنتے جائیں گے، کلاسک مہارتیں اتنی ہی زیادہ اہم ہو جاتی ہیں: ایک اچھا ٹکٹ لکھنا، چھوٹی چھوٹی کٹوتی کرنا، ٹیسٹ بنانا، اختلاف پڑھنا، تجارت سے متعلق بات چیت کرنا۔ ایجنٹ ان لوگوں کو تیز کرتا ہے جو پہلے سے ہی اچھی طرح سے کام کرنا جانتے ہیں۔ یہ ان لوگوں کے انتشار کو بھی بڑھاتا ہے جو بری طرح سے نمائندگی کرتے ہیں۔
تو نہیں، میں انجینئرنگ کو روکنے کے لیے ملٹی ایجنٹ ورک فلوز کو شارٹ کٹ کے طور پر نہیں دیکھتا۔ میں انہیں ان حصوں میں زیادہ توانائی منتقل کرنے کے طریقے کے طور پر دیکھتا ہوں جو اہم ہیں: فیصلہ کرنا کہ کیا بنانا ہے، اس بات کو یقینی بنانا کہ یہ کام کرتا ہے، سسٹم کو قابل فہم رکھنا۔
ایجنٹ عظیم غیر مطابقت پذیر ساتھی بنا سکتے ہیں۔ لیکن ایک غیر مطابقت پذیر ساتھی، مفید ہونے کے لیے، سیاق و سباق، حدود اور جائزہ کی ضرورت ہے۔ بالکل باقی سب کی طرح۔
مفید ذرائع
METADATA
- date: 2026-05-24
- reading: 8 min
- author: Filippo Spinella
- tags: AI, Developer Tools, Productivity, Software Engineering