مواد پر جائیں

آرکیسٹریشن

ایک واحد ایجنٹ صرف ایک ہی کام میں اچھا ہوتا ہے۔ کچھ درخواستیں اس سے بڑی ہوتی ہیں: «X کی مارکیٹ کی تحقیق کریں اور پوزیشننگ دستاویز لکھیں»، «یہ فیچر شروع سے آخر تک شپ کریں»، «اس ماڈیول کا آڈٹ کریں اور جو کچھ ملے اسے ٹھیک کریں»۔ آرکیسٹریشن سے مراد یہ ہے کہ Control Center انہیں کیسے سنبھالتا ہے: ایک آرکیسٹریٹر (عام طور پر آپ کا CEO ایجنٹ) پوری ٹیم کا پلان تجویز کرتا ہے، آپ اسے ایک بار منظور کرتے ہیں اور ایک متعیّن میٹیریئلائزر اسے ایک پائپ لائن میں بدل دیتا ہے جو کام کر جاتی ہے۔

یہ کام کرانے کے دو موجودہ طریقوں کے درمیان آتا ہے:

جب آپ چاہیں کہ… استعمال کریں
ایک کام ایک ایجنٹ کو سونپیں اسپیس میں ایک پیغام
جو عمل آپ پہلے سے جانتے ہیں اسے دستی طور پر انکوڈ کریں پائپ لائن ٹیمپلیٹ
مقصد بتائیں اور پلان ٹیم کو خود نکالنے دیں ایک آرکیسٹریشن

جب آپ آرکیسٹریٹر کو کوئی مقصد دیتے ہیں تو یہ ایک منظم OrchestrationProposal واپس کرتا ہے: ایک ٹائپ شدہ پلان جسے ایپ جانچ اور اجرا کر سکتی ہے، نہ کہ آزاد نثر۔ ایک تجویز میں یہ ہوتا ہے:

  • مقصد: آپ کی اعلیٰ سطحی درخواست، نئے الفاظ میں۔
  • کردار: کام کون کرتا ہے۔ ہر کردار یا تو آپ کا منتخب کردہ موجودہ ایجنٹ ہوتا ہے، یا وہ نئی بھرتی جسے آرکیسٹریشن منظوری پر بناتی ہے۔
  • ذیلی ٹکٹس: وہ کام، جو ٹکٹس کے ایک DAG میں تقسیم ہوتا ہے۔
  • تحقیق (اختیاری): ایک تحقیقی مرحلہ جو سب سے پہلے چلتا ہے اور باقی مراحل کو مواد فراہم کرتا ہے۔
  • گفتگو (اختیاری): ایک محدود دور جس میں کام شروع ہونے سے پہلے ہر کردار ایک منظم موقف پیش کرتا ہے۔
  • ترکیب: آخری مرحلہ جو حتمی نتیجہ تیار کرتا ہے۔
  • بجٹ: اعلان شدہ لاگت کی حد۔

دو سطحیں ایک ہی آرکیسٹریشن دکھاتی ہیں۔

تجویز کارڈ اسی گفتگو میں رہتا ہے جس نے پلان بنایا۔ یہ ایک ہی پیغام ہے جو پورے لائف سائیکل — تجویز کردہ، عمل درآمد، مکمل — کے دوران دوبارہ رینڈر ہوتا ہے، اور اسی پر منظوری اور منسوخی کے ایکشن ہوتے ہیں۔

Plan Studio ایڈیٹر ہے: ایک DAG کینوس، نوڈ انسپکٹر، ریویژن اور ڈف کا دراز اور تخمینہ اٹھائے ہوئے منظوری بار۔ یہ اسی کارڈ سے براہِ راست ایڈیٹر ٹیب کے طور پر کھلتا ہے۔ سائیڈبار میں جان بوجھ کر “پلانز” کا کوئی آئٹم نہیں ہے؛ /plans اور /plans/:kind/:id صرف شیئرنگ کے لیے ڈیپ لنکس کے طور پر موجود ہیں۔

