glossar
was ist Worktree-Isolation?
TL;DR
Worktree-Isolation bedeutet, dass jeder KI-Agent seine eigene Kopie deines Codes bekommt, auf einem eigenen Branch, in einem eigenen Ordner. Agenten können dann gleichzeitig dieselben Dateien bearbeiten, ohne sich gegenseitig zu überschreiben. Dein Haupt-Checkout bleibt unberührt, bis du mergst. Pane richtet das für jedes Pane automatisch ein.
Worktree-Isolation bedeutet, dass jeder KI-Agent in seiner eigenen Kopie deines Codes arbeitet, auf einem eigenen Branch, in einem eigenen Ordner. Mehrere Agenten können dann gleichzeitig dieselben Dateien ändern, ohne sich gegenseitig zu überschreiben, und dein Haupt-Checkout bleibt unberührt, bis du mergst.
das Problem
Agenten in einem gemeinsamen Ordner überschreiben sich irgendwann gegenseitig.
Du bittest Agent A, die Login-Seite neu zu schreiben, und Agent B, einen Registrierungsablauf hinzuzufügen. Beide müssen auth.ts ändern. In einem gemeinsamen Ordner speichert Agent B seine Version und ersetzt still die Änderungen von Agent A. Keiner der beiden merkt es, und du erfährst es erst später.
Deshalb sind mehrere Agenten in einem Verzeichnis ein Glücksspiel. Es geht gut, bis zwei von ihnen dieselbe Datei anfassen, und dann ist die Arbeit von jemandem weg.
die Lösung
Ein Worktree pro Agent: getrennte Dateien und Branches, dieselbe Historie.
Gib jedem Agenten seinen eigenen Git-Worktree: einen separaten Ordner mit einem separaten Branch, der dieselbe Historie teilt. Agent A arbeitet in einem, Agent B in einem anderen, und beide können auth.ts bearbeiten, weil sie verschiedene Kopien bearbeiten.
my-project/ ← main branch, untouched
my-project/worktrees/
├─ login-rewrite/ ← agent A, branch login-rewrite
└─ signup-flow/ ← agent B, branch signup-flowwas isoliert wird
Dateien, Branch und Shell sind getrennt. Historie, Remote und Git-Objekte werden geteilt.
| isoliert | geteilt |
|---|---|
| Dateien und nicht committete Änderungen | Git-Historie und Commits |
| Branch | Remote-Repository (origin) |
| Shell-Status und Umgebungsvariablen | Git-Konfiguration |
| Arbeitsverzeichnis | Objektspeicher, spart Speicherplatz |
so erledigt Pane das
Pane richtet für jedes Pane automatisch einen Worktree ein und räumt ihn wieder auf.
Wenn du ein Pane erstellst, gibt Pane ihm einen vorab vorbereiteten Worktree, legt einen neuen Branch an, kopiert deine .env-Dateien, Agent-Einstellungen und node_modules hinein und startet dort den Agenten. Wenn du das Pane archivierst, prüft Pane auf ungesicherte Arbeit und entfernt den Worktree. Du tippst nie selbst git worktree add.
Was Isolation nicht abdeckt
Worktrees halten die Dateien der Agenten auseinander. Sie begrenzen nicht, was ein Agent tun kann.
Ein Worktree ist ein Ordner, keine Sandbox. Agenten laufen weiterhin mit den Rechten deines Benutzers. Einer könnte also die Dateien eines anderen Worktrees über den Pfad lesen, aufs Netzwerk zugreifen oder Dinge außerhalb des Repos ändern. In der Praxis bleiben Agenten in ihrem Arbeitsordner, aber wenn du harte Grenzen brauchst, führe sie in einem Container oder einer VM aus.
Manches wird außerhalb von Git geteilt: eine Datenbank, die deine App nutzt, ein Port für den Dev-Server, ein globaler Paket-Cache. Pane gibt jedem Pane einen eigenen Portbereich in PANE_PORT. Für Datenbanken nutzt du ein Setup-Skript oder ein Tool, das pro Worktree eine eigene anlegt.
passende Themen
Quellen
- Korrekturen
- Wenn hier etwas falsch oder veraltet ist, sag uns Bescheid. Wir korrigieren es und aktualisieren das Datum oben. Issue auf GitHub öffnen
- Quellen
häufig gestellte fragen
Von Parsa Khazaeepoul, Mitgründer von Pane. .