𝗪𝗵𝗲𝗻 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀 𝗝𝗼𝗶𝗻 𝗬𝗷𝘀 𝗥𝗼𝗼𝗺𝘀, 𝗧𝗵𝗿𝗲𝗲 𝗔𝘀𝘀𝘂𝗺𝗽𝘁𝗶𝗼𝗻𝘀 𝗕𝗿𝗲𝗮𝗸
Ein LLM als erstklassigen Yjs-Peer hinzuzufügen, ist ein kluger architektonischer Schritt. Er bricht jedoch die stillschweigenden Annahmen, die Ihr Collaboration-Stack über die Peer-Symmetrie trifft.
Die meisten Systeme gehen davon aus, dass alle Peers mit menschlicher Geschwindigkeit arbeiten. Wenn ein KI-Agent 3.000 Wörter pro Minute generiert, bricht dies drei Kernbereiche: Durchsatz, Undo-Besitz (Undo Ownership) und Präsenz-Kadenz.
So beheben Sie diese Probleme.
- Schreib-Verhungern (Write Starvation) verhindern
In einem CRDT-Modell gibt es keinen zentralen Server, der die Clients drosselt. Ein Agent kann den Synchronisationszyklus mit ständigen Schreibvorgängen überfluten. Dies entzieht den menschlichen Nutzern ihren Anteil am Konvergenzfenster. Dies führt zu Cursor-Verzögerungen und verlorenen Updates.
Die Lösung gehört auf die Anwendungsebene, nicht auf die Transportebene. Verwenden Sie einen Token Bucket zwischen dem LLM-Stream und dem Yjs-Schreibvorgang, um die Geschwindigkeit des Agenten zu begrenzen.
• Legen Sie eine Kapazität für die Warteschlange der Operationen fest. • Legen Sie eine Nachfüllrate fest, um den Agenten unter der Schwelle zu halten, ab der menschliche Nutzer beeinträchtigt werden.
- Undo-Verlauf isolieren
Wenn ein Agent denselben Origin wie ein Nutzer teilt, wird Strg+Z zum Chaos. Man kann nicht mehr zwischen einem menschlichen Fehler und einem KI-Vorschlag unterscheiden.
Geben Sie dem Agenten seinen eigenen Origin. Verwenden Sie einen separaten UndoManager für den Agenten.
• Der UndoManager des Nutzers verfolgt nur menschliche Aktionen. • Der UndoManager des Agenten verwaltet KI-spezifische Aktionen. • Implementieren Sie „KI-Vorschlag ablehnen“ als separaten UI-Button, anstatt es an das Standard-Strg+Z zu koppeln.
- Präsenz-Updates zusammenfassen (Coalesce)
Ein KI-Agent erzeugt Positionsänderungen schneller, als ein Mensch sie sehen kann. Das Senden jedes einzelnen Updates erzeugt Rauschen in Ihrem Render-Zyklus.
Sie müssen die Präsenz des Agenten anders verwalten:
• Fassen Sie Awareness-Updates in festen Intervallen zusammen, anstatt pro Operation.
• Fügen Sie dem Awareness-Status ein Typ-Feld hinzu (z. B. type: 'agent').
• Nutzen Sie diesen Typ, um Ihrer Rendering-Ebene mitzuteilen, dass der Cursor anders behandelt werden soll.
Das „Agent-as-Peer“-Muster ist der richtige Weg für die Entwicklung. Die Herausforderung besteht darin, die eigenen Annahmen explizit zu machen. Behandeln Sie Rate Limiting, Undo-Isolierung und das Zusammenfassen von Präsenz-Updates nicht als Sonderfälle. Betrachten Sie sie als Kernanforderungen.
Quelle: https://dev.to/norfolkd/when-an-ai-agent-joins-your-yjs-room-three-assumptions-break-50h8