- Des tests menés sur plusieurs LLM dans des conditions identiques montrent que les performances peuvent fortement progresser en ne changeant que l’outil de modification de code
- À la place des méthodes classiques Patch·Replace, l’application du format « Hashline », qui attribue un hash tag à chaque ligne de code, améliore la précision des modifications
- Hashline a montré une précision supérieure aux méthodes existantes sur 14 modèles sur 16, avec en plus une réduction moyenne de 20 à 30 % des tokens
- En particulier, le modèle Grok Code Fast 1 a vu son taux de réussite bondir de 6,7 % à 68,3 %, soit une amélioration par 10 grâce à un simple changement de harness
- L’étude montre que le véritable goulet d’étranglement des performances n’est pas le modèle lui-même mais le « harness », et souligne la nécessité d’une collaboration dans l’écosystème open source
Aperçu du benchmark d’édition de code
- L’expérience a comparé trois formats d’édition : Patch, Replace, Hashline
- 16 modèles ont été soumis aux mêmes tâches de correction de code
- Chaque modèle a été testé en corrigeant des bugs dans des fichiers sélectionnés aléatoirement au sein d’une base de code React
- Le format Hashline a obtenu de meilleurs résultats que Patch sur 14 modèles, tout en économisant en moyenne 20 à 30 % de tokens
- L’amélioration la plus marquée concerne le modèle Grok Code Fast 1, dont le taux de réussite est passé de 6,7 % à 68,3 % (+61,6 points)
- Gemini 3 Flash a progressé de 5,0 points, Claude Sonnet 4.5 de 1,6 point
Le problème du harness
- Les discussions actuelles se concentrent surtout sur la question de savoir « quel modèle code le mieux », alors que le véritable goulet d’étranglement est le harness, pas le modèle
- Le harness est l’interface centrale qui gère les tokens d’entrée et relie la sortie du modèle aux modifications du workspace
- La plupart des échecs proviennent non pas du modèle, mais de limites structurelles du harness
- L’auteur a cherché à améliorer cela via oh-my-pi, un projet personnel dérivé de l’agent de codage open source Pi, avec environ 1 300 commits
- Cet environnement est indépendant du modèle et permet des expériences où seul le harness varie
Les limites des outils d’édition existants
- La méthode
apply_patch de Codex utilise un format diff spécifique à OpenAI, ce qui entraîne un taux d’échec élevé avec d’autres modèles
- Exemple : taux d’échec des patchs de 50,7 % pour Grok 4, et de 46,2 % pour GLM-4.7
- La méthode
str_replace de Claude Code exige une correspondance parfaite de la chaîne, ce qui provoque des erreurs à cause des différences d’espaces ou d’indentation
- L’erreur « String to replace not found in file » a été signalée à de nombreuses reprises sur GitHub
- Cursor entraîne un modèle 70B distinct pour gérer la fusion, mais sur des fichiers de moins de 400 lignes, une réécriture complète (full rewrite) donne de meilleurs résultats
- Les recherches Diff-XYZ de JetBrains et EDIT-Bench ont également confirmé que les performances varient fortement selon le format d’édition
Le principe de la méthode Hashline
- Chaque ligne de code reçoit un hash de contenu de 2 à 3 caractères, afin que le modèle puisse désigner clairement la cible à modifier
- Exemple :
22:f1| return "world";
- Le modèle formule ensuite la demande de modification sur la base du hash, par exemple « replace line 2:f1 »
- Si le fichier a changé et que le hash ne correspond plus, la modification est refusée pour éviter toute corruption
- Cette méthode évite au modèle d’avoir à reproduire le contenu existant, ce qui réduit les erreurs d’espacement et d’indentation et permet des modifications plus stables
Résultats du benchmark
- Les tests comprenaient 180 tâches de correction de bugs, répétées 3 fois, avec 4 outils (
read, edit, write, etc.)
- Au final, le format Patch est le pire sur presque tous les modèles, tandis que Hashline est au moins équivalent à Replace, voire meilleur
- Plus le modèle est faible, plus le gain est important
- Grok 4 Fast a réduit ses tokens de sortie de 61 %, et MiniMax a plus que doublé ses performances
- Le gain de +8 % de Gemini est supérieur à ce qu’on observe généralement avec une mise à niveau de modèle, et a été obtenu sans entraînement supplémentaire
Politique des éditeurs et écosystème open source
- Anthropic a bloqué l’accès à Claude Code pour l’agent de codage open source OpenCode
- La raison invoquée est la « rétro-ingénierie d’API privées », mais cela a été interprété dans les faits comme un signal : « utilisez uniquement notre propre harness »
- Google a bloqué le compte de l’auteur, coupant l’accès à Gemini
- Cela s’est produit juste après un benchmark montrant que Gemini 3 Flash atteignait 78,3 % avec l’application de Hashline
- L’auteur estime que ces mesures sont contre-productives car elles bloquent des opportunités d’amélioration des modèles
- L’optimisation du harness relève d’une recherche d’intérêt public qui améliore la qualité de tous les modèles, et non d’un seul en particulier
- Avec la formule « le modèle est le fossé défensif, le harness est le pont », il souligne qu’une approche fermée freine le développement de l’écosystème
Conclusion
- Le problème du harness apparaît comme un facteur mesurable qui affecte directement les performances réelles
- Un simple changement de format peut produire un effet comparable à une mise à niveau de modèle
- La voie de progrès à suivre ne devrait pas être une amélioration fermée par une entreprise unique, mais une coopération ouverte fondée sur la communauté
- L’ensemble du code, des benchmarks et des résultats d’exécution est publié dans le dépôt GitHub oh-my-pi
Aucun commentaire pour le moment.