DeepSeek V4 Pro
Commencez à discuter dès maintenant

DeepSeek Harness Worktrees : Guide de première utilisation

DeepSeek-V4 Team · 14 octobre 2026 · 7 min read

Start using deepseek harness
Deux plateformes de travail distinctes reliées à des archives communes : illustration conceptuelle des worktrees Git générée par IA

Une extraction séparée est utile lorsque vous souhaitez qu'un agent tente une modification sans déplacer les fichiers que vous êtes déjà en train d'éditer. DeepSeek Harness dsh-v0.2.1-alpha.2, publié le 9 octobre 2026, ajoute un plug-in Git Worktrees expérimental pour cette tâche. Il crée une branche et une extraction, puis modifie le répertoire de travail de la session appelante.

Ce tutoriel utilise le guide du plug-in pour cette version pour définir un petit exercice de validation : créer un worktree, effectuer une modification de documentation, l'inspecter et revenir. Il s'agit d'un flux de travail basé sur la documentation, pas d'une affirmation que nous avons testé l'application de bureau Harness. Les exemples d'outils sous forme de code décrivent des appels d'agent ; ce ne sont pas des commandes à coller dans votre shell.

Vérifier le dépôt avant d'activer le plug-in

Utilisez un dépôt jetable ou un projet où vous comprenez les modifications actuelles. Les exigences d'exécution worktree spécifient Git 2.45 ou plus récent et Node dans l'environnement d'exécution utilisé par le fournisseur de système de fichiers. Avec un environnement distant, les versions installées sur votre ordinateur portable ne suffisent pas à vérifier ce prérequis.

Commencez par demander la racine du dépôt, la branche actuelle, le commit actuel et un statut Git court. Ces commandes shell en lecture seule fournissent les vérifications sous-jacentes :

git --version
node --version
git rev-parse --show-toplevel
git branch --show-current
git rev-parse HEAD
git status --short

Un nom de branche vide peut signifier un HEAD détaché ; notez-le plutôt que d'inventer une branche. Un statut non vide n'est pas automatiquement un échec, mais cela signifie qu'un travail existe en dehors de la base de commit. Décidez si la nouvelle tâche nécessite ces modifications. Si c'est le cas, préparez d'abord un commit approprié au lieu de supposer que le worktree les copiera.

Le plug-in ne copie pas les fichiers indexés, non indexés, non suivis ou ignorés. Les dépendances, les fichiers d'environnement local et la sortie générée peuvent donc être absents même si l'extraction source s'exécute avec succès.

Schéma original : 01 représente le répertoire de départ, 02 celui de la nouvelle branche. Le README validé est disponible ; les notes non validées marquées d’un astérisque restent dans le répertoire initial.
Schéma original : 01 représente le répertoire de départ, 02 celui de la nouvelle branche. Le README validé est disponible ; les notes non validées marquées d’un astérisque restent dans le répertoire initial.

Le diagramme représente la limite de copie documentée, pas une capture d'écran de l'application. Les deux extractions utilisent une administration Git partagée ; des fichiers séparés ne rendent pas leurs historiques indépendants.

Activer Git Worktrees et choisir une petite tâche

Ouvrez Plugins → Official → Git Worktrees et activez l'interrupteur. Selon le guide du plug-in pour cette version, le bundle optionnel est désactivé dans chaque profil livré. Il charge le runtime worktree et l'outil de création ensemble.

Pour la première tâche, utilisez une demande ciblée : créer un worktree pour une correction de documentation, afficher son répertoire et sa base, et attendre avant d'éditer. Demandez un nom de branche nouveau et inutilisé tel que docs-worktree-trial. Le même nom est utilisé pour le répertoire d'extraction relatif, donc un nom descriptif court rend l'inspection ultérieure plus facile.

L'appel de création a cette forme :

create_worktree({ name: "docs-worktree-trial", from: "HEAD" })

from doit se résoudre localement. Un nom de branche distant visible sur un site d'hébergement ne suffit pas si ses objets ne sont pas disponibles dans ce dépôt. L'opération ne récupère pas les objets manquants, n'initialise pas les sous-modules et n'installe pas les packages. Vérifiez et préparez ces prérequis avant de réessayer une création échouée.

Start using deepseek harness

Vérifier le répertoire renvoyé avant d'effectuer des modifications

Un appel réussi renvoie path, branch, baseCommit et repositoryRoot. Conservez ces quatre valeurs ensemble. La référence du sous-système spécifie que la configuration Git se termine avant que la session ne change de répertoire.

La destination par défaut se trouve sous l'extraction actuelle à .agents/worktrees/<name>. Si la session démarre dans une extraction liée, cette extraction est la racine source pour le nouveau pool. Ne substituez pas un chemin mémorisé d'une autre session au chemin canonique renvoyé.