منظوری دینا صرف آپریٹر کا کام ہے۔ اس کے لیے کوئی MCP ٹول نہیں ہے: کوئی ایجنٹ تجویز دے سکتا ہے (propose_orchestration)، پلان جمع کر سکتا ہے (submit_plan)، یا پلے بک بناسکتا ہے (run_playbook)، مگر منظوری صرف انسان دیتا ہے۔ ایجنٹ کی شروع کردہ ریویژنز پر مزید دو منٹ کی کول ڈاؤن کے ذریعے شرح محدود کی جاتی ہے، تاکہ دوبارہ پلاننگ کرنے والا لوپ آپ کی فیڈ میں سیلاب لانے کے بجائے یکجا ہو جائے۔

منظوری دینے سے پہلے آپ صرف وہی بدل سکتے ہیں جو نوڈ انسپکٹر ظاہر کرتا ہے: کسی ذیلی ٹکٹ کا عنوان یا متن بدلیں، اس کا کردار تبدیل کریں جو اس کا مالک ہے، اس کے انحصارات نئے سرے سے جوڑیں، اس کا آؤٹ پٹ اسکیما تبدیل کریں، یا نوڈ کو مکمل طور پر حذف کر دیں۔ ساختی نوڈز (تحقیق، گفتگو، ترکیب) اور وہ نوڈز جو پہلے ہی چل چکے ہیں، صرف پڑھنے کے لیے ہوتے ہیں۔ ایڈیٹر سے آپ کسی کردار کو کسی مخصوص نامزد ایجنٹ سے نہیں جوڑ سکتے اور نہ ہی بجٹ میں ترمیم کر سکتے ہیں۔

ایک ہی پلان پر دو ایڈیٹرز کا معاملہ مرجنگ سے نہیں بلکہ آپٹمِسٹک کنکرنسی سے حل ہوتا ہے۔ ہر ترمیم اپنے ساتھ وہ base_revision لے کر آتی ہے جس کے خلاف کی گئی ہو؛ پرانی ریویژن پر مبنی ترمیم کو خاموشی سے کسی دوسرے کی ترمیم پر سبقت لینے کے بجائے «پلان آگے بڑھ چکا ہے» کہہ کر رد کر دیا جاتا ہے۔ ریوائنڈنگ بھی حذف نہیں ہے — یہ پرانی تجویز کو ایک نئی ریویژن کے طور پر شامل کر دیتی ہے، اس لیے ریویژن ٹائم لائن صرف بڑھتی ہی رہتی ہے۔

منظوری بار پر دیا گیا تخمینہ ہر کردار کے حقیقی مکمل شدہ رن کی تاریخ سے بنایا جاتا ہے، بطور ایک بین چوتھائی (p25–p75) بینڈ۔ لاگت کے میزان قابلِ تخمینہ نوڈز کو جمع کر کے بنتے ہیں؛ دورانیہ DAG میں سے گزرنے والا کریٹیکل پاتھ ہوتا ہے، میزان نہیں (متوازی شاخیں ایک ساتھ چلتی ہیں)۔

جس نوڈ کے کردار کی کوئی مکمل شدہ رن تاریخ نہ ہو، وہ sampleSize: 0 اور null حدود بتاتا ہے۔ یہ بالکل ویسے ہی ظاہر ہوتا ہے — نامعلوم — کبھی کسی من گھڑت عددی قدر کے طور پر نہیں، کیونکہ جس تخمینے پر آپ بھروسا نہ کر سکیں وہ کسی تخمینے سے بھی بدتر ہے۔ جب کچھ نوڈز کی تاریخ ہو اور کچھ کی نہ ہو تو میزان کو جزوی قرار دیا جاتا ہے۔ اثر کا دائرہ صرف اسی وقت ظاہر ہوتا ہے جب کسی نوڈ نے symbol یا file ماخذ حوالہ جات کا اعلان کیا ہو؛ ان کے بغیر کوئی نوڈ نثر سے اندازہ لگانے کے بجائے “نامعلوم” ہی رہتا ہے۔

