IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Peut-on laisser un agent IA coder sans supervision ? Six dépôts en une nuit grâce à un agent IA autonome : l'expérience repomirror comme miroir des défis de la programmation automatisée

Le , par Stéphane le calme

8PARTAGES

9  0 
Peut-on laisser un agent IA coder sans supervision ? Six dépôts en une nuit grâce à un agent IA autonome :
l’expérience repomirror comme miroir des défis de la programmation automatisée

Dans l’univers des hackathons, certaines idées ressemblent d’abord à des blagues de développeurs… avant de révéler un potentiel insoupçonné. C’est exactement ce qui s’est produit avec le projet repomirror, né lors du hackathon YC Agents. Le principe ? Placer un agent de codage dans une boucle infinie (while true) et observer ce qu’il produisait. Résultat : en une seule nuit, l’agent a livré six dépôts GitHub fonctionnels. Derrière l’anecdote volontairement provocante, se cachent des questions fondamentales sur l’avenir du développement logiciel automatisé, le rôle des ingénieurs et les risques de confier la production à des entités autonomes.

Depuis une dizaine d’années, les pratiques CI/CD (intégration et déploiement continus) ont profondément transformé le développement logiciel. Tests automatisés, pipelines de déploiement, monitoring et rollback rapides sont devenus la norme. L’expérience repomirror pousse la logique un cran plus loin : et si l’on retirait complètement l’humain de la boucle, en laissant un agent IA coder, commiter et pousser en continu ? On passe alors d’un paradigme « l’humain valide l’automatisation » à « l’automatisation valide elle-même ses actions ».

C'est l'expérience menée par l'équipe derrière le projet RepoMirror, qui a placé un agent de codage, Claude Code, dans une simple boucle while.

Ce week-end, lors du hackathon YC Agents, nous nous sommes posé la question suivante : quelle est la façon la plus étrange d'utiliser un agent de codage ?

Notre réponse : exécuter Claude Code en boucle indéfinie et voir ce qui se passe.

Il s'avère que ce qui se passe, c'est que vous vous réveillez avec plus de 1 000 commits, six bases de code portées et un petit outil bancale que nous appelons RepoMirror.t.
L'expérience : un concept d'une simplicité redoutable

Inspirée par une idée de Geoff Huntley, l'équipe a mis en œuvre une approche minimaliste. Le dépôt GitHub du projet documente l’expérience. L’idée était simple :
  • Lancer un agent de codage IA (similaire à ceux proposés par GPT ou Claude).
  • L’enfermer dans une boucle while où il doit générer du code et créer des dépôts Git.
  • Observer jusqu’où il pouvait aller sans intervention humaine.

Au lieu de donner des instructions complexes, ils ont utilisé une invite (prompt) concise et précise pour guider l'agent. Celui-ci a ensuite été placé dans une boucle, le laissant travailler de manière indépendante pour identifier les tâches à accomplir et générer le code nécessaire.

Cette méthode a permis à l'agent d'opérer sans surveillance humaine, se contentant de suivre une seule directive : porter une base de code d'un langage (ou d'un framework) à un autre. Le résultat a été spectaculaire : en une seule nuit, l'agent a réussi à porter pas moins de six bases de code, dont le portage de assistant-ui de React vers Vue.js et celui de Vercel AI SDK de TypeScript vers Python : preuve que, même sans supervision directe, il peut livrer des artefacts logiciels complets.

Comment ça marche ?

Les développeurs se sont servis de Claude Code pour la boucle :

Code : Sélectionner tout
while :; do cat prompt.md | claude -p --dangerously-skip-permissions; done
Le prompt était simple

Ton travail consiste à porter le monorepo assistant-ui-react (pour react) vers assistant-ui-vue (pour vue) et à maintenir le référentiel.

Tu as accès au référentiel assistant-ui-react actuel ainsi qu'au référentiel assistant-ui-vue.

Effectue un commit et pousse tes modifications après chaque modification de fichier.

Utilise le répertoire assistant-ui-vue/.agent/ comme bloc-notes pour ton travail. Stocke tes plans à long terme et tes listes de tâches dessus.

