مواد پر جائیں

ایجنٹ سے چیٹ کریں

یہ گائیڈ دکھاتی ہے کہ کسی اسپیس میں ایجنٹ کے ساتھ کام کیسے کیا جائے۔

  1. سائیڈبار میں اسپیسز پر جائیں
  2. اسپیسز ہیڈنگ کے ساتھ والے + بٹن پر کلک کریں
  3. ایک نام ٹائپ کریں — یہ لازمی ہے۔ خالی نام مسترد ہو جاتا ہے؛ ڈائیلاگ کھلا رہتا ہے
  4. اختیاری طور پر ورک اسپیس سے ایجنٹس شامل کریں
  5. اگر ورک اسپیس میں کوئی ریپو موجود ہو تو ریپو پکر ظاہر ہوتا ہے۔ یہ شروع میں ہر ریپو منتخب لیے ہوتا ہے؛ اسے محدود کریں (بشمول ایک ریپو غیر منتخب کرنے) تاکہ صرف وہی ریپوز رہیں جن کے لیے یہ اسپیس ورک ٹریز بنائے
  6. تصدیق کریں

Control Center اسپیس کھولتا ہے اور پس منظر میں ہر منتخب ریپو کے لیے ایک copy-on-write ورک ٹری بنانا شروع کر دیتا ہے۔

کمپوزر میں اپنا پیغام ٹائپ کریں اور Enter دبائیں۔ ایجنٹ ڈسپیچ ہوتا ہے اور اپنا جواب اسٹریم کرنا شروع کر دیتا ہے۔

اگر اسپیس ابھی تیار ہو رہی ہو تو آپ کا پیغام ضائع ہونے کے بجائے پارک ہو جاتا ہے — کمپوزر اسے روکے رکھتا ہے اور ورک ٹریز تیار ہوتے ہی خود بخود بھیج دیتا ہے۔

جیسے جیسے ایجنٹ کام کرتا ہے، آپ اس کی باری اسٹریم ہوتی دیکھتے ہیں: استدلال کے حصے، ٹول کالز (فائل پڑھنا، لکھنا، shell کمانڈز) اور جوابی متن — سب ایک ہی agent-turn پیغام کے اندر۔

جب کوئی ایجنٹ کام کر رہا ہو تو عام گفتگویی متن نئی باری قطار میں نہیں ڈالتا۔ وہ کمپوزر کے اوپر والی پٹی میں قطار میں اسٹیرنگ کارڈ بن جاتا ہے اور اگلی باری کی حد پر لائیو رن میں انجیکٹ ہو جاتا ہے۔ کوئی ٹوسٹ نہیں آتا — کارڈ ہی فیڈبیک ہے۔

تین چیزیں اس برتاؤ کو بدلتی ہیں:

  • جس پیغام میں @-ذکر ہو وہ ہمیشہ پیغام کے طور پر بھیجا جاتا ہے، کبھی اسٹیرنگ کے طور پر نہیں
  • جو پیغام سلیش کمانڈ سے شروع ہو وہ ہمیشہ اُسی کمانڈ کے طور پر سنبھالا جاتا ہے
  • منسلکہ والا پیغام ہمیشہ پیغام کے طور پر بھیجا جاتا ہے — اسٹیرنگ قطار صرف متن کی ہے
  • اگر ہر لائیو رن پہلے ہی ختم ہو چکا ہو تو متن آگے گر کر ایک عام پیغام کے طور پر بھیج دیا جاتا ہے

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

اگر آپ ایپ میں کسی اور جگہ ہوں تو شیل میں ایک ہمیشہ اوپر رہنے والا پینل پھر بھی دکھاتا ہے کہ کیا منتظر ہے، تاکہ آپ اسپیس ڈھونڈنے کے جھنجھٹ کے بغیر ایجنٹ کو اَن بلاک کر سکیں۔ جس لمحے اُس اسپیس کی گفتگو اسکرین پر آتی ہے، اوورلے درخواست چھپا دیتا ہے، چنانچہ آپ ایک ہی پرامپٹ کا جواب دو بار نہیں دیتے۔

