AI ഏജന്റുകൾ Yjs റൂമുകളിൽ ചേരുമ്പോൾ, മൂന്ന് അനുമാനങ്ങൾ തെറ്റുന്നു
ഒരു LLM-നെ ഒരു ഫസ്റ്റ്-ക്ലാസ് Yjs പിയർ (peer) ആയി ചേർക്കുന്നത് മികച്ച ഒരു ആർക്കിടെക്ചറൽ നീക്കമാണ്. എന്നിരുന്നാലും, പിയർ സിമ്മട്രി (peer symmetry) സംബന്ധിച്ച് നിങ്ങളുടെ കൊളാബറേഷൻ സ്റ്റാക്ക് (collaboration stack) മുൻകൂട്ടി നിജപ്പെടുത്തിയ നിശബ്ദമായ അനുമാനങ്ങളെ ഇത് തകർക്കുന്നു.
മിക്ക സിസ്റ്റങ്ങളും എല്ലാ പിയർമാരും മനുഷ്യന്റെ വേഗതയിൽ പ്രവർത്തിക്കുന്നു എന്ന് അനുമാനിക്കുന്നു. ഒരു AI ഏജന്റ് മിനിറ്റിൽ 3,000 വാക്കുകൾ ഉൽപ്പാദിപ്പിക്കുമ്പോൾ, അത് മൂന്ന് പ്രധാന മേഖലകളെ ബാധിക്കുന്നു: throughput, undo ownership, presence cadence എന്നിവയാണവ.
അവ എങ്ങനെ പരിഹരിക്കാം എന്ന് താഴെ നൽകുന്നു.
- Write Starvation തടയുക
ഒരു CRDT മോഡലിൽ, ക്ലയന്റുകളെ നിയന്ത്രിക്കാൻ (throttle) ഒരു സെൻട്രൽ സെർവർ ഇല്ല. ഒരു ഏജന്റിന് നിരന്തരമായ എഴുത്തുകളിലൂടെ (writes) സിങ്ക് സൈക്കിൾ (sync cycle) നിറയ്ക്കാൻ സാധിക്കും. ഇത് മനുഷ്യ ഉപയോക്താക്കൾക്ക് കൺവേർജൻസ് വിൻഡോയിൽ (convergence window) ലഭിക്കേണ്ട അവസരം ഇല്ലാതാക്കുന്നു. ഇത് കർസർ ലാഗ് (cursor lag), അപ്ഡേറ്റുകൾ നഷ്ടപ്പെടുക എന്നിവയ്ക്ക് കാരണമാകുന്നു.
ഇതിനുള്ള പരിഹാരം ട്രാൻസ്പോർട്ട് ലെയറിലല്ല (transport layer), മറിച്ച് ആപ്ലിക്കേഷൻ ലെയറിലാണ് (application layer). ഏജന്റിന്റെ വേഗത പരിമിതപ്പെടുത്താൻ LLM സ്ട്രീമും Yjs റൈറ്റും (write) ഇടയിൽ ഒരു ടോക്കൺ ബക്കറ്റ് (token bucket) ഉപയോഗിക്കുക.
• ക്യൂ ചെയ്ത ഓപ്പറേഷനുകൾക്കായി (queued operations) ഒരു കപ്പാസിറ്റി നിശ്ചയിക്കുക. • ഏജന്റിന്റെ വേഗത മനുഷ്യർക്ക് തടസ്സമില്ലാത്ത രീതിയിൽ നിലനിർത്താൻ ഒരു റീഫിൽ റേറ്റ് (refill rate) നിശ്ചയിക്കുക.
- Undo History വേർതിരിക്കുക
ഒരു ഏജന്റ് ഒരു ഉപയോക്താവിനോടൊപ്പം ഒരേ ഒറിജിൻ (origin) പങ്കിടുകയാണെങ്കിൽ, Ctrl+Z ഉപയോഗിക്കുന്നത് കുഴപ്പത്തിലാകും. ഒരു മനുഷ്യന്റെ തെറ്റും ഒരു AI നിർദ്ദേശവും തമ്മിൽ വേർതിരിച്ചറിയാൻ നിങ്ങൾക്ക് കഴിയില്ല.
ഏജന്റിന് സ്വന്തമായി ഒരു ഒറിജിൻ നൽകുക. ഏജന്റിനായി പ്രത്യേക UndoManager ഉപയോഗിക്കുക.
• ഉപയോക്താവിന്റെ UndoManager മനുഷ്യന്റെ പ്രവർത്തനങ്ങൾ മാത്രം ട്രാക്ക് ചെയ്യുന്നു. • ഏജന്റ് UndoManager AI-യുമായി ബന്ധപ്പെട്ട പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യുന്നു. • "Reject AI suggestion" എന്നത് ഡിഫോൾട്ട് Ctrl+Z-യുമായി ബന്ധിപ്പിക്കുന്നതിന് പകരം ഒരു പ്രത്യേക UI ബട്ടൺ ആയി നൽകുക.
- Presence Updates സംയോജിപ്പിക്കുക (Coalesce)
ഒരു മനുഷ്യന് കാണാൻ കഴിയുന്നതിനേക്കാൾ വേഗത്തിൽ ഒരു AI ഏജന്റ് പൊസിഷൻ മാറ്റങ്ങൾ (position changes) ഉണ്ടാക്കുന്നു. ഓരോ മാറ്റവും ബ്രോഡ്കാസ്റ്റ് ചെയ്യുന്നത് നിങ്ങളുടെ റെൻഡർ സൈക്കിളിൽ (render cycle) അനാവശ്യമായ തിരക്ക് (noise) ഉണ്ടാക്കും.
ഏജന്റ് പ്രസൻസ് (agent presence) നിങ്ങൾ വ്യത്യസ്തമായി കൈകാര്യം ചെയ്യണം:
• ഓരോ ഓപ്പറേഷനും പകരം ഒരു നിശ്ചിത ഇടവേളകളിൽ അവയറസ് അപ്ഡേറ്റുകൾ (awareness updates) സംയോജിപ്പിക്കുക. • അവയറസ് സ്റ്റേറ്റിൽ (awareness state) ഒരു ടൈപ്പ് ഫീൽഡ് ചേർക്കുക (ഉദാഹരണത്തിന്, type: 'agent'). • കർസറിനെ വ്യത്യസ്തമായി പരിഗണിക്കണമെന്ന് നിങ്ങളുടെ റെൻഡറിംഗ് ലെയറിനോട് (rendering layer) പറയാൻ ഈ ടൈപ്പ് ഉപയോഗിക്കുക.
'ഏജന്റ്-ആസ്-പിയർ' (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