AN-02 L0 Niveau de conformité : Files Groupe : Travail
Agent Branch branche d’agent
Chaque exécution travaille sur une branche en copy-on-write. Seule une fusion relue atteint la ligne principale.
Une Agent Branch permet à chaque exécution de travailler sur une branche en copy-on-write. Les modifications n’atteignent la ligne principale protégée que par une fusion relue (une Agent PR), et l’on peut poser un point de contrôle et restaurer à tout moment.
Le problème
Les agents font des erreurs à la vitesse des machines, et les données partagées n’offrent aucun moyen d’« essayer, voir le diff, relire, annuler ». Les agents en parallèle se marchent aussi dessus.
Lors d’un incident d’avril 2026, un agent a utilisé un jeton trop large pour supprimer en 9 secondes un volume de production et les sauvegardes situées sur le même volume. S’il n’avait pu écrire que sur une branche, si les suppressions avaient été logiques et si les instantanés avaient été hors de son autorité, les dégâts auraient été bien moindres.
Fonctionnement
- Les branches sont bon marché (selon le moteur, idéalement proches de O(1)). Une habilitation accorde l’écriture à l’intérieur de la branche et
proposevers la cible. - Arbres protégés. La ligne principale ne peut être mise à jour que par une fusion : même un identifiant qui a fuité ne peut pas y écrire directement.
- Agent PR. Le diff, l’intention, la provenance (un résumé du manifeste de lecture), les résultats des vérifications et un résumé des étiquettes. Si les vérifications passent et que la politique l’autorise, la fusion est automatique ; sinon elle passe par une Human Gate.
- Suppression logique. Les suppressions dans un arbre protégé vont dans une corbeille, conservées 7 jours par défaut ; les instantanés appartiennent au propriétaire et sont hors de l’autorité de toute habilitation.
- Points de contrôle. Des instantanés nommés ;
restoreramène les fichiers à un point de contrôle. - Fusion. Le texte utilise une fusion à trois voies et les autres fichiers fusionnent fichier par fichier. En cas de conflit, elle s’arrête et n’écrase jamais en silence ; les données structurées demandent un outil de fusion enregistré, ou une personne.
- TTL et quota, pour éviter les bombes de branches.
- Tentatives en parallèle. Ouvrez N branches pour une même tâche, fusionnez la meilleure et recyclez les autres.
Commencer petit
- Des branches et worktrees Git, plus un **
mainprotégé** sur Forgejo, Gitea ou GitHub. - Pour les gros répertoires, utilisez des instantanés et clones btrfs ou ZFS ; pour le stockage objet, des forks Tigris ou lakeFS.
- Réussissez d’abord « les suppressions vont dans la corbeille » et « les instantanés appartiennent au propriétaire ». Ce sont les mesures les moins chères et celles qui évitent le plus de dégâts.
Esquisse d’interface
À titre d’illustration seulement. Les noms de champs peuvent changer avant la spécification v0.3.
nas branch create cleo/release-notes --from main --ttl 48h
nas checkpoint create before-refactor
nas propose --into main --checks links,schema
nas restore before-refactor
nas trash list # recycle area, kept 7 days by default
nas trash restore <path> Ce que demande la spécification
- Un arbre protégé DOIT n’être modifiable que par une fusion ; aucun identifiant ne peut y écrire directement.
- Une fusion DOIT produire un commit qui porte la provenance (exécution, habilitation, principal).
- Aucune habilitation NE PEUT permettre de supprimer un instantané ou une sauvegarde.
- Une suppression dans un arbre protégé DOIT être logique et récupérable dans la fenêtre configurée (7 jours par défaut).
- Un conflit NE DOIT PAS être résolu en silence ; la fusion DOIT s’arrêter et le signaler.
- Une branche DOIT avoir un TTL et un quota.
Ce qui est emprunté, et ce qui est nouveau
Tout ce qui précède est une pratique établie. Ce qui est nouveau : lier la branche à une exécution et à une habilitation, de sorte que la branche soit l’unité d’autorisation et la fusion l’unité de relecture. Les branches et les instantanés eux-mêmes ne sont pas nouveaux.
Limites assumées
- Une branche ne protège que les données dans le NAS. Elle n’annule pas les effets de bord externes : un e-mail déjà envoyé, une API déjà appelée.
- Les gros fichiers binaires et les fichiers de base de données sont difficiles à fusionner.
- La fatigue de relecture peut quand même survenir ; les chemins à faible risque peuvent donc être fusionnés automatiquement, et le taux d’approbation est mesuré.
Questions ouvertes
- Comment les outils de fusion sémantique sont-ils enregistrés et jugés fiables ?
- Comment devrait fonctionner l’interaction autour des conflits binaires ?
Questions
En quoi est-ce différent d’une branche Git ?
Sur le plan mécanique, ce n’est pas magique : on peut le construire sur Git. La différence est qu’il lie la branche à une exécution et à une habilitation, de sorte que « ne peut écrire que sur sa propre branche » devient une règle d’autorisation et que la fusion devient l’unique point de relecture.
Une branche empêche-t-elle tous les accidents ?
Non. Elle ne protège que les données dans le NAS : un e-mail déjà envoyé ou une API externe déjà appelée ne sont pas annulés par un retour arrière de branche. De telles actions doivent passer par egress dans l’habilitation et par une Human Gate.
Chaque fusion exige-t-elle l’approbation d’une personne ?
Non. Une fusion dont les vérifications passent, dont l’exécution n’a lu aucun contenu externe et qui n’implique ni suppression ni partage peut passer automatiquement. Une personne n’est nécessaire que dans quelques cas ; voir Human Gate.
Concepts liés
- Human Gate (validation humaine) N’apparaît qu’avant les actions irréversibles, tournées vers l’extérieur ou qui élèvent les privilèges, et montre le vrai diff.
- Agent Home (répertoire personnel) Un répertoire par rôle, avec historique. Des fichiers ordinaires que vous emportez.
- Flight Recorder (enregistreur de vol) Un enregistrement par exécution, chaîné par hachage, qui inclut ce que l’exécution a lu.
Citer cette page
Des adresses stables et une citation suggérée, pour les personnes, les moteurs de recherche et les agents.
- URL canonique
- https://agentnas.com/fr/concepts/agent-branch/
- Version Markdown
- https://agentnas.com/fr/concepts/agent-branch/index.md
- Citation suggérée
- Agent NAS project. “Agent Branch (branche d’agent).” agentnas.com, 2026-11-11. https://agentnas.com/fr/concepts/agent-branch/