کچھ مہینے پہلے میں نے [my agentic stack](/posts/what-my-agentic-stack-actually-does) کے بارے میں لکھا تھا: ایک پرائیویٹ monorepo جہاں AI ایجنٹ میرے ای میل، ادائیگیوں اور تعیناتیوں کو سنبھالتے ہیں، [Neotoma](https://neotoma.io) کے نیچے ساختی میموری کے طور پر۔ وہ پوسٹ ایک وعدے پر ختم ہوئی۔ میں نے کہا کہ میں حکمت عملی کی پرت ہوں، اور یہ کہ فن تعمیر کو اس کردار کو سافٹ ویئر کے ذریعے تبدیل کرنے کے لیے ڈیزائن کیا گیا تھا۔ یہ کرنے کے بارے میں یہ پوسٹ ہے۔

[Ateles](https://github.com/markmhendrickson/ateles) Neotoma کے بعد میرا دوسرا پروڈکٹ ہے، اور یہ براہ راست اس کے اوپر بنتا ہے۔ یہ ایک ذاتی ایجنٹ بھیڑ ہے۔ جہاں پرانا اسٹیک میرے ساتھ ہر سیشن میں ہر کام کے لیے ایک ایجنٹ ہوتا تھا، ایٹیلس ایجنٹوں کا ایک کھڑا بیڑا ہے جو کردار کے لحاظ سے بیان کیا جاتا ہے، نیوٹوما کے ذریعے مربوط ہوتا ہے، روزانہ لانچ کے تحت چلتا ہے۔ یہ میرے درمیان فرق ہے کہ میں ہر ایجنٹ کو چلاتا ہوں اور میں ایک ایسی ٹیم کو ہدایت کرتا ہوں جو پہلے سے اپنے کاموں کو جانتا ہو۔

یہ پوسٹ بتاتی ہے کہ میں نے اسے کیوں بنایا، یہ کیسے کام کرتا ہے، اور یہ کہاں جا رہا ہے۔

## اسٹیک نے اسکیلنگ کیوں روک دی؟

محرک حجم تھا۔ فروری کے آخر میں Neotoma کی [developer ریلیز](/posts/neotoma-developer-release) کے بعد، میری توجہ تین طریقوں پر تقسیم ہو گئی جو زیادہ اشتراک نہیں کرتے: مصنوعات کی تعمیر، اس کی مارکیٹنگ، اور ابتدائی صارفین کے ساتھ تعلقات کا انتظام۔ میں Neotoma کو اپنی زندگی کے بارے میں پیشہ ورانہ اور ذاتی طور پر زیادہ سے زیادہ سیاق و سباق بھی کھلا رہا تھا، اور میموری کو جتنا بہتر حاصل ہوا، کوئی بھی ایجنٹ اس کے ساتھ اتنا ہی زیادہ کام کر سکتا تھا۔ اس نے رکاوٹ کو دور نہیں کیا، اسے منتقل کر دیا. حد اب وہ نہیں رہی جو ایجنٹوں کو معلوم تھی۔ یہ میں ہی تھا، جس چیز کو وہ جانتے تھے اسے ایک وقت میں ایک سیشن میں تبدیل کر رہا تھا۔

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

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

دو اور چیزوں نے اسی سمت دھکیل دیا۔ میں نے اپنے پروڈکٹ آپریشنز کو ڈیفالٹ کے طور پر گٹ ہب پر منتقل کر دیا، ایشوز اور پل کی درخواستوں کا استعمال کرتے ہوئے براہ راست مین پر جانے کی بجائے۔ اسے جزوی طور پر [Isue پائپ لائن جو میں نے بنایا ہے](/posts/agent-to-agent-issue-resolution-with-humans-at-the-edges) کے ذریعہ مجبور کیا گیا تھا، جس نے صارفین اور ان کے ایجنٹوں کی حقیقی رپورٹوں کو Neotoma اور باہر GitHub تک پہنچانا شروع کیا۔ اور میں چاہتا تھا کہ میری ترقی کا عمل عوام میں قابل فہم ہو، تاکہ Neotoma استعمال کرنے والے لوگ بالکل دیکھ سکیں کہ کیا کام ہو رہا ہے۔ وہ دونوں ڈیزائن، پروڈکٹ مینجمنٹ، QA، اور ریلیز میں خصوصی ایجنٹوں کی ایک ترتیب چاہتے ہیں۔ یہ سب کرنے والا ایک ایجنٹ نقطہ کو شکست دیتا ہے۔

لہذا ایٹیلس ایک بیڑے کو گھمانے کا فیصلہ ہے، اور نیوٹوما میں ہی اس بیڑے کی وضاحت کرنا ہے۔

## نیوٹوما تانے بانے کے طور پر، نہ صرف میموری

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

ایجنٹ Neotoma ادارے ہیں۔ ہر ایک ایک پرامپٹ، ٹول کی اجازت دینے والی فہرست، اور قابلیت گرانٹس کے سیٹ کے ساتھ ایک `agent_definition` ہے۔ ایجنٹ کے برتاؤ کو اپ ڈیٹ کرنا اس ہستی کے خلاف ایک `درست()` کال ہے، مکمل ورژن کی تاریخ اور مصنف کے انتساب کے ساتھ۔ کوئی عہد نہیں، کوئی دوبارہ تعینات نہیں۔ ڈسک پر موجود SKILL.md فائلیں ان ہستیوں کے آئینے تیار کرتی ہیں، ذریعہ نہیں۔

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

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

شناخت وہ ٹکڑا ہے جو خواہش کے بجائے انتساب کو حقیقی بناتا ہے۔ ہر ایجنٹ کے پاس ایک [AAuth](/posts/know-which-of-your-agents-wrote-what) کلیدی جوڑا ہوتا ہے اور ہر ٹول کال پر دستخط کرتا ہے۔ ہارنس اداکاری کرنے سے پہلے دستخط کی تصدیق کرتا ہے اور ریکارڈ کرتا ہے جس نے GitHub پر اصل میں کام کرنے والے کے ساتھ کام کرنے کا دعوی کیا تھا۔ ایک کوڈ رائٹنگ ایجنٹ اب صرف میری طرح کام نہیں کرتا ہے۔ یہ خود کے طور پر کام کرتا ہے، اور لاگ ایسا کہتا ہے.

## ایجنٹس، کردار کے لحاظ سے

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

چند کردار جو آج چل رہے ہیں:

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

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

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

**حکمت عملی۔** یہ وہ کردار ہے جسے میں نے پچھلی پوسٹ میں اپنا بتایا تھا، اور یہ وہی ہے جسے میں جان بوجھ کر دے رہا ہوں۔ یہ ہینڈ آف اس دلیل کا ٹھوس ورژن ہے جو میں نے [The Human Inversion](/posts/series/the-human-inversion) میں کیا تھا: جیسا کہ ایجنٹ عمل درآمد کے وسط کو جذب کرتے ہیں، انسان کا لیوریج اختتام تک پہنچ جاتا ہے، تیز معیارات داخل ہوتے ہیں اور فیصلہ کن فیصلہ سامنے آتا ہے۔ خودمختاری کو عالمی سطح پر نہیں، فی منصوبہ بندی کی جاتی ہے۔ ایک ایگزیکیوشن پالیسی ہستی کا اعلان کرتا ہے، ایک دیے گئے پلان کے لیے، ایک ایجنٹ کو اپنے طور پر کیا کرنے کی اجازت ہے، اسے کس کوالٹی بار کو صاف کرنا ہے، اور اسے کہاں رکنا چاہیے اور آگے بڑھنے سے پہلے مجھ سے چیک کرنا چاہیے۔ بڑھنے کا سلسلہ قائم مقام ایجنٹ سے لے کر ڈومین کے ماہر سے لے کر آئین کے رکھوالے تک چلتا ہے، اور ہر قرارداد کو ایک ہستی کے طور پر واپس لکھا جاتا ہے تاکہ اگلی مثال فیصلے کو وراثت میں لے۔

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

## ٹاسک ریڑھ کی ہڈی

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

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

یہ ریڑھ کی ہڈی ہے جس کے ارد گرد میں باقی تجربہ بنا رہا ہوں۔

## یہ کہاں جا رہا ہے۔

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

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

قریب ترین روڈ میپ رسائی کے بارے میں ہے۔ ایٹیلس میرے اپنے استعمال کے لیے بنایا گیا تھا، اس لیے اس کی کافی مقدار اب بھی ایک آپریٹر، مجھے فرض کرتی ہے۔ میں [اسے انسٹال کرنے کے قابل اور ملٹی آپریٹر ہونے کی طرف گامزن کر رہا ہوں](https://github.com/markmhendrickson/ateles/blob/main/docs/multi_tenant.md): ایک بھیڑ کوئی اور کانٹا کر سکتا ہے، اپنے نیوٹوما کی طرف اشارہ کر سکتا ہے، ان کے اپنے سیاق و سباق فراہم کر سکتا ہے، اور چلا سکتا ہے۔ چونکہ ایجنٹ پالیسی کے لحاظ سے آپریٹر-اگنوسٹک ہوتے ہیں اور آپریٹر کے لیے مخصوص کچھ بھی کوڈ میں نہیں بنایا جاتا، اس لیے فورک کیس زیادہ تر سیاق و سباق کا ہوتا ہے، دوبارہ لکھنے کا نہیں۔ حقیقی طور پر نیا کام ایک ہی کرایہ دار کے اندر ایک سے زیادہ انسانوں کی مدد کر رہا ہے، یہی وجہ ہے کہ کرایہ دار کی حد کو بعد میں دوبارہ تیار کرنے کے بجائے ابھی ڈیزائن کیا گیا ہے۔

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