AI ఏజెంట్లు Yjs రూమ్‌లలో చేరినప్పుడు, మూడు ఊహలు విఫలమవుతాయి

ఒక LLMని ఫస్ట్-క్లాస్ Yjs పీర్‌గా (peer) చేర్చడం అనేది ఒక తెలివైన ఆర్కిటెక్చరల్ నిర్ణయం. అయితే, ఇది మీ కొలాబరేషన్ స్టాక్ (collaboration stack) పీర్ సిమెట్రీ (peer symmetry) గురించి కలిగి ఉండే నిశ్శబ్ద ఊహలను దెబ్బతీస్తుంది.

చాలా వ్యవస్థలు అన్ని పీర్లు మానవ వేగంతో పనిచేస్తాయని భావిస్తాయి. ఒక AI ఏజెంట్ నిమిషానికి 3,000 పదాలను రూపొందించినప్పుడు, అది మూడు ప్రధాన అంశాలను దెబ్బతీస్తుంది: త్రూపుట్ (throughput), అన్‌డూ ఓనర్‌షిప్ (undo ownership), మరియు ప్రెజెన్స్ కాడెన్స్ (presence cadence).

వాటిని ఎలా సరిదిద్దాలో ఇక్కడ ఉంది.

  1. రైట్ స్టార్వేషన్‌ను (Write Starvation) నివారించండి

ఒక CRDT మోడల్‌లో, క్లయింట్‌లను నియంత్రించడానికి (throttle) ఎటువంటి సెంట్రల్ సర్వర్ ఉండదు. ఒక ఏజెంట్ నిరంతర రైట్‌లతో (writes) సింక్ సైకిల్‌ను నింపేయవచ్చు. ఇది మానవ వినియోగదారులకు కేటాయించబడిన కన్వర్జెన్స్ విండో (convergence window)ను దెబ్బతీస్తుంది. దీనివల్ల కర్సర్ లాగ్ (cursor lag) మరియు అప్‌డేట్‌లు మిస్ అవ్వడం వంటి సమస్యలు వస్తాయి.

దీని పరిష్కారం ట్రాన్స్‌పోర్ట్ లేయర్‌లో కాకుండా అప్లికేషన్ లేయర్‌లో ఉండాలి. ఏజెంట్ వేగాన్ని పరిమితం చేయడానికి LLM స్ట్రీమ్ మరియు Yjs రైట్ మధ్య ఒక టోకెన్ బకెట్ (token bucket)ను ఉపయోగించండి.

• క్యూ చేయబడిన ఆపరేషన్ల కోసం ఒక సామర్థ్యాన్ని (capacity) నిర్ణయించండి. • ఏజెంట్ వేగం మానవ వినియోగదారులకు ఇబ్బంది కలిగించకుండా ఉండేలా ఒక రీఫిల్ రేట్‌ను (refill rate) నిర్ణయించండి.

  1. అన్‌డూ హిస్టరీని (Undo History) వేరు చేయండి

ఒక ఏజెంట్ మరియు వినియోగదారుడు ఒకే ఒరిజిన్‌ను (origin) పంచుకుంటే, Ctrl+Z గందరగోళంగా మారుతుంది. మానవ పొరపాటుకు మరియు AI సూచనకు మధ్య తేడాను మీరు గుర్తించలేరు.

ఏజెంట్‌కు దాని స్వంత ఒరిజిన్‌ను ఇవ్వండి. ఏజెంట్ కోసం ప్రత్యేకమైన UndoManagerని ఉపయోగించండి.

• యూజర్ UndoManager కేవలం మానవ చర్యలను మాత్రమే ట్రాక్ చేస్తుంది. • ఏజెంట్ UndoManager AI-సంబంధిత చర్యలను నిర్వహిస్తుంది. • "Reject AI suggestion"ను డిఫాల్ట్ Ctrl+Zతో అనుసంధానించే బదులు, ఒక ప్రత్యేక UI బటన్‌గా చూపండి.

  1. ప్రెజెన్స్ అప్‌డేట్‌లను కలపండి (Coalesce Presence Updates)

ఒక AI ఏజెంట్ మానవుడు చూడగలిగే వేగం కంటే వేగంగా పొజిషన్ మార్పులను చేస్తుంది. ప్రతి మార్పును బ్రాడ్‌కాస్ట్ చేయడం వల్ల మీ రెండర్ సైకిల్‌లో అనవసరమైన శబ్దం (noise) లేదా గందరగోళం ఏర్పడుతుంది.

మీరు ఏజెంట్ ప్రెజెన్స్‌ను భిన్నంగా నిర్వహించాలి:

• ప్రతి ఆపరేషన్‌కు బదులుగా, ఒక నిర్ణీత వ్యవధిలో అవేర్‌నెస్ అప్‌డేట్‌లను (awareness updates) కలపండి. • అవేర్‌నెస్ స్టేట్‌కు ఒక type ఫీల్డ్‌ను జోడించండి (ఉదాహరణకు, type: 'agent'). • కర్సర్‌ను భిన్నంగా పరిగణించాలని మీ రెండరింగ్ లేయర్‌కు చెప్పడానికి ఈ typeను ఉపయోగించండి.

'ఏజెంట్-యాజ్-పీర్' (agent-as-peer) ప్యాటర్న్ అనేది నిర్మించడానికి సరైన మార్గం. మీ ఊహలను స్పష్టంగా మార్చడమే అసలైన సవాలు. రేట్ లిమిటింగ్ (rate limiting), అన్‌డూ ఐసోలేషన్ (undo isolation), మరియు ప్రెజెన్స్ కోలేసింగ్ (presence coalescing)లను కేవలం అరుదైన సందర్భాలుగా (edge cases) చూడకండి. వాటిని ప్రధాన అవసరాలుగా (core requirements) పరిగణించండి.

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