یہی بنیادی خیال ہے: ایجنٹ پلان بناتا ہے؛ ایک متعیّن فنکشن اس پر عمل کرتا ہے۔ جب آپ منظوری دیتے ہیں تو OrchestrationMaterializer، جو بغیر کسی LLM اور بغیر I/O کے ایک خالص فنکشن ہے، تجویز کو ایک حقیقی پائپ لائن میں بدل دیتا ہے۔ ایک ہی تجویز اور ایک ہی طے شدہ کرداروں کے ساتھ یہ ہمیشہ ایک ہی DAG بناتا ہے۔ یہ اہم ہے کیونکہ تیار شدہ پائپ لائن وہ سب مفت ورثے میں پا لیتی ہے جو انجن پہلے ہی کرتا ہے: ری اسٹارٹس کے دوران معطلی اور دوبارہ آغاز، کریش ریکوری، فی رن لاگت اور ٹوکن رول اپس اور رن کی تفصیل کا UI۔

منظوری کام کے لیے درکار بنیادی ڈھانچہ بھی بنا دیتی ہے:

  • بھرتیاں نئے قرار دیے گئے تمام کرداروں کی (اور بھرتی شدہ ایجنٹ آئی ڈیز ریکارڈ کرتی ہے تاکہ منظوری کے دوران کریش ہونے پر دہری بھرتیوں کے بغیر دوبارہ آغاز ہو سکے)
  • ایک ٹیم جو ان کرداروں کو یکجا کرتی ہے
  • ایک پروجیکٹ جو پیرنٹ ٹکٹ کو درج کرتا ہے
  • پائپ لائن ٹیمپلیٹ + رن جو یہ سب چلاتا ہے
proposed → approved → executing → synthesizing → completed
↘ ↘ failed
↘ ↘ cancelled
حالت مطلب
proposed پلان تیار ہے اور آپ کی ایک پیشگی منظوری کا منتظر ہے
approved آپ نے منظوری دی؛ میٹیریلیزیشن جاری ہے (بھرتیاں، ٹیم، پروجیکٹ، پائپ لائن)
executing تیار شدہ پائپ لائن چل رہی ہے: ذیلی ٹکٹس، گفتگو، کام
synthesizing ذیلی ٹکٹس مکمل ہو چکے؛ ترکیب کا مرحلہ حتمی نتیجہ تیار کر رہا ہے
completed مکمل: پیرنٹ ٹکٹ مکمل قرار دیا گیا اور حتمی نتیجہ مشترکہ اسپیس میں پوسٹ کر دیا گیا
failed میٹیریلیزیشن ناکام ہوئی، یا تیار شدہ پائپ لائن رن ناکام ہوا
cancelled آپ نے اسے منسوخ کیا

ایک مسلسل بڑھتا ہوا ریویژن نمبر تجویز کا سراغ رکھتا ہے جب کہ آرکیسٹریٹر اسے دوراں proposed حالت میں نظرثانی کرتا رہتا ہے؛ ایپ ریکارڈ کرتی ہے کہ آپ نے کون سی ریویژن منظور کی۔ propose_orchestration کسی ریویژن کو رد کر دیتا ہے جب حالت مزید proposed نہ رہے۔

آرکیسٹریشن ہمیشہ کسی پیرنٹ ٹکٹ کے خلاف کھلتی ہے اور ایک ہی گفتگوئی اسپیس شیئر کرتی ہے، اس لیے پوری کوشش ایک ہی ورک آئٹم تک قابلِ سراغ رہتی ہے اور ٹیم ایک ہی کمرے میں بات کرتی ہے۔

ایک مسلسل فعال لسنر تیار شدہ پائپ لائن پر نظر رکھتا ہے اور اس کی حتمی حالت کو واپس آرکیسٹریشن اور پیرنٹ ٹکٹ پر منتقل کرتا ہے، تاکہ تکمیل اور ناکامی انہی جگہوں پر نظر آئیں جہاں آپ پہلے ہی دیکھتے ہیں۔ آرکیسٹریشن فیچر کو اپنے الگ ایگزیکیوشن انجن کی ضرورت نہیں۔

آپ کسی بھی وقت آرکیسٹریشن منسوخ کر سکتے ہیں؛ منسوخی جاری کام کو ختم کر دیتی ہے۔