کوئی ٹائم آؤٹ نہیں: بلاک شدہ ایجنٹ اُس وقت تک انتظار کرتا ہے جب تک کوئی فیصلہ نہ کرے۔ وہی درخواست ان باکس کی توجہ پٹی میں اور فون کلائنٹ پر بھی ظاہر ہوتی ہے۔

کوئی ایجنٹ جسے کوئی ترجیح، کوئی گم شدہ ضرورت یا کوئی حقیقی دو راہا موڑ درکار ہو، لازماً ask_user کال کرے۔ سوال کو چیٹ پیغام کے طور پر لکھنا باری ختم کر دیتا ہے اور آپ کو دوبارہ پرامپٹ کرنا پڑتا ہے۔ یہ ٹول گفتگو میں ایک نمبر شدہ کارڈ دکھاتا ہے — آپشنز، اختیاری آزاد متن، یا دونوں — اور رن آپ کے جواب پر انتظار کرتا ہے۔

کسی ایک آپشن کو بھیجنے کے لیے اس پر ٹیپ کریں (ہوور پر آخر والا نمبر ایک تیر بن جاتا ہے)۔ ملٹی سلیکٹ اور ٹائپ کیے گئے جوابات جاری رکھیں (⌘↵ / Ctrl↵) استعمال کرتے ہیں۔ چھوڑیں ایجنٹ کو بتاتا ہے کہ کوئی مناسب ڈیفالٹ چن لے اور دوبارہ نہ پوچھے۔

یہ اوپر والے منظوری کارڈ سے الگ میکانزم ہے: منظوری “کیا میں یہ کر سکتا ہوں؟” ہوتی ہے، اور سوال “آپ کی مراد ان میں سے کون سا تھا؟” ہوتا ہے۔ پوچھنا بلٹ اِن ہارنس پر ہر موڈ میں دستیاب ہے، بشمول صرف پڑھنے والے موڈز (یہ کچھ تبدیل نہیں کرتا)، اور اسے دانستہ طور پر منظوری پرامپٹ میں نہیں لپیٹا جاتا — ایک ڈائیلاگ کے سامنے دوسرا ڈائیلاگ، جب کوئی منظوری دینے والا منسلک نہ ہو، بند حالت میں ناکام ہو جائے گا۔ جس رن کے پاس دکھانے کو کوئی گفتگو ہی نہ ہو، اسے یہ ٹول ملتا ہی نہیں۔

جب رنز لائیو ہوں تو کمپوزر کا بھیجنے والا بٹن روکیں بٹن بن جاتا ہے۔ کمپوزر صاف کریں اور اسے دبائیں — یہ اُس گفتگو میں چل رہے ہر ایجنٹ کو روک دیتا ہے۔

اسپیس ہیڈر میں کوئی اسٹاپ کنٹرول نہیں اور اس کے لیے کوئی کی بورڈ شارٹ کٹ بھی نہیں۔ جب کئی رنز لائیو ہوں اور صرف ایک روکنا ہو تو اُس رن کا activity ٹیب کھولیں — اس کے ہیڈر میں رن تک محدود pause/resume اور اسٹاپ ہوتا ہے (اسٹاپ آپ سے تصدیق مانگتا ہے)۔ آبزرویبلٹی → لائیو ورک اسپیس میں چل رہے ہر ایجنٹ کو اُسی کنٹرول کے ساتھ فہرست کرتا ہے۔

جو رن روک دیا جائے اُس پر روکے جانے کا نشان لگ جاتا ہے۔ دوبارہ ڈسپیچ کرنے کے لیے نیا پیغام بھیجیں۔

کمانڈ فہرست دیکھنے کے لیے کمپوزر میں / ٹائپ کریں۔ وہ کمانڈز جو گفتگو کے برتاؤ کو بدلتی ہیں:

