𝗪𝗵𝗲𝗻 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀 𝗝𝗼𝗶𝗻 𝗬𝗷𝘀 𝗥𝗼𝗼𝗺𝘀, 𝗧𝗵𝗿𝗲𝗲 𝗔𝘀𝘀𝘂𝗺𝗽𝘁𝗶𝗼𝗻𝘀 𝗕𝗿𝗲𝗮𝗸
ஒரு LLM-ஐ முதன்மையான Yjs peer ஆகச் சேர்ப்பது ஒரு புத்திசாலித்தனமான கட்டமைப்பு நடவடிக்கையாகும் (architectural move). இருப்பினும், இது உங்கள் ஒத்துழைப்புத் தொகுப்பு (collaboration stack) peer சமச்சீர்நிலை (peer symmetry) குறித்துக் கொண்டிருக்கும் மௌனமான அனுமானங்களை முறியடிக்கிறது.
பெரும்பாலான அமைப்புகள் அனைத்து peer-களும் மனித வேகத்தில் செயல்படுவதாகக் கருதுகின்றன. ஒரு AI ஏஜெண்ட் நிமிடத்திற்கு 3,000 சொற்களை உருவாக்கும்போது, அது மூன்று முக்கியப் பகுதிகளைப் பாதிக்கிறது: throughput, undo ownership மற்றும் presence cadence.
அவற்றைச் சரிசெய்வது எப்படி என்பது இதோ.
- Write Starvation-ஐத் தடுத்தல்
ஒரு CRDT மாதிரியில், கிளையண்டுகளைக் கட்டுப்படுத்த (throttle) மத்திய சேவையகம் (central server) எதுவும் இல்லை. ஒரு ஏஜெண்ட் தொடர்ச்சியான எழுத்துக்களால் (writes) sync சுழற்சியை நிரப்பக்கூடும். இது மனிதப் பயனர்களுக்குக் கிடைக்க வேண்டிய convergence window-வைப் பறித்துவிடுகிறது. இது கர்சர் தாமதத்திற்கும் (cursor lag) மற்றும் புதுப்பிப்புகள் விடுபடுவதற்கும் (dropped updates) வழிவகுக்கிறது.
இதற்கான தீர்வு transport layer-இல் இல்லை, application layer-இல் இருக்க வேண்டும். ஏஜெண்டின் வேகத்தைக் கட்டுப்படுத்த, LLM stream மற்றும் Yjs write ஆகியவற்றிற்கு இடையில் ஒரு token bucket-ஐப் பயன்படுத்தவும்.
• வரிசைப்படுத்தப்பட்ட செயல்பாடுகளுக்கு (queued operations) ஒரு கொள்ளளவை நிர்ணயிக்கவும். • ஏஜெண்டின் வேகம் மனிதர்களுக்குப் பாதிப்பு ஏற்படுத்தாத வகையில் இருக்க, ஒரு refill rate-ஐ நிர்ணயிக்கவும்.
- Undo History-ஐத் தனிமைப்படுத்துதல்
ஒரு ஏஜெண்ட் ஒரு பயனருடன் ஒரே origin-ஐப் பகிர்ந்து கொண்டால், Ctrl+Z குழப்பமடையும். ஒரு மனிதத் தவலுக்கும் AI பரிந்துரைக்கும் இடையிலான வேறுபாட்டை உங்களால் கண்டறிய முடியாது.
ஏஜெண்டிற்குத் தனியான ஒரு origin-ஐ வழங்கவும். ஏஜெண்டிற்குத் தனிப்பயனாக்கப்பட்ட UndoManager-ஐப் பயன்படுத்தவும்.
• பயனர் UndoManager மனிதச் செயல்பாடுகளை மட்டுமே கண்காணிக்கும். • ஏஜெண்ட் UndoManager AI-தொடர்பான செயல்பாடுகளைக் கையாளும். • "Reject AI suggestion" என்பதை இயல்பான Ctrl+Z உடன் இணைப்பதற்குப் பதிலாக, ஒரு தனி UI பொத்தானாகக் காட்டவும்.
- Presence Updates-ஐ ஒன்றிணைத்தல் (Coalesce)
ஒரு AI ஏஜெண்ட், மனிதர்களால் பார்க்க முடியாத வேகத்தில் இடமாற்ற மாற்றங்களை (position changes) உருவாக்குகிறது. ஒவ்வொரு மாற்றத்தையும் ஒளிபரப்புவது (broadcasting) உங்கள் render சுழற்சியில் தேவையற்ற இரைச்சலை (noise) உருவாக்கும்.
நீங்கள் ஏஜெண்ட் presence-ஐ வேறுவிதமாக நிர்வகிக்க வேண்டும்:
• ஒவ்வொரு செயல்பாட்டிற்கும் பதிலாக, ஒரு குறிப்பிட்ட கால இடைவெளியில் awareness updates-ஐ ஒன்றிணைக்கவும். • awareness state-இல் ஒரு type புலத்தைச் சேர்க்கவும் (எ.கா., type: 'agent'). • கர்சரை வேறுவிதமாக நடத்த உங்கள் rendering layer-இடம் சொல்ல இந்த type-ஐப் பயன்படுத்தவும்.
'agent-as-peer' முறைதான் கட்டமைப்பதற்கான சரியான வழியாகும். உங்கள் அனுமானங்களை வெளிப்படையானதாக மாற்றுவதே சவாலாகும். rate limiting, undo isolation மற்றும் presence coalescing ஆகியவற்றை விளிம்புநிலை நிகழ்வுகளாக (edge cases) கருத வேண்டாம். அவற்றை முக்கியத் தேவைகளாகக் கருதவும்.
ஆதாரம்: https://dev.to/norfolkd/when-an-ai-agent-joins-your-yjs-room-three-assumptions-break-50h8