Le projet original a été principalement testé en exécutant manuellement le code. Lors du portage, tu devras écrire des tests de bout en bout et des tests unitaires pour le projet. Mais veille à consacrer la majeure partie de ton temps au portage proprement dit, et non aux tests. Une bonne règle empirique consiste à consacrer 80 % de ton temps au portage proprement dit et 20 % aux tests.
Forces démontrées :
  • Vitesse d’exécution : la capacité de livrer plusieurs dépôts en quelques heures est impressionnante.
  • Autonomie : l’agent s’auto-alimente en tâches, sans avoir besoin d’ordres supplémentaires.
  • Expérimentation continue : la boucle favorise la génération de variations de projets.

Limites évidentes :
  • Qualité incertaine du code : rien ne garantit que les dépôts générés soient robustes, testés ou maintenables.
  • Sécurité inexistante : sans garde-fous, l’agent pourrait introduire des vulnérabilités.
  • Risque de dérapage : une boucle infinie sans contrôle peut rapidement saturer l’infrastructure ou générer du « spam code ».


Leçons apprises et enseignements surprenants

Cette expérimentation a révélé plusieurs comportements fascinants de l'agent de codage :
  • Confronté à des boucles de travail potentielles, l'agent a fait preuve d'une capacité inattendue à « s'auto-terminer » pour éviter de se retrouver dans une boucle infinie.

    Lorsque nous avons lancé les agents, nous avions beaucoup de questions. L'agent allait-il écrire des tests ? Allait-il se retrouver coincé dans une boucle infinie et dériver vers des fonctionnalités aléatoires sans rapport ? Nous avons été agréablement surpris de constater que l'agent écrivait des tests, respectait ses instructions initiales, ne se retrouvait jamais coincé, gardait le contrôle de la portée et déclarait la plupart du temps le port « terminé ». Une fois le portage terminé, la plupart des agents se sont contentés d'écrire des tests supplémentaires ou de mettre à jour en continu agent/TODO.md pour clarifier leur état d'avancement. Dans un cas, l'agent a même utilisé pkill pour se terminer lui-même après avoir réalisé qu'il était bloqué dans une boucle infinie.
  • La tendance à « sur-accomplir » : L'agent ne s'est pas contenté de reproduire le code existant. Il a souvent ajouté de nouvelles fonctionnalités ou a pris des initiatives pour « améliorer » le code source, allant au-delà de la simple réplication.

    Un autre comportement émergent intéressant (comme c'est souvent le cas avec les LLM) : après avoir terminé le portage initial, notre agent Python AI SDK a commencé à ajouter des fonctionnalités supplémentaires telles qu'une intégration pour Flask et FastAPI (ce qui n'existe pas dans la version JS de l'AI SDK), ainsi que la prise en charge des validateurs de schéma via Pydantic, Marshmallow, JSONSchema, etc.
  • La puissance de la simplicité : Un constat majeur a été l'inefficacité des invites trop complexes. Une invite de plus de 1 500 mots a rendu l'agent plus lent et moins performant, tandis qu'une directive claire et concise de seulement 103 mots a produit des résultats bien plus probants. Cela souligne l'importance de la simplicité et de la clarté dans la communication avec les modèles d'IA.

    Dans l'ensemble, nous avons constaté que moins c'est mieux : une invite simple vaut mieux qu'une invite complexe. Il faut se concentrer sur le moteur, pas sur l'échafaudage. Différents membres de notre équipe qui lançaient différents projets ont joué avec les instructions et l'ordre. Vous pouvez consulter les invites réelles que nous avons utilisées dans le dossier des invites.

    À un moment donné, nous avons essayé « d'améliorer » l'invite avec l'aide de Claude. Elle a atteint 1 500 mots. L'agent est immédiatement devenu plus lent et moins performant. Nous sommes revenus à 103 mots et tout est rentré dans l'ordre.

Une expérience révélatrice des défis à venir

L’expérience peut sembler anecdotique, mais elle met en lumière des problématiques déjà présentes dans l’industrie IT :
  • La tentation du « développement infini » : la productivité d’un agent autonome fait rêver : qui n’a pas imaginé des équipes virtuelles capables de produire jour et nuit, sans fatigue ni pause café ? Mais la multiplication de dépôts « jetables » pose la question de la valeur réelle : produire plus vite ne veut pas forcément dire produire mieux.
  • L’équilibre entre vitesse et contrôle : les pipelines CI/CD actuels intègrent des garde-fous (tests, revues de code, monitoring). Que se passe-t-il si un agent bypass ces étapes ? Un bogue critique ou une faille de sécurité pourrait se propager en quelques minutes à grande échelle.
  • Redéfinir le rôle du développeur : si des agents peuvent générer des dépôts complets en quelques heures, le rôle du développeur n’est plus seulement d’écrire du code, mais de concevoir l’environnement, définir les contraintes et superviser les agents. En d’autres termes, l’ingénieur devient chef d’orchestre plutôt que simple exécutant.

Implications pour les professionnels IT : bonnes pratiques pour apprivoiser ce type d’automatisation
Pour les entreprises et équipes techniques, ce type d’expérience ouvre autant d’opportunités que de risques.
  • Productivité : imaginez un agent qui lance des expérimentations, crée des POC, génère de la documentation technique en continu.
  • Sécurité : un agent laissé en roue libre peut créer du code vulnérable, exposer des secrets API ou déployer des dépendances douteuses.
  • Gouvernance : qui est responsable du code livré par un agent autonome ? L’entreprise ? L’équipe ? Le fournisseur du modèle IA ?

Plutôt que de rejeter l’idée, il est plus intéressant d’imaginer des méthodes d’encadrement :
  • Limiter la boucle : définir des conditions de sortie explicites (nombre de dépôts max, temps limité, seuil d’erreurs).
  • Supervision humaine obligatoire : introduire un processus de validation avant tout push ou merge.
  • Tests et linting intégrés : forcer l’agent à passer par des pipelines CI/CD classiques.
  • Observabilité renforcée : logs, dashboards et alertes pour suivre en temps réel les actions de l’agent.
  • Environnements isolés : ne jamais laisser un agent « libre » agir sur le code de production sans sandbox.

Conclusion : une expérience amusante, un signal sérieux

La phrase « We put a coding agent in a while loop and it shipped 6 repos overnight » (« Nous avons placé un agent de codage dans une boucle while et il a livré 6 dépôts pendant la nuit ») utilisé par les développeurs de cette expérience est à la fois un clin d’œil humoristique et un avertissement. Oui, les agents IA ouvrent une nouvelle ère d’automatisation logicielle. Oui, ils peuvent produire à une vitesse vertigineuse. Mais sans encadrement, cette productivité brute peut vite se transformer en chaos. Pour les professionnels IT, le message est clair : il ne s’agit plus seulement d’adopter l’IA, mais de l’orchestrer intelligemment, avec rigueur et responsabilité.

Cette expérimentation est donc une illustration concrète de l'avenir du développement assisté par l'IA. Elle nous montre qu'avec les bonnes méthodes, les agents de codage peuvent devenir des collaborateurs capables de prendre en charge des tâches répétitives, libérant ainsi les développeurs pour des missions à plus forte valeur ajoutée. L'avenir du codage pourrait bien être celui où les boucles while ne sont plus seulement pour le code, mais pour les agents qui l'écrivent.

Source : rapport

Et vous ?

Produire « six dépôts en une nuit » est-il réellement une victoire, ou une illusion de productivité si la qualité n’est pas garantie ?

Le volume de code généré automatiquement est-il une richesse… ou un futur « dette technique » ?

Peut-on vraiment laisser un agent autonome agir en continu sans supervision humaine ? Qui est responsable si un agent IA publie du code vulnérable, ou pire, malveillant ?

Que deviendront les dépôts créés massivement par des IA : bases de connaissances utiles ou simple bruit sur GitHub ?

Le rôle du développeur va-t-il basculer du « codeur » vers le « contrôleur d’agents » ? Comment garantir que les équipes gardent un savoir-faire humain si une partie du travail est déléguée à des IA ?
Vous avez lu gratuitement 228 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !