જ્યારે AI એજન્ટ્સ Yjs રૂમમાં જોડાય છે, ત્યારે ત્રણ ધારણાઓ તૂટી જાય છે
LLM ને first-class Yjs peer તરીકે ઉમેરવું એ એક સ્માર્ટ આર્કિટેક્ચરલ મૂવ છે. જોકે, તે તમારા કોલેબોરેશન સ્ટેક દ્વારા peer symmetry વિશે કરવામાં આવતી મૌન ધારણાઓને તોડી નાખે છે.
મોટાભાગની સિસ્ટમો એવું માની લે છે કે તમામ peers માનવ ગતિએ કામ કરે છે. જ્યારે એક AI એજન્ટ પ્રતિ મિનિટ 3,000 શબ્દો જનરેટ કરે છે, ત્યારે તે ત્રણ મુખ્ય ક્ષેત્રોને અસર કરે છે: throughput, undo ownership, અને presence cadence.
તેને કેવી રીતે ઠીક કરવું તે અહીં છે.
- Write Starvation અટકાવો
CRDT મોડેલમાં, ક્લાયન્ટ્સને નિયંત્રિત કરવા માટે કોઈ કેન્દ્રીય સર્વર હોતું નથી. એક એજન્ટ સતત writes દ્વારા sync cycle ને ભરી શકે છે. આનાથી માનવ વપરાશકર્તાઓને convergence window માંથી તેમનો હિસ્સો મળતો નથી. આના કારણે cursor lag અને updates ડ્રોપ થવા લાગે છે.
આનો ઉકેલ application layer પર હોવો જોઈએ, transport layer પર નહીં. એજન્ટની ઝડપ મર્યાદિત કરવા માટે LLM stream અને Yjs write વચ્ચે token bucket નો ઉપયોગ કરો.
• queued operations માટે ક્ષમતા (capacity) સેટ કરો. • એજન્ટને માનવ starvation threshold થી નીચે રાખવા માટે refill rate સેટ કરો.
- Undo History ને અલગ કરો
જો કોઈ એજન્ટ વપરાશકર્તા સાથે એક જ origin શેર કરે છે, તો Ctrl+Z એક અવ્યવસ્થા બની જાય છે. તમે માનવીય ભૂલ અને AI સૂચન વચ્ચે તફાવત કરી શકતા નથી.
એજન્ટને પોતાનું અલગ origin આપો. એજન્ટ માટે અલગ UndoManager નો ઉપયોગ કરો.
• user UndoManager ફક્ત માનવીય ક્રિયાઓ જ ટ્રેક કરે છે. • agent UndoManager AI-વિશિષ્ટ ક્રિયાઓ સંભાળે છે. • તેને ડિફોલ્ટ Ctrl+Z સાથે જોડવાને બદલે, "Reject AI suggestion" ને એક અલગ UI બટન તરીકે દર્શાવો.
- Presence Updates ને Coalesce કરો
એક AI એજન્ટ માનવી જોઈ શકે તેના કરતા વધુ ઝડપથી પોઝિશનમાં ફેરફાર કરે છે. દરેક ફેરફારનું બ્રોડકાસ્ટિંગ તમારા render cycle માં અવાજ (noise) પેદા કરે છે.
તમારે એજન્ટ presence ને અલગ રીતે મેનેજ કરવી પડશે:
• દરેક operation ને બદલે એક નિશ્ચિત અંતરાલ (fixed interval) પર awareness updates ને coalesce કરો. • awareness state માં એક type field ઉમેરો (દા.ત., type: 'agent'). • તમારા rendering layer ને cursor સાથે અલગ રીતે વર્તવા કહેવા માટે આ 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