AI تجربہ

میں نے اپنے AI ایجنٹ کو رومرگو میں مدعو کیا، اور مجھے نہیں معلوم کہ یہ کیا ہے یا اسے کیا کہنا ہے۔

ایپلی کیشنز میں زیادہ تر AI انضمام پیش گوئی کے مطابق ڈیزائن کیے گئے ہیں۔ پروڈکٹ ایک چنگاری بٹن جوڑتا ہے، اپنے ماڈل کو درخواست بھیجتا ہے، اور سائڈبار میں جواب دکھاتا ہے۔

ایک اور عام آپشن ہے۔ ایپلیکیشن ایک MCP سرور فراہم کرتی ہے، اور صارف ChatGPT، Claude، یا کسی دوسرے ایجنٹ کو کھولتا ہے اور اس سے درخواست کے ڈیٹا کے ساتھ کام کرنے کو کہتا ہے۔ اس سے ایجنٹ کو اچھے اوزار ملتے ہیں، لیکن بات چیت کہیں اور ہوتی ہے۔ آپ کو ایڈیٹر چھوڑنے کی ضرورت ہے، وضاحت کریں کہ فی الحال کیا کھلا ہے، واپس سوئچ کریں اور نتیجہ چیک کریں۔

میں چیٹ اور ایڈیٹر کے درمیان سوئچ کرتے کرتے تھک گیا، اور میرے ذہن میں ایک خیال آیا: اگر میں اس سے مکمل طور پر بچ سکتا ہوں تو کیا ہوگا؟

میں نے ایک AI پینل کو براہ راست ایڈیٹر میں شامل کیا، لیکن اسے Romergo کے زیر اہتمام ماڈل سے منسلک نہیں کیا۔ اس کے بجائے، صارف اپنے ذاتی AI ایجنٹ کو کھلے سیشن میں مدعو کرتا ہے۔

ایجنٹ وہیں رہتا ہے جہاں وہ پہلے سے رہتا ہے: ChatGPT، Claude، Codex، یا MCP سے مطابقت رکھنے والے دوسرے کلائنٹ میں۔ یہ اپنا ماڈل، سبسکرپشن، میموری، سیٹنگز، اور دستیاب ٹولز رکھتا ہے۔ Romergo صرف ایک ورک اسپیس، موجودہ سیاق و سباق، اور کسی پروجیکٹ میں ترمیم کرنے کے لیے خصوصی ٹولز فراہم کرتا ہے۔

کنیکٹ کرنے کے بعد، صارف بلڈر سے براہ راست ایجنٹ کو لکھ سکتا ہے:

جوابات، سوالات اور انٹرمیڈیٹ سٹیٹس ایک ہی پینل میں واپس کر دیے جاتے ہیں۔ پینل نہ صرف متن، بلکہ پورے ٹاسک سائیکل کو بھی دکھاتا ہے: ایک کمانڈ موصول ہوئی ہے، ایک ایجنٹ کو تفویض کی گئی ہے، ٹولز پر عمل درآمد کیا جا رہا ہے، تصدیق کی ضرورت ہے، کام مکمل ہو گیا ہے، یا کوئی غلطی ہو گئی ہے۔ اب آپ کو ایڈیٹر چھوڑنے کی ضرورت نہیں ہے۔

یہ ایک تجربے کے طور پر شروع ہوا۔

میرا کوئی نیا پروٹوکول ایجاد کرنے یا نئے پروڈکٹ کیٹیگری کے ساتھ آنے کا کوئی ارادہ نہیں تھا۔ میں ایک سادہ آئیڈیا کو جانچنا چاہتا تھا: کیا کوئی ذاتی صارف ایجنٹ ایم سی پی کے ذریعے رومرگو کو نہ صرف بیرونی طور پر کنٹرول کر سکتا ہے، بلکہ ایڈیٹر کے اندر ایک لائیو سیشن میں عارضی طور پر شامل ہو سکتا ہے؟

پہلا ورژن ایک تجربہ تھا۔ میری حیرت کی بات یہ ہے کہ اس نے خود اس کا استعمال شروع کرنے کے لیے کافی کام کیا۔

مختصر ترین خاکہ اس طرح تیار کیا جا سکتا ہے:

Personal AI agent  <->  MCP  <->  Romergo Builder

لیکن دونوں سمتوں کا نشان اہم ہے۔

ایک عام MCP کال ایجنٹ سے شروع ہوتی ہے: ایجنٹ درخواست سے رابطہ کرنے کا فیصلہ کرتا ہے اور اس کے ٹول کو کال کرتا ہے۔ میرے تجربے میں، رومرگو بھی کام شروع کر سکتا ہے۔ صارف بلڈر میں ایک کمانڈ لکھتا ہے، رومرگو اسے ایک محفوظ چینل میں رکھتا ہے، اور پہلے سے منسلک ایجنٹ MCP کے ذریعے کمانڈ وصول کرتا ہے۔

پھر ایجنٹ پروجیکٹ کو پڑھنے یا اس میں ترمیم کرنے کے لیے معمول کے رومرگو ٹولز کا استعمال کرتا ہے اور اسی چینل کے ذریعے نتیجہ بلڈر کو واپس کرتا ہے۔

یہ ایک بند لوپ بناتا ہے:

1. User -> Builder panel: "Replace the music in this chapter"
2. Builder -> authenticated channel: command + current page + selection
3. Personal agent -> MCP: wait for the next Builder command
4. Agent -> Romergo MCP tools: inspect and edit the project
5. Agent -> MCP channel: status, question, result, or error
6. Builder panel -> User: live response from the personal agent

رومرگو ان میں سے کسی بھی مرحلے پر ماڈل نہیں چلاتا ہے۔

ایک ہی وقت میں، میں نے خود MCP کو تبدیل نہیں کیا اور اس میں حقیقی سرور پش شامل نہیں کیا۔ پروٹوکول کے نقطہ نظر سے، تمام کالیں اب بھی ایجنٹ کے ذریعہ شروع کی جاتی ہیں۔ ریورس ڈائریکشن کو ایک محفوظ میل باکس کے طور پر لاگو کیا جاتا ہے: بلڈر چینل کو کمانڈ لکھتا ہے، اور ایجنٹ عام لانگ پول MCP ٹول کے ذریعے اس کا انتظار کرتا ہے۔ پھر ایجنٹ اسی عام ٹول کال کا استعمال کرکے ایونٹ کو واپس بھیجتا ہے۔

دو طرفہ رویہ ایپلیکیشن سیشن کی سطح پر ظاہر ہوتا ہے، نہ کہ نئے MCP ٹرانسپورٹ کے ذریعے۔ یہ فرق اہمیت رکھتا ہے: موجودہ نفاذ کو معیاری MCP کالوں کے اوپر بنایا گیا ایک چھوٹے سیشن کنٹریکٹ کے طور پر سمجھا جاتا ہے۔

ایک ایجنٹ سیشن میں کیسے داخل ہوتا ہے۔

بلڈر ایک عارضی چینل کوڈ بناتا ہے۔ صارف اپنے AI چیٹ میں اس طرح کے ساتھ ایک مختصر آغاز کا اشارہ کاپی کرتا ہے:

میرے Romergo Builder چینل میں شامل ہوں۔ ہر نئی کمانڈ کو ایک بار چلائیں، نتیجہ یا سوال واپس بلڈر کو بھیجیں، اور اس وقت تک انتظار کرتے رہیں جب تک میں آپ کو واضح طور پر رکنے کو نہ کہوں۔

ایجنٹ پھر MCP ٹول romergo_join_builder_channel کو کال کرتا ہے اور کوڈ پاس کرتا ہے۔ یہ ایک مصافحہ ہے: رومرگو OAuth سیشن، چینل کے مالک اور اس کی میعاد ختم ہونے کی تاریخ کو چیک کرتا ہے، اور پھر گفتگو کی حالت اور آخری کمانڈ کرسر لوٹاتا ہے۔

اگلا، ایجنٹ romergo_wait_for_builder_command کو کال کرتا ہے۔ یہ ایک طویل رائے شماری ہے جو ایڈیٹر کے اگلے حکم کا انتظار کرتی ہے۔ اگر کچھ نہیں پہنچتا ہے تو، ایجنٹ کرسر کو بچاتا ہے اور دوبارہ انتظار کرنا شروع کر دیتا ہے۔ اگر کمانڈ موجود ہے تو اس میں شامل ہیں:

تمام منسلک سیاق و سباق کو ناقابل اعتماد ایپلیکیشن مواد کے طور پر نشان زد کیا گیا ہے۔ یہ کام کا ڈیٹا ہے، نہ کہ ایجنٹ کی کنٹرول ہدایات کا تسلسل۔

ایجنٹ موجودہ Romergo MCP ٹولز کا استعمال کرتے ہوئے کام انجام دیتا ہے۔ مثال کے طور پر، یہ پروجیکٹ اور باب کو پڑھ سکتا ہے، اثاثے تلاش کر سکتا ہے، منظر کو تبدیل کر سکتا ہے، اور پھر محفوظ شدہ نتیجہ کی تصدیق کر سکتا ہے۔

جب یہ کام کر رہا ہو، ایجنٹ romergo_report_builder_event کو کال کر کے پینل بھیج سکتا ہے:

جواب commandId کا پابند ہے، اور اگلی کمانڈ آخری پروسیس شدہ ترتیب سے پڑھی جاتی ہے۔ پہلی بار جاری ہونے پر، API جوہری طور پر client_id OAuth کلائنٹ کو کمانڈ تفویض کرتا ہے۔ ایک اور منسلک ایجنٹ ایک ہی وقت میں ایک ہی کام کو نہیں اٹھا سکے گا۔ کرسر ٹائم آؤٹ یا دوبارہ کنکشن کے بعد جاری رکھنے میں مدد کرتا ہے، اور مخصوص ٹول کالز کی ایک بار کی تصدیق آرگیومنٹ فنگر پرنٹ کے ذریعے محفوظ ہوتی ہے اور اسے کسی اور کارروائی کے لیے دوبارہ استعمال نہیں کیا جا سکتا۔

حقوق کمرے کے ہیں، پرامپٹ کے نہیں۔

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

پہلے سے طے شدہ طور پر، پڑھنا، ترمیم کرنا، اور میڈیا کے ساتھ کام کرنا دستیاب ہے، اور صارف کی جانب سے براہ راست درخواست کو پہلے ہی ان کارروائیوں کو لاگو کرنے کی اجازت سمجھا جاتا ہے۔ شائع کرنا اور حذف کرنا الگ سے غیر فعال اور فعال ہے۔ اگر چاہیں تو، صارف سخت وضع کو فعال کر سکتا ہے اور ہر تبدیلی کی دوبارہ تصدیق کر سکتا ہے، یا صرف اشاعت اور حذف کرنے کے لیے تصدیق کی ضرورت ہے۔

یہ صرف سٹارٹ پرامپٹ میں متن نہیں ہے۔ عام سرور ریپر ترمیم کرنے والے MCP ٹول کو کال کرنے سے پہلے اسکوپ چیک کرتا ہے۔ اگر اضافی تصدیق کو فعال کیا جاتا ہے تو، بلڈر "ایک بار اجازت دیں" اور "مسترد کریں" کے بٹن کے ساتھ عین مطابق کارروائی دکھاتا ہے، جبکہ اصل کال فیصلے کا انتظار کرتی رہتی ہے۔ اجازت کمانڈ، ٹول اور آرگومنٹ فنگر پرنٹ کی پابند ہے، اور ایک بار عمل میں آنے کے بعد یہ درست نہیں رہتی۔

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

رومرگو میں کیا ہے، اور صارف کے پاس کیا باقی ہے۔

میں اس فن تعمیر کو خدشات کی علیحدگی کے طور پر سوچنا پسند کرتا ہوں۔

Romergo فراہم کرتا ہے:

صارف ایجنٹ لاتا ہے:

انٹیلی جنس کا اطلاق سے تعلق نہیں ہے۔ ایپ ایک ایسی جگہ بناتی ہے جہاں یہ ذہانت محفوظ طریقے سے کام کر سکتی ہے۔

کیوں نہ ایک باقاعدہ بلٹ ان کوپائلٹ بنائیں

بلٹ ان AI کی وضاحت کرنا آسان اور فعال کرنا آسان ہوگا۔ صارف ایک بٹن دباتا ہے، ایپلیکیشن منتخب ماڈل کو کال کرتی ہے، سب کچھ کام کرتا ہے۔

لیکن پھر رومرگو کو بھی AI انفراسٹرکچر کا آپریٹر بننا پڑے گا:

ذاتی ایجنٹ کا استعمال کرتے وقت، یہ سب صارف کی طرف پہلے سے موجود ہے۔ Romergo ایک اور ChatGPT بنانے کی کوشش نہیں کر رہا ہے۔ یہ ChatGPT، Claude یا کسی دوسرے ایجنٹ کو ایک خصوصی ورک اسپیس اور واضح ٹولز دیتا ہے۔

یہ ایک تخلیقی ایڈیٹر کے لیے خاص طور پر دلچسپ ہے۔ وہی ایجنٹ جان سکتا ہے کہ صارف مکالمہ کیسے لکھتا ہے، وہ کس لہجے کو ترجیح دیتا ہے، کون سے حوالہ جات پہلے ہی زیر بحث آچکے ہیں، اور کون سے بیرونی اوزار استعمال کرتے ہیں۔ رومرگو کو صرف ایک پس منظر کو تبدیل کرنے یا کسی منظر کو دوبارہ ترتیب دینے کے لیے اس پورے سسٹم کو کاپی کرنے کی ضرورت نہیں ہے۔

سب سے عجیب حصہ: ایجنٹ باہر اور اندر دونوں ہے۔

ایجنٹ جسمانی طور پر رومرگو میں منتقل نہیں ہوتا ہے۔ اس کا ماڈل اور ایجنٹ لوپ اصل AI کلائنٹ میں چلتا رہتا ہے۔

لیکن صارف کے نقطہ نظر سے، ایجنٹ ایڈیٹر کے اندر موجود ہے:

اس لیے، "ایپلی کیشن کے اندر AI" اور "AI باہر MCP کے ذریعے" دونوں الفاظ یہاں مکمل طور پر درست نہیں ہیں۔ یہ درخواست سیشن میں کسی بیرونی ایجنٹ کی عارضی موجودگی ہے۔

میں اس سمت میں جانے والا پہلا نہیں ہوں۔

تجربے کے کام کرنے کے بعد، میں نے اسی طرح کے طریقوں کو تلاش کرنا شروع کیا۔

ایجنٹ کلائنٹ پروٹوکول Zed اور JetBrains جیسے ایڈیٹرز کو بیرونی کوڈنگ ایجنٹس کو جوڑنے کی اجازت دیتا ہے۔ Tidewave کلاڈ کوڈ، کوڈیکس اور دیگر ACP ایجنٹوں کو چلتی ویب ایپلیکیشن کے آگے رکھتا ہے اور انہیں براؤزر اور رن ٹائم سیاق و سباق سے گزرتا ہے۔ Obsidian Agent Client کلاڈ کوڈ، کوڈیکس اور جیمنی کو نوٹس کے بالکل ساتھ دکھاتا ہے اور خودکار دستاویز اور انتخاب کو منسلک کرتا ہے۔ marimo بیرونی ایجنٹ کو مشترکہ ورک اسپیس کے طور پر ایک لائیو نوٹ بک دیتا ہے۔

مزید عام تجربات بھی ہیں۔ AG-UI صارف انٹرفیس اور ایجنٹ بیک اینڈ کے درمیان دو طرفہ مواصلات کو معیاری بناتا ہے۔ WebMCP تجویز کرتا ہے کہ ویب صفحات کسی منسلک براؤزر یا ڈیسک ٹاپ ایجنٹ کے لیے دستیاب ٹولز کو رجسٹر کریں۔ ایجنٹ ایپلیکیشن پروٹوکول ایک ایسے ماڈل کی وضاحت کرتا ہے جس میں ایپلیکیشن UI اور ڈومین ٹولز کی مالک ہوتی ہے، اور بیرونی ایجنٹ استدلال، تاریخ، اور عمومی مقصد والے ٹولز کا مالک ہوتا ہے۔

یعنی بنیادی خیال پہلے سے ہی کئی شکلوں میں موجود ہے۔ لیکن زیادہ تر نفاذ IDEs، مقامی کوڈنگ ایجنٹوں، یا ایجنٹوں پر توجہ مرکوز کرتے ہیں جنہیں کمپنی خود تعینات کرتی ہے۔

رومرگو کا تجربہ میرے لیے ایک قدرے مختلف سوال کی وجہ سے دلچسپ ہے: اگر کوئی ذاتی صارف ایجنٹ باقاعدہ تخلیقی درخواست داخل کر سکتا ہے تو کیا ہوگا؟

نیا ماڈل نہیں۔ ماڈل کی API کلید نہیں ہے۔ بلٹ ان copilot ایپلیکیشن نہیں ہے۔ ایک ایسا ایجنٹ جسے ایک شخص پہلے ہی ہر روز استعمال کرتا ہے۔

سہولت صرف آدھا مسئلہ ہے۔

ایک بار جب کوئی بیرونی ایجنٹ ایپلیکیشن کمانڈز کو سن سکتا ہے اور پروجیکٹ کو تبدیل کر سکتا ہے، تو سیکیورٹی اب کوئی اختیاری خصوصیت نہیں رہتی۔

سوالات پیدا ہوتے ہیں جن کا جواب ایک OAuth اسکرین سے نہیں دیا جا سکتا:

موجودہ ورژن چینل کو صارف اور وقت کے لحاظ سے محدود کرتا ہے، OAuth، سرور اسکوپس، ایک بار کی تصدیق، ایٹمک کمانڈ کے دعوے، اور ایک واضح لائف سائیکل کا استعمال کرتا ہے۔ یہ اب بھی ایک تجربہ ہے، لیکن اہم حدود اب عمل کا حصہ ہیں نہ کہ ایجنٹ کے لیے صرف رہنما اصول۔

اسے کیا کہیں

میرے پاس ابھی حتمی عنوان نہیں ہے۔

اپنا اپنا AI لائیں عام طور پر آپ کی اپنی API کلید یا ماڈل کا انتخاب ہوتا ہے۔ Bring Your Own Agent قریب ہے کیونکہ صارف نہ صرف ماڈل بلکہ میموری، ٹولز اور ایک ایجنٹ لوپ بھی لاتا ہے۔ تاہم، BYOA تجربے کے ایک اہم حصے کی وضاحت نہیں کرتا ہے: درخواست ایجنٹ سے بھی رابطہ کر سکتی ہے اور اس کے ساتھ لائیو سیشن برقرار رکھ سکتی ہے۔

شاید یہ ہے:

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

درخواستوں کو مقامی AI کی ضرورت نہیں ہوسکتی ہے۔

آج، تقریباً ہر پروڈکٹ اپنے اسسٹنٹ میں بنانے کی کوشش کرتا ہے۔ نتیجے کے طور پر، صارف کے پاس بہت سے الگ الگ AIs ہیں: ایک ایڈیٹر میں، دوسرا میل میں، تیسرا ٹاسک سسٹم میں۔ ہر ایک کی اپنی مختصر یادداشت، اس کی اپنی حدود اور اس کی اپنی قیمت ہے۔

ایک اور ممکنہ ماڈل ہے۔

ایپ ورک اسپیس، لائیو سیاق و سباق اور خصوصی ٹولز فراہم کرتی ہے۔ صارف ایک ایسا ایجنٹ لاتا ہے جس پر وہ پہلے ہی بھروسہ کرتا ہے۔ کام کے دوران، ایجنٹ درخواست میں شامل ہوتا ہے، کام کو مکمل کرنے میں مدد کرتا ہے، اور صارف کے ساتھ چلا جاتا ہے۔

میں ابھی تک نہیں جانتا کہ آیا یہ ایک آزاد تعمیراتی زمرہ بن جائے گا۔ لیکن اب میں جانتا ہوں کہ اس طرح کے ایک سائیکل کو جمع کیا جا سکتا ہے اور یہ حقیقت میں استعمال کیا جا سکتا ہے.

لیکن میں جانتا ہوں کہ تجربہ کرنا بہت مزہ آتا ہے۔

ڈیولپمنٹ بلاگ پر واپس جائیں