4 septembre 2026

Tous les agents n'ont pas besoin d'être le plus cher

Tous les agents n'ont pas besoin d'être le plus cher

Une compétence de revue et de réparation complète du code qui répartit le travail sur une échelle d'agents à coût gradué — et refuse de considérer la mission terminée tant que le SHA final exact n'est pas atteint.

J'ai passé la dernière période à construire une compétence Codex qui passe en revue tout un dépôt et corrige ce qu'elle trouve. La revue était la partie facile. Le plus difficile était de l'empécher de me dire qu'elle avait fini alors que ce n'était pas le cas.

Trois éléments ont façonné le résultat final.

L'énumération n'est pas un jugement. Ne payez pas le même tarif pour les deux.

Lister les fichiers suivis, construire un manifeste de couverture, exécuter une commande et renvoyer le résultat — c'est du travail d'exécution. Sur un audit complet du dépôt, cela représente la majeure partie des tokens et presque aucune réflexion, et acheminer cela vers le modèle haut de gamme est la façon la plus rapide que je connaisse de dépenser de l'argent réel pour générer un listing de fichiers.

Alors la compétence répartit le travail en échelle :

  • ENUMERATEcheap. Lister tout ce qui existe. Fichiers, modules, couverture de tests, le diff par rapport à main, le manifeste de ce que nous allons toucher. Aucune opinion. Aucun jugement.
  • REVIEWmid. Parcourir le manifeste. Regrouper les constats. Pour chaque groupe, rédiger le correctif minimal et une justification d'un paragraphe qui nomme le mode de défaillance évité.
  • JUDGEtop tier only. Relire chaque correctif proposé par rapport au code qu'il touche. L'autoriser, le rejeter, ou le renvoyer pour une nouvelle passe d'énumération. C'est là qu'avoir tort coûte cher, et c'est là que le modèle onéreux justifie sa place : chemins d'autorisation, concurrence et annulation, sécurité des transactions et des migrations, contrats qui s'étendent sur plusieurs fichiers.

La boucle en pointillés sur le schéma n'est pas décorative. Un rejet du juge ne met pas fin à l'exécution — il renvoie le travail à l'énumérateur avec un périmètre plus resserré. repeat until the pass comes back clean est le contrat réel.

Les sous-agents Codex partagent un seul système de fichiers.

C'est la partie qui m'a surpris. Pas de copies isolées. Pas d'étape de fusion. Une écriture par n'importe quel agent est instantanément visible par tous les autres agents — y compris celui qui sera lancé ensuite.

Cela change la façon dont vous devez concevoir le flux de travail. Inutile d'avoir trois relecteurs qui clonent chacun le dépôt et produisent leur propre diff ; le dernier qui écrit gagne, et le travail des autres disparaît simplement. À la place, la compétence traite l'arbre de travail comme un tableau noir partagé unique : l'énumération écrit le manifeste, la revue le lit et ajoute un fichier de correctif par groupe, le juge lit les correctifs, applique ceux qu'il autorise, et relance le build. L'étape de vérification est ce qui boucle la boucle.

L'autre conséquence : la compétence ne peut pas se fier à ses propres marqueurs de progression. « J'ai appliqué 14 correctifs » ne veut rien dire si l'agent suivant les écrase. Donc, au lieu de faire confiance à des compteurs ou à des drapeaux « terminé », la compétence conditionne la finalisation à la seule chose qui survit réellement : le SHA final exact de l'arbre de travail. Quand le juge valide, l'exécution enregistre ce SHA, et l'invocation suivante vérifie l'arbre par rapport à lui avant de reprendre. Si le SHA ne correspond pas à ce que la dernière passe propre a laissé, l'exécution recommence depuis l'énumération — non pas parce que le travail était mauvais, mais parce que le substrat s'est déplacé sous elle.

Les badges d'état ne sont pas des impressions. Ils sont le SHA.

  • READY FOR MERGE — le SHA enregistré correspond au SHA actuel de l'arbre, le build passe, et le juge a autorisé chaque correctif.
  • INCOMPLETE — du travail a été appliqué, mais soit l'arbre a dérivé depuis la dernière passe propre, soit le juge a rejeté un ou plusieurs groupes et les a renvoyés pour une nouvelle énumération.
  • BLOCKED — la boucle a tourné et a échoué ; un groupe que le juge ne cesse de rejeter, ou un build qui ne passe pas au vert. Un humain s'en occupe.

L'idée même de l'échelle était de maintenir le palier bon marché bon marché, de réserver le palier onéreux aux endroits où il justifie sa place, et de laisser le verdict venir de quelque chose que le système de fichiers ne peut pas tromper.