Champ renvoyé Ce qu'il faut vérifier
path La session est maintenant dans cette extraction
branch C'est la nouvelle branche demandée
baseCommit C'est la révision de départ locale prévue
repositoryRoot Il identifie l'extraction de départ

Demandez à l'agent d'exécuter à nouveau les vérifications de racine, de branche et de commit depuis son répertoire actuel. Comparez-les avec le résultat de création. Les dépôts ordinaires devraient avoir le contenu de départ prévu, mais le runtime note que les références de remplacement locales au dépôt peuvent affecter le contenu extrait ; un identifiant de commit seul n'est pas un substitut pour inspecter les fichiers que vous prévoyez de modifier.

Effectuer une modification et inspecter le diff

Choisissez un paragraphe README existant et demandez une clarification factuelle. Évitez de commencer par des mises à jour de dépendances ou un outil de formatage appliqué à tout le dépôt : ceux-ci produisent de gros diffs qui rendent les erreurs de répertoire plus difficiles à repérer.

Après la modification, inspectez la branche actuelle et les changements :

git branch --show-current
git status --short
git diff --check
git diff -- README.md

Utilisez votre nom de fichier réel si la tâche modifie un fichier différent. La dernière commande montre les modifications non indexées ; si l'agent a indexé la modification, inspectez également le diff indexé. Un git diff --check propre vérifie uniquement les erreurs d'espaces blancs. Il n'établit pas que le paragraphe est correct ou que le projet se compile.

Exécutez la vérification pertinente la plus ciblée lorsque le changement en nécessite une. Enregistrez la commande, le répertoire et le résultat. Pour une modification uniquement documentaire, lire le texte rendu peut être plus utile que d'exécuter une suite de tests non pertinente.

Schéma original : 01 créer, 02 vérifier les quatre champs renvoyés, 03 modifier, 04 examiner les différences, 05 revenir. Le répertoire et la branche sont conservés.
Schéma original : 01 créer, 02 vérifier les quatre champs renvoyés, 03 modifier, 04 examiner les différences, 05 revenir. Le répertoire et la branche sont conservés.

Le chemin numéroté suit l'exercice : créer, vérifier, éditer, inspecter, quitter. La branche et le répertoire conservés nécessitent encore une décision ultérieure concernant l'intégration ou le nettoyage.

Quitter délibérément et conserver le contexte de revue

Pour revenir, demandez à l'agent d'appeler working_directory avec le chemin d'extraction absolu d'origine. Par exemple, en remplaçant le chemin exemple par votre repositoryRoot enregistré :

working_directory({ cd: "/absolute/path/to/original-checkout" })

Vérifiez à nouveau le répertoire actuel. Quitter ne fusionne pas la modification, ne supprime pas l'extraction et ne supprime pas sa branche. La désactivation du plug-in Git Worktrees laisse également les worktrees existants en place, tandis que l'outil working-directory intégré reste disponible.

Examinez le diff avant de décider comment l'intégrer. Commitez et fusionnez ou faites un cherry-pick selon votre flux de travail de dépôt normal. Lorsque l'extraction n'est plus nécessaire, inspectez son statut et utilisez le processus de suppression worktree normal de Git après avoir préservé les modifications. Évitez la suppression forcée comme réponse par défaut à une extraction modifiée.

Diagnostiquer les échecs sans créer à répétition des branches

Un nom de branche ou un chemin d’extraction déjà utilisé provoque une erreur. Inspectez ce qui existe déjà avant d'essayer un autre nom, surtout après une annulation : les échecs de configuration peuvent laisser des artefacts partiels et signaler leur emplacement. Générer à répétition des noms peut obscurcir le worktree contenant le travail que vous souhaitiez conserver.

Une erreur de permission est différente. La création nécessite que la politique de bac à sable existante autorise les écritures vers la destination et les métadonnées Git partagées. Le plug-in n'élargit pas ces permissions. Identifiez l'emplacement refusé avant de modifier la configuration.

Enfin, les pointeurs Git LFS stockés ou les blobs chiffrés peuvent rester non expansés car l'extraction ignore les filtres clean, smudge et process configurés. Traitez le téléchargement des fichiers réels ou le déchiffrement comme une opération séparée. Une extraction peut être valide tout en manquant encore de l'environnement exécutable dont votre tâche a besoin.

Conservez l'enregistrement à quatre champs renvoyé avec le diff examiné et le résultat de la vérification. C'est assez de contexte pour reprendre l'exercice sans deviner quel répertoire ou quelle base l'agent a utilisé. Pour les modifications plus larges de la version et du SDK, consultez le guide de mise à niveau alpha.2.

Start using deepseek harness