DeepSeek Harness Worktrees: Einstieg und Prüfung
DeepSeek-V4 Team · 14. Oktober 2026 · 7 min read

Ein separates Checkout ist nützlich, wenn Sie möchten, dass ein Agent eine Änderung versucht, ohne die Dateien zu verschieben, die Sie bereits bearbeiten. DeepSeek Harness dsh-v0.2.1-alpha.2, veröffentlicht am 9. Oktober 2026, fügt ein experimentelles Git Worktrees-Plugin für diese Aufgabe hinzu. Es erstellt einen Branch und Checkout und ändert dann das Arbeitsverzeichnis der aufrufenden Sitzung.
Dieses Tutorial verwendet den Plugin-Leitfaden für diese Version, um eine kleine Abnahmeübung zu definieren: Erstellen Sie einen Worktree, nehmen Sie eine Dokumentationsänderung vor, prüfen Sie ihn und kehren Sie zurück. Es handelt sich um einen dokumentationsbasierten Workflow, nicht um die Behauptung, dass wir die Harness-Desktop-Anwendung getestet haben. Die codeartigen Werkzeugbeispiele beschreiben Agentenaufrufe; sie sind keine Befehle, die Sie in Ihre Shell einfügen sollen.
Prüfen Sie das Repository, bevor Sie das Plugin aktivieren
Verwenden Sie ein Test-Repository oder ein Projekt, in dem Sie die aktuellen Änderungen verstehen. Die Anforderungen der Worktree-Laufzeit spezifizieren Git 2.45 oder neuer und Node in der Ausführungsumgebung, die vom Dateisystem-Provider verwendet wird. Bei einer Remote-Umgebung reichen die Versionsangaben Ihres Laptops zur Prüfung nicht aus.
Beginnen Sie damit, nach dem Repository-Root, dem aktuellen Branch, dem aktuellen Commit und dem kurzen Git-Status zu fragen. Diese schreibgeschützten Shell-Befehle bieten die zugrunde liegenden Prüfungen:
git --version
node --version
git rev-parse --show-toplevel
git branch --show-current
git rev-parse HEAD
git status --shortEin leerer Branch-Name kann einen detached HEAD bedeuten; notieren Sie dies, anstatt einen Branch zu erfinden. Ein nicht leerer Status ist nicht automatisch ein Fehler, bedeutet aber, dass einige Arbeiten außerhalb der festgeschriebenen Basislinie existieren. Entscheiden Sie, ob die neue Aufgabe diese Änderungen benötigt. Wenn ja, bereiten Sie zuerst einen entsprechenden Commit vor, anstatt anzunehmen, dass der Worktree sie kopiert.
Das Plugin kopiert keine gestagten, ungestagten, nicht verfolgten oder ignorierten Dateien. Abhängigkeiten, lokale Umgebungsdateien und generierte Ausgaben können daher fehlen, selbst wenn das Source-Checkout erfolgreich läuft.

Das Diagramm stellt die dokumentierte Grenze der übernommenen Dateien dar, nicht einen Anwendungs-Screenshot. Beide Checkouts verwenden eine gemeinsame Git-Verwaltung; separate Dateien machen ihre Historien nicht unabhängig.
Aktivieren Sie Git Worktrees und wählen Sie eine kleine Aufgabe
Öffnen Sie Plugins → Official → Git Worktrees und aktivieren Sie den Schalter. Laut dem angepinnten Plugin-Leitfaden ist das optionale Bundle in jedem ausgelieferten Profil deaktiviert. Es lädt die Worktree-Laufzeit und das Erstellungswerkzeug gemeinsam.
Verwenden Sie für die erste Aufgabe eine eng gefasste Anfrage: Erstellen Sie einen Worktree für eine Dokumentationskorrektur, zeigen Sie sein Verzeichnis und seine Basislinie an und warten Sie vor der Bearbeitung. Fordern Sie einen neuen, ungenutzten Branch-Namen wie docs-worktree-trial an. Der gleiche Name wird für das relative Checkout-Verzeichnis verwendet, sodass ein kurzer beschreibender Name die spätere Inspektion erleichtert.
Der Erstellungsaufruf hat diese Form:
create_worktree({ name: "docs-worktree-trial", from: "HEAD" })from muss lokal aufgelöst werden. Ein Remote-Branch-Name, der auf einer Hosting-Website sichtbar ist, reicht nicht aus, wenn seine Objekte in diesem Repository nicht verfügbar sind. Der Vorgang fetcht keine fehlenden Objekte, initialisiert keine Submodule und installiert keine Pakete. Klären Sie diese Voraussetzungen bewusst, bevor Sie eine fehlgeschlagene Erstellung erneut versuchen.
Verifizieren Sie das zurückgegebene Verzeichnis, bevor Sie Änderungen vornehmen
Ein erfolgreicher Aufruf gibt path, branch, baseCommit und repositoryRoot zurück. Behalten Sie diese vier Werte zusammen. Die Subsystem-Referenz gibt an, dass das Git-Setup abgeschlossen ist, bevor die Sitzung das Verzeichnis wechselt.
Das Standardziel befindet sich unter dem aktuellen Checkout bei .agents/worktrees/<name>. Wenn die Sitzung in einem verknüpften Checkout startet, ist dieses Checkout das Ausgangsverzeichnis für den neuen Pool. Ersetzen Sie den zurückgegebenen kanonischen Pfad nicht durch einen Pfad, der sich aus einer anderen Sitzung gemerkt wurde.
| Zurückgegebenes Feld | Was zu verifizieren ist |
|---|---|
path |
Die Sitzung befindet sich jetzt in diesem Checkout |
branch |
Es ist der neue Branch, den Sie angefordert haben |
baseCommit |
Es ist die beabsichtigte lokale Startrevision |
repositoryRoot |
Es identifiziert das Checkout, von dem Sie gestartet sind |
Fordern Sie den Agenten auf, die Root-, Branch- und Commit-Prüfungen erneut aus seinem aktuellen Verzeichnis auszuführen. Vergleichen Sie sie mit dem Erstellungsergebnis. Gewöhnliche Repositories sollten den beabsichtigten Startinhalt haben, aber die Laufzeit merkt an, dass repository-lokale Ersatzreferenzen den ausgecheckten Inhalt beeinflussen können; eine Commit-Kennung allein ist kein Ersatz für die Inspektion der Dateien, die Sie ändern möchten.
Nehmen Sie eine Bearbeitung vor und prüfen Sie den Diff
Wählen Sie einen bestehenden README-Absatz und bitten Sie um eine faktische Klärung. Vermeiden Sie es, mit Dependency-Upgrades oder einem Repository-weiten Formatter zu beginnen: Diese erzeugen große Diffs, die Verzeichnisfehler schwerer erkennbar machen.
Prüfen Sie nach der Bearbeitung den aktuellen Branch und die Änderungen:
git branch --show-current
git status --short
git diff --check
git diff -- README.mdVerwenden Sie Ihren tatsächlichen Dateinamen, wenn die Aufgabe eine andere Datei ändert. Der letzte Befehl zeigt ungestagte Änderungen; wenn der Agent die Bearbeitung gestagt hat, prüfen Sie auch den gestagten Diff. Ein sauberes git diff --check prüft nur Leerzeichenfehler. Es stellt nicht fest, dass der Absatz korrekt ist oder dass sich das Projekt bauen lässt.
Führen Sie die kleinste relevante Projektprüfung durch, wenn die Änderung eine erfordert. Notieren Sie den Befehl, das Verzeichnis und das Ergebnis. Bei einer reinen Dokumentationsänderung kann das Lesen des gerenderten Textes nützlicher sein als das Ausführen einer nicht relevanten Test Suite.

