Apabila Ejen AI Menyertai Bilik Yjs, Tiga Andaian Akan Gagal

Menambah LLM sebagai rakan (peer) Yjs kelas pertama adalah langkah seni bina yang bijak. Walau bagaimanapun, ia memecahkan andaian tersirat yang dibuat oleh timbunan kolaborasi (collaboration stack) anda tentang simetri rakan (peer symmetry).

Kebanyakan sistem mengandaikan semua rakan bekerja pada kelajuan manusia. Apabila ejen AI menjana 3,000 patah perkataan seminit, ia menjejaskan tiga bidang teras: daya pemprosesan (throughput), pemilikan undo, dan ritma kehadiran (presence cadence).

Berikut adalah cara untuk mengatasinya.

  1. Hentikan Kelaparan Penulisan (Write Starvation)

Dalam model CRDT, tiada pelayan pusat untuk mengehadkan (throttle) klien. Seorang ejen boleh membanjiri kitaran penyinkronan (sync cycle) dengan penulisan yang berterusan. Ini menyebabkan pengguna manusia kekurangan bahagian dalam tetingkap penumpuan (convergence window). Ini mengakibatkan lengah kursor (cursor lag) dan kemas kini yang terlepas.

Penyelesaiannya terletak pada lapisan aplikasi, bukan lapisan penghantaran (transport layer). Gunakan token bucket antara aliran LLM dan penulisan Yjs untuk mengehadkan kelajuan ejen.

• Tetapkan kapasiti untuk operasi yang beratur (queued operations). • Tetapkan kadar pengisian semula (refill rate) untuk memastikan ejen berada di bawah ambang kelaparan manusia.

  1. Asingkan Sejarah Undo

Jika ejen berkongsi asal (origin) yang sama dengan pengguna, Ctrl+Z akan menjadi kucar-kacir. Anda tidak dapat membezakan antara kesilapan manusia dan cadangan AI.

Berikan ejen asal (origin)nya sendiri. Gunakan UndoManager yang berasingan untuk ejen tersebut.

• UndoManager pengguna hanya menjejaki tindakan manusia. • UndoManager ejen mengendalikan tindakan khusus AI. • Paparkan "Tolak cadangan AI" sebagai butang UI yang berasingan dan bukannya mengaitkannya dengan Ctrl+Z lalai.

  1. Gabungkan Kemas Kini Kehadiran (Coalesce Presence Updates)

Ejen AI menghasilkan perubahan kedudukan lebih pantas daripada apa yang boleh dilihat oleh manusia. Menyiarkan setiap perubahan akan mewujudkan gangguan (noise) dalam kitaran render anda.

Anda mesti menguruskan kehadiran ejen secara berbeza:

• Gabungkan kemas kini kesedaran (awareness updates) pada selang masa yang tetap dan bukannya bagi setiap operasi. • Tambah medan jenis (type field) pada keadaan kesedaran (awareness state) (contohnya, type: 'agent'). • Gunakan jenis ini untuk memberitahu lapisan render anda supaya melayan kursor dengan cara yang berbeza.

Corak ejen-sebagai-rakan (agent-as-peer) adalah cara yang betul untuk membina. Cabarannya adalah untuk menjadikan andaian anda eksplisit. Jangan anggap pengehadan kadar (rate limiting), pengasingan undo, dan penggabungan kehadiran (presence coalescing) sebagai kes terpencil (edge cases). Anggap ia sebagai keperluan teras.

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