کمانڈ یہ کیا کرتی ہے
/plan اسپیس کو پلان موڈ میں بدل دیتی ہے۔ اکیلا /plan صرف موڈ تیار کرتا ہے؛ /plan <request> اسے تیار کر کے باقی حصہ آپ کے پیغام کے طور پر بھیج دیتا ہے
/goal <text> گفتگو کا جاری کام کا ہدف ریکارڈ کرتی ہے
/loop <text> کسی کام پر اُس کے مکمل ہونے تک تکرار کرتی ہے
/compact پرانی تاریخ کو ایک اینکر شدہ خلاصے میں سمیٹ کر کمپیکٹ شدہ کانٹیکسٹ پر جاری رکھتی ہے
/todo … اِس گفتگو کی محفوظ todo فہرست دیکھتی اور ترمیم کرتی ہے

مہارتیں اسی فہرست میں اپنے skill: نام فضا کے تحت ظاہر ہوتی ہیں، چنانچہ وہ اوپر کی کمانڈز سے کبھی نہیں ٹکراتیں — plan یا compact نامی مہارت قابلِ رسائی رہتی ہے:

کمانڈ یہ کیا چلاتی ہے
/skill:<name> ورک اسپیس میں انسٹال شدہ، یا ایجنٹ کے ساتھ منسلک ایک مہارت
/skill:<repo>:<name> اِس اسپیس میں چیک آؤٹ شدہ ریپوز میں سے کسی ایک کی بھیجی ہوئی مہارت

ریپو کی مہارتوں پر وہ ریپو بیج لگا ہوتا ہے جہاں سے وہ آئیں، کیونکہ اکیلے نام سے یہ ظاہر نہیں ہوتا کہ وہ کس سروس کے معاہدوں کو مجسم کرتی ہیں اور دو ریپوز میں سے ہر ایک testing بھیج سکتا ہے۔ کسی مہارت کو ڈھونڈنے کے لیے prefix ٹائپ کرنا ضروری نہیں: خالی مہارت کا نام ٹائپ کرنے سے نام فضا والی اندراجات بھی مماثل ہوتی ہیں۔

ایجنٹ کے پاس کبھی صرف اُسی ریپو کی مہارتیں ہوتی ہیں جس میں وہ اس وقت کام کر رہا ہو — ریپو تک محدود مہارتیں دیکھیں۔ کمپوزر اُس طرح محدود نہیں: آپ نام لے کر کسی بھی ریپو کی مہارت استعمال کر سکتے ہیں۔

/compact اور /todo کو کلائنٹ روک لیتا ہے اور وہ کبھی پیغامات کے طور پر محفوظ نہیں ہوتے — ٹرانسکرپٹ میں /compact کی ایک سطر اگلی کمپیکشن کے کٹ کو ایک باری پیچھے دھکیل دے گی۔ /plan متن کے طور پر سفر کرنے کے بجائے اسپیس کا محفوظ موڈ پلٹ دیتا ہے۔ چنانچہ تینوں میں سے کوئی بھی “وہ پیغام جو آپ ایجنٹ کو بھیجتے ہیں” نہیں ہے؛ تاریخ میں انہیں دیکھنے کی توقع نہ رکھیں۔

کسی پیچیدہ تبدیلی سے پہلے اسپیس کو /plan، کمپوزر ٹول بار کے موڈ ڈراپ ڈاؤن، یا Shift+Tab سے پلان موڈ میں بدلیں۔ پھر ایجنٹ صرف پڑھتے ہوئے تحقیق کرتا ہے اور ایک ٹائپ شدہ پلان پیش کرتا ہے جسے آپ کام شروع ہونے سے پہلے منظور کرتے ہیں۔ پلان موڈ استعمال کریں دیکھیں۔

آپ کو ہر ایجنٹ کے لیے الگ اسپیس کی ضرورت نہیں۔ کسی بھی اسپیس میں:

@alice can you look at the failing tests in src/auth_test.dart?

ذکر کردہ ایجنٹ اسپیس میں شامل کر دیا جاتا ہے اور اُس اسپیس کے کانٹیکسٹ کے ساتھ ڈسپیچ کیا جاتا ہے۔ نام کیسے مماثل کیے جاتے ہیں یہ جاننے کے لیے ایجنٹس کا @-ذکر دیکھیں۔