🤖HermesBlog
Tutoriels Officiels Hermes · Partie 158/9/2026

Tutoriel 15 : Git Worktrees — Agents parallèles

Tutoriel 15 : Git Worktrees — Agents parallèles — guide facile à comprendre basé sur la documentation officielle

Cette leçon fait partie de la série de tutoriels officiels d’Hermes Agent. Voir tous les tutoriels

Imaginez une seule cuisine, mais deux chefs. S’ils cuisinent tous les deux sur le même plan de travail, ils vont se cogner les coudes, renverser de la farine et gâcher les plats de l’autre. Les worktrees Git donnent à chaque chef son propre plan de travail — même cuisine, mais espaces de travail séparés. C’est exactement ce que cette fonctionnalité apporte à vos agents IA.


Hermes tutorial

Pourquoi s’embêter ? Le problème d’un seul checkout

Hermes Agent considère le dossier dans lequel vous l’exécutez comme la racine du projet. Si vous lancez deux agents dans le même dossier, ils partagent tous les fichiers. Cela signifie que :

  • L’agent A pourrait supprimer un fichier que l’agent B est en train de modifier.
  • Vous ne pouvez pas savoir quels changements proviennent de quelle expérience.
  • Les retours en arrière deviennent compliqués — l’annulation d’un agent pourrait effacer le travail de l’autre.

Les worktrees résolvent ce problème en donnant à chaque agent :

  • Sa propre branche (pour que les modifications n’entrent pas en collision)
  • Son propre dossier de travail (pour que les fichiers ne se chevauchent pas)
  • Son propre historique de checkpoints (pour que /rollback n’affecte que cet agent)

Étape 1 : Créer un worktree (la commande de base)

Depuis votre dépôt principal (celui qui contient .git/), exécutez :

git worktree add ../my-agent-folder -b my-feature-branch

Décomposons cette commande :

  • ../my-agent-folder – l’emplacement du nouveau dossier (en dehors de votre dépôt principal)
  • -b my-feature-branch – crée une nouvelle branche pour cet agent

Vous avez maintenant une copie fraîche et isolée de votre projet.


Étape 2 : Pointer Hermes vers le worktree

Vous pouvez utiliser le worktree de deux manières :

Option A : CLI (la plus simple)
Il suffit de faire cd dans le worktree et d’y exécuter Hermes :

cd ../my-agent-folder
hermes chat

Option B : Passerelles de messagerie (comme Slack ou Discord)
Si vous utilisez une passerelle, modifiez ~/.hermes/config.yaml et définissez terminal.cwd sur le chemin du worktree :

terminal:
  cwd: /path/to/my-agent-folder

Désormais, chaque message reçu par cet agent sera traité dans ce dossier isolé.


Étape 3 : Exécuter plusieurs agents en parallèle

Créez autant de worktrees que nécessaire :

git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2

Puis lancez une session Hermes dans chaque dossier. Ils ne toucheront jamais aux fichiers des autres, et chacun dispose de sa propre branche pour commiter.


Étape 4 : Nettoyer une fois terminé

Quand une expérience est terminée, supprimez le worktree :

git worktree remove ../agent-experiment-1
git branch -d exp-1

La première commande supprime le dossier ; la seconde supprime la branche. Votre dépôt principal reste propre.


Points clés à retenir

  • Les worktrees sont légers – ils ne copient pas tout le dépôt, seulement les fichiers dont vous avez besoin.
  • Chaque agent a son propre historique /rollback – plus de catastrophes d’annulation croisées entre agents.
  • Utilisez les branches intelligemment – nommez-les clairement (par exemple, refactor-login, fix-bug-42) pour savoir ce que chaque agent a fait.

Résumé

Les worktrees Git vous permettent d’exécuter plusieurs agents Hermes sur le même projet sans qu’ils ne se marchent sur les pieds. Créez un worktree par agent, pointez Hermes dessus, et c’est tout. C’est comme donner à chaque chef sa propre planche à découper — même cuisine, zéro collision.

À suivre : Dans le tutoriel 16, nous déploierons Hermes avec Docker — un assistant auto-réparateur, toujours actif.

📖 Documentation officielle

Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › user-guide/git-worktrees