Entwickler können nun mehrere Coding-Agent-Sessions gleichzeitig starten, ohne über das Überschreiben von State-Dateien oder versteckte Dateikonflikte befürchten zu müssen. Ein beratendes „Share-Nothing“-Muster isoliert den Workspace jedes Agenten und warnt vor potenziellen Konflikten. Der Ansatz ersetzt harte Sperren durch ein leichtgewichtiges Register, das sich überschneidende Arbeiten meldet, bevor sie entstehen, sodass Pipelines auch bei einem Session-Absturz weiterlaufen.
Warum parallele Agenten Probleme verursachen
Das Ausführen von mehr als einem automatisierten Coding-Assistenten in einem einzigen Repository beschleunigt die Codegenerierung, das Testen oder das Refactoring. In der Praxis treten sofort zwei Probleme auf.
- State-Korruption – Zwei Agenten schreiben in dieselbe State-Datei; der spätere Schreibvorgang überschreibt den vorherigen und löscht so den Fortschritt.
- Dateikollision – Zwei Agenten bearbeiten dieselbe Quelldatei, ohne es voneinander zu wissen. Der Konflikt tritt erst später auf, wenn ein Diff divergierende Änderungen anzeigt.
Beide Probleme verschwenden Entwicklerzeit und können schwer nachvollziehbare Bugs verursachen.
Die „Share-Nothing“-Regel
Die Grundidee ist einfach: Jeder Agent erhält seinen eigenen privaten Scratchpad auf der Festplatte und schreibt nur in Dateien, die zu dieser Session gehören. Pro Branch ist nur eine bewusst gemeinsam genutzte Datei erlaubt, und diese folgt der „Last-Writer-Wins“-Regel – der Agent, der zuletzt schreibt, bestimmt den finalen Inhalt.
Eine Presence-Layer verfolgt jede aktive Session:
- Branch-Name
- Liste der bearbeiteten Dateien
- Zeitstempel der letzten Aktivität
Wenn eine neue Session startet, konsultiert sie das Register. Falls eine andere Session bereits eine der gleichen Dateien bearbeitet, erhält der Entwickler eine Warnung, bevor die Arbeit beginnt.
Advisory- vs. Blocking-Locks
Traditionelle Lock-Dateien wirken wie eine Sackgasse: Sobald eine Sperre gesetzt ist, wartet jeder andere Prozess, bis die Sperre wieder freigegeben wird. Wenn die besitzende Session abstürzt, kann die Sperre unendlich lange bestehen bleiben, was eine manuelle Suche nach veralteten Lock-Dateien erforderlich macht.
Das Advisory-Modell ist sanfter. Es gibt eine Warnung aus, wenn ein potenzieller Konflikt erkannt wird, stoppt die neue Session jedoch nicht. Wenn ein Registereintrag veraltet ist – das heißt, der Prozess, der ihn erstellt hat, existiert nicht mehr –, warnt das System lediglich und überlässt dem Entwickler die Entscheidung, ob er fortfahren möchte.
So implementieren Sie das Muster
- State nach Schreibenden partitionieren – Geben Sie jedem Agenten ein eigenes Verzeichnis für temporäre Dateien und den State. Reservieren Sie gemeinsam genutzte Dateien nur für wirklich globale Daten und wenden Sie dort die „Last-Writer-Wins“-Regel an.
- Bewusstsein beim Start injizieren – Bevor ein Agent beginnt, lesen Sie das Presence-Register und vergleichen Sie die angeforderte Dateiliste mit den vorhandenen Einträgen. Brechen Sie ab oder warnen Sie, falls Überschneidungen gefunden werden.
- Lebendigkeit beim Lesen prüfen – Wenn ein Registereintrag konsultiert wird, prüfen Sie, ob die aufgezeichnete Prozess-ID noch im Betriebssystem läuft. Verwerfen Sie Einträge, die zu beendeten Prozessen gehören.
- Advisory gegenüber Blocking bevorzugen – Lassen Sie die Entwickler die Kontrolle behalten. Eine Warnung ermöglicht es ihnen, fortzufahren, zu pausieren oder abzubrechen, wodurch Deadlocks vermieden werden.
- Wartestände verfolgen – Wenn viele Agenten aktiv sind, wird die Aufmerksamkeit des Entwicklers zum Flaschenhals. Zeigen Sie an, welche Agenten auf menschliche Eingaben warten, damit die Arbeit neu priorisiert werden kann.
All dies lässt sich mit einem einfachen Verzeichnis aus JSON-Dateien umsetzen; eine externe Datenbank oder ein Message Bus ist nicht erforderlich. Das einfache Speicherformat macht das System leicht prüfbar und über verschiedene Umgebungen hinweg portabel.
Risiken und Gegenargumente
Einige Teams mögen argumentieren, dass ein Hard Lock Sicherheit garantiert: Keine zwei Agenten können jemals in dieselbe Datei schreiben. Der Kompromiss ist eine verringerte Resilienz – abgestürzte Sessions hinterlassen verwaiste Sperren, die den gesamten Workflow blockieren.
Worauf Sie achten sollten
Wenn Sie mit mehreren KI-gesteuerten Code-Assistenten gleichzeitig arbeiten, bietet das „Share-Nothing“-Advisory-Muster einen pragmatischen Weg, um zu verhindern, dass diese sich gegenseitig behindern. Durch die Isolierung des States, die frühzeitige Offenlegung von Absichten und die Entscheidungsgewalt für Menschen schafft die Methode ein Gleichgewicht zwischen Sicherheit und der Flexibilität, die moderne Entwicklungspipelines erfordern.
