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

یہ اسٹوریج کا مسئلہ ہے، اور اسے پہلے حل کرنا ہوگا۔ آپ کو ایک ریاستی پرت کی ضرورت ہے جہاں ہر ایجنٹ مشاہدات لکھ سکے اور ہر ایجنٹ سیاق و سباق کے لیے استفسار کر سکے۔ حقائق کو سیشنز، ٹولز اور مشینوں میں برقرار رہنا پڑتا ہے۔ بازیافت کو کام کرنا ہوگا قطع نظر اس کے کہ کس ایجنٹ نے ڈیٹا لکھا یا کب۔ اس کو حل کرنے کے لیے [Neotoma](/posts/truth-layer-agent-memory) موجود ہے: ایک اسکیما-ایگنوسٹک سبسٹریٹ جو اسٹور کرتا ہے، پیش کرتا ہے اور آپ کو اپنے پورے ایجنٹ کے اسٹیک میں سچائی سے استفسار کرنے دیتا ہے۔

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

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

## کوآرڈینیشن کی حد

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

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

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

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

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

## سگنلنگ کا کیا مطلب ہے؟

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

یہ ان نظاموں میں ایک معیاری قدیم ہے جو ریاست کو پیمانے پر ہینڈل کرتے ہیں۔ PostgreSQL WAL اندراجات کو خارج کرتا ہے اور LISTEN/NOTIFY کو سپورٹ کرتا ہے۔ کوئی بھی دعوی نہیں کرتا ہے کہ PostgreSQL "اداکاری" کر رہا ہے جب یہ ایسا کرتا ہے۔ یہ اپنی ریاستی منتقلی میں مشاہدہ فراہم کرتا ہے۔ کافکا جیسا میسج بروکر مختلف پیمانے پر وہی کام کرتا ہے۔ ریاستی نظام بتاتا ہے کہ کیا ہوا۔ ڈاؤن اسٹریم صارفین فلٹر کرتے ہیں، ترجیح دیتے ہیں اور عمل کرتے ہیں۔ رپورٹنگ پرت واقعات کے بارے میں کوئی وجہ نہیں بتاتی ہے۔ یہ جلتا ہے اور بھول جاتا ہے۔

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

## وہ لائن جس نے رہنا ہے۔

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

اس لائن کو رہنا ہے۔

سگنلنگ کیا ہے:

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

کیا سگنلنگ نہیں ہے:

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

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

## بہتر حد

پرانی حد: سبسٹریٹ سچائی کو ذخیرہ کرتا ہے اور پیش کرتا ہے۔

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

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

اصطلاحات کی اہمیت ہے۔ "اطلاع" یا "انتباہ" کے بجائے "سگنل" اور "اخراج" کریں۔ مطلع کرنے کا مطلب اہمیت کے بارے میں فیصلہ ہے۔ الرٹ کا مطلب فوری تشخیص ہے۔ سگنل غیر جانبدار ہے۔ سبسٹریٹ سگنلز۔ صارف تشریح کرتا ہے۔

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

## یادداشت سے اعصابی نظام تک

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

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

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

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

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

## یہ کیا کھولتا ہے۔

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

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

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

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

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

## آپ کے اپنے ایجنٹوں سے آگے

اب تک یہ پڑھتا ہے گویا تمام ایجنٹ آپ کے ہیں۔ وہ آپ کے ایڈیٹر، آپ کی کرون جابز، آپ کے لیپ ٹاپ میں بیٹھتے ہیں۔ یہ آسان کیس ہے۔ یہ پوری تصویر نہیں ہے۔

قدرتی پیشرفت آپ کی مشین اور دوسرے انفراسٹرکچر پر سیٹلائٹ مثالوں کی ایک مرکزی مثال ہے: کلائنٹ سرورز، ٹیم VPS ڈراپلیٹس، ریموٹ ایجنٹس جنہیں آپ چلاتے ہیں لیکن ان کے مالک نہیں ہیں۔ ایک بار جب آپ وہاں پہنچ جائیں تو پولنگ صرف بیکار نہیں ہوتی۔ یہ ساختی طور پر اندھا ہے۔ آپ SSH اندر، سمری چلاتے ہیں، پوچھتے ہیں "ان تاریخوں کے درمیان کیا ہوا" کیونکہ ریموٹ اسٹور کبھی بھی آگاہی کو اس جگہ پر نہیں دھکیلتا جہاں آپ کے کوآرڈینیٹنگ ایجنٹ چلتے ہیں۔

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

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

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

## جو میں بنا رہا ہوں۔

میں ان صلاحیتوں کو ترتیب میں [Neotoma](/posts/truth-layer-agent-memory) میں شامل کر رہا ہوں، ہر ایک عمارت پچھلی عمارت میں۔

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

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

**عمومی ہستی جمع کرانا۔** ابھی، ساختی بیرونی گذارشات (مہمان تک رسائی، رسائی کی پالیسیاں، گفتگو کی تھریڈنگ، ایکسٹرنل ایکٹر پرووینس) موجود ہیں لیکن ان کا وائرڈ واحد ہستی کی قسم سے ہے۔ اگلا مرحلہ اس entity-type-agnostic کو بنا رہا ہے: کسی بھی entity کی قسم کو قابل رسائی رسائی کی پالیسیوں، اختیاری بیرونی آئینوں، اور گفتگو کی تھریڈنگ کے ساتھ مہمانوں کی گذارشات کے لیے کھولا جا سکتا ہے۔ کلائنٹ کا ایجنٹ سٹرکچرڈ ڈیٹا جمع کرتا ہے۔ ایک پارٹنر کی آٹومیشن رائے جمع کراتی ہے۔ سبسٹریٹ ایکسیس کنٹرول اور پرویننس کو ہینڈل کرتا ہے۔ آپریٹر کنفیگر کرتا ہے کہ کیا کھلا ہے اور کیا نہیں ہے۔

**دو طرفہ کراس مثال کی مطابقت پذیری۔** موجودہ بنیادی ڈھانچہ یک طرفہ ریموٹ جمع کرانے کی حمایت کرتا ہے: ایک مثال دوسرے کی طرف دھکیلتی ہے۔ توسیع دو طرفہ ہے۔ جب ایک ہستی مثال A پر تبدیل ہوتی ہے، مثال B کو ایک ویب ہک ملتا ہے اور وہ اپ ڈیٹ کو کھینچ سکتا ہے۔ کوئی مرکزی مرکز نہیں۔ کوئی بھی مثال کسی دوسرے کے ساتھ مل سکتی ہے۔ اس طرح کلائنٹ کے بنیادی ڈھانچے پر سیٹلائٹ مثالوں کا ایک بیڑا SSH اور cron کے بغیر مرکزی مثال کے ساتھ مربوط رہتا ہے۔

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

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