Der nummerierte Pfad folgt der Übung: erstellen, verifizieren, bearbeiten, prüfen, verlassen. Der erhaltene Branch und das Verzeichnis benötigen später noch eine Entscheidung über Integration oder Bereinigung.
Kehren Sie zurück und bewahren Sie den Review-Kontext auf
Um zurückzukehren, fordern Sie den Agenten auf, working_directory mit dem originalen absoluten Checkout-Pfad aufzurufen. Ersetzen Sie beispielsweise den Beispielpfad durch Ihren notierten repositoryRoot:
working_directory({ cd: "/absolute/path/to/original-checkout" })Verifizieren Sie das aktuelle Verzeichnis erneut. Beim Verlassen wird die Änderung nicht zusammengeführt, entfernt das Checkout nicht und löscht seinen Branch nicht. Das Deaktivieren des Git Worktrees-Plugins lässt bestehende Worktrees ebenfalls an Ort und Stelle, während das eingebaute working-directory-Werkzeug verfügbar bleibt.
Überprüfen Sie den Diff, bevor Sie entscheiden, wie er integriert werden soll. Committen und mergen oder cherry-picken Sie gemäß Ihrem normalen Repository-Workflow. Wenn das Checkout nicht mehr benötigt wird, prüfen Sie seinen Status und verwenden Sie den normalen Git-Ablauf zum Entfernen eines Worktrees, nachdem Sie alle Änderungen gesichert haben. Vermeiden Sie die erzwungene Entfernung als Standardantwort auf einen Checkout mit uncommitteten Änderungen.
Diagnostizieren Sie Fehler, ohne wiederholt Branches zu erstellen
Ein bestehender Branch oder Checkout-Pfad verursacht einen Fehler. Prüfen Sie, was bereits existiert, bevor Sie einen anderen Namen versuchen, insbesondere nach einem Abbruch: Setup-Fehler können teilweise Artefakte hinterlassen und ihren Standort melden. Wiederholtes Generieren von Namen kann verschleiern, welches Checkout die Arbeit enthält, die Sie behalten wollten.
Ein Berechtigungsfehler ist anders. Die Erstellung erfordert, dass die bestehende Sandbox-Richtlinie Schreibzugriffe auf das Ziel und gemeinsame Git-Metadaten erlaubt. Das Plugin erweitert diese Berechtigungen nicht. Identifizieren Sie den verweigerten Ort, bevor Sie die Konfiguration ändern.
Schließlich können gespeicherte Git LFS-Pointer oder verschlüsselte Blobs unexpandiert bleiben, weil das Checkout konfigurierte clean-, smudge- und process-Filter überspringt. Behandeln Sie das Nachladen der tatsächlichen Dateien oder Entschlüsselung als separaten Vorgang. Ein Checkout kann gültig sein, während ihm dennoch die ausführbare Umgebung fehlt, die Ihre Aufgabe benötigt.
Behalten Sie den zurückgegebenen Vier-Felder-Datensatz mit dem überprüften Diff und dem Prüfergebnis. Das ist genug Kontext, um die Übung fortzusetzen, ohne zu raten, welches Verzeichnis oder welche Basislinie der Agent verwendet hat. Für die umfassenderen Release- und SDK-Änderungen siehe den alpha.2 Upgrade-Leitfaden.