𝗞𝗲𝘁𝗶𝗸𝗮 𝗔𝗴𝗲𝗻 𝗔𝗜 𝗕𝗲𝗿𝗴𝗮𝗯𝘂𝗻𝗴 𝗸𝗲 𝗥𝘂𝗮𝗻𝗴 𝗬𝗷𝘀, 𝗧𝗶𝗴𝗮 𝗔𝘀𝘂𝗺𝘀𝗶 𝗔𝗸𝗮𝗻 𝗣𝗮𝘁𝗮𝗵
Menambahkan LLM sebagai peer Yjs kelas utama adalah langkah arsitektur yang cerdas. Namun, hal ini mematahkan asumsi tersirat yang dibuat oleh stack kolaborasi Anda mengenai simetri peer.
Sebagian besar sistem berasumsi bahwa semua peer bekerja pada kecepatan manusia. Ketika agen AI menghasilkan 3.000 kata per menit, hal ini merusak tiga area inti: throughput, kepemilikan undo, dan ritme kehadiran (presence cadence).
Berikut cara memperbaikinya.
- Hentikan Write Starvation
Dalam model CRDT, tidak ada server pusat untuk membatasi (throttle) klien. Seorang agen dapat membanjiri siklus sinkronisasi dengan penulisan yang terus-menerus. Hal ini membuat pengguna manusia kekurangan jatah jendela konvergensi mereka. Ini menyebabkan lag kursor dan pembaruan yang terlewat.
Perbaikannya harus dilakukan di lapisan aplikasi, bukan di lapisan transport. Gunakan token bucket antara aliran LLM dan penulisan Yjs untuk membatasi kecepatan agen.
• Tetapkan kapasitas untuk operasi yang antre. • Tetapkan laju pengisian ulang (refill rate) agar agen tetap berada di bawah ambang batas starvation manusia.
- Isolasi Riwayat Undo
Jika seorang agen berbagi origin yang sama dengan pengguna, Ctrl+Z akan menjadi kacau. Anda tidak dapat membedakan antara kesalahan manusia dan saran AI.
Berikan agen origin-nya sendiri. Gunakan UndoManager terpisah untuk agen tersebut.
• UndoManager pengguna hanya melacak tindakan manusia. • UndoManager agen menangani tindakan khusus AI. • Tampilkan "Tolak saran AI" sebagai tombol UI terpisah, alih-alih mengaitkannya dengan Ctrl+Z default.
- Gabungkan Pembaruan Kehadiran
Agen AI menghasilkan perubahan posisi lebih cepat daripada yang dapat dilihat manusia. Menyiarkan setiap perubahan akan menciptakan noise dalam siklus render Anda.
Anda harus mengelola kehadiran agen secara berbeda:
• Gabungkan pembaruan awareness pada interval tetap, bukan per operasi. • Tambahkan field type ke dalam awareness state (misalnya, type: 'agent'). • Gunakan tipe ini untuk memberi tahu lapisan rendering Anda agar memperlakukan kursor secara berbeda.
Pola agent-as-peer adalah cara yang tepat untuk membangun. Tantangannya adalah membuat asumsi Anda menjadi eksplisit. Jangan menganggap rate limiting, isolasi undo, dan penggabungan kehadiran (presence coalescing) sebagai kasus pinggiran (edge cases). Perlakukan hal tersebut sebagai persyaratan inti.
Sumber: https://dev.to/norfolkd/when-an-ai-agent-joins-your-yjs-room-three-assumptions-break-50h8