جب AI ایجنٹس Yjs رومز میں شامل ہوتے ہیں، تو تین مفروضے ٹوٹ جاتے ہیں

ایک LLM کو پہلی کلاس Yjs peer کے طور پر شامل کرنا ایک ذہین آرکیٹیکچرل قدم ہے۔ تاہم، یہ ان خاموش مفروضوں کو توڑ دیتا ہے جو آپ کا collaboration stack peers کی ہم آہنگی (symmetry) کے بارے میں قائم کرتا ہے۔

زیادہ تر سسٹمز یہ فرض کرتے ہیں کہ تمام peers انسانی رفتار سے کام کرتے ہیں۔ جب ایک AI ایجنٹ فی منٹ 3,000 الفاظ تیار کرتا ہے، تو یہ تین بنیادی شعبوں کو متاثر کرتا ہے: throughput، undo ownership، اور presence cadence۔

انہیں ٹھیک کرنے کا طریقہ یہ ہے:

  1. Write Starvation کو روکیں

ایک CRDT ماڈل میں، کلائنٹس کی رفتار کو کنٹرول (throttle) کرنے کے لیے کوئی مرکزی سرور نہیں ہوتا۔ ایک ایجنٹ مسلسل writes کے ذریعے sync cycle کو بھر سکتا ہے۔ اس سے انسانی صارفین کے لیے convergence window کا حصہ ختم ہو جاتا ہے، جس کے نتیجے میں cursor lag اور updates کا ضائع ہونا جیسے مسائل پیدا ہوتے ہیں۔

اس کا حل application layer پر ہونا چاہیے، نہ کہ transport layer پر۔ ایجنٹ کی رفتار کو محدود کرنے کے لیے LLM stream اور Yjs write کے درمیان ایک token bucket کا استعمال کریں۔

• queued operations کے لیے ایک حد (capacity) مقرر کریں۔ • ایک refill rate مقرر کریں تاکہ ایجنٹ کی رفتار انسانی starvation threshold سے نیچے رہے۔

  1. Undo History کو الگ کریں

اگر کوئی ایجنٹ کسی صارف کے ساتھ ایک ہی origin شیئر کرتا ہے، تو Ctrl+Z ایک الجھن بن جاتا ہے۔ آپ انسانی غلطی اور AI کی تجویز کے درمیان فرق نہیں کر پاتے۔

ایجنٹ کو اپنا الگ origin دیں۔ ایجنٹ کے لیے ایک علیحدہ UndoManager استعمال کریں۔

• صارف کا UndoManager صرف انسانی اعمال کو ٹریک کرتا ہے۔ • ایجنٹ کا UndoManager AI سے متعلقہ اعمال کو سنبھالتا ہے۔ • "Reject AI suggestion" کو ڈیفالٹ Ctrl+Z سے جوڑنے کے بجائے ایک علیحدہ UI بٹن کے طور پر دکھائیں۔

  1. Presence Updates کو یکجا (Coalesce) کریں

ایک AI ایجنٹ انسانی نظر کی رفتار سے کہیں زیادہ تیزی سے position changes پیدا کرتا ہے۔ ہر ایک تبدیلی کو broadcast کرنے سے آپ کے render cycle میں شور (noise) پیدا ہوتا ہے۔

آپ کو ایجنٹ presence کو مختلف طریقے سے مینیج کرنا ہوگا:

• awareness updates کو ہر operation کے بجائے ایک مقررہ وقفے (fixed interval) پر یکجا کریں۔ • awareness state میں ایک type field شامل کریں (مثلاً type: 'agent')۔ • اس type کا استعمال کرتے ہوئے اپنی rendering layer کو بتائیں کہ وہ cursor کے ساتھ مختلف طریقے سے پیش آئے۔

agent-as-peer پیٹرن تعمیر کرنے کا صحیح طریقہ ہے۔ چیلنج اپنے مفروضوں کو واضح کرنا ہے۔ rate limiting، undo isolation، اور presence coalescing کو edge cases نہ سمجھیں۔ انہیں بنیادی ضروریات (core requirements) کے طور پر لیں۔

ماخذ: https://dev.to/norfolkd/when-an-ai-agent-joins-your-yjs-room-three-assumptions-break-50h8