Présentation de Copilot
Copilot est un outil d'examen de code qui utilise des agents pour analyser les modifications apportées au code et identifier les problèmes potentiels. Lorsqu'une demande de tirage (pull request) est ouverte, Copilot lit les différences et explore le code environnant pour trouver les problèmes importants avant leur mise en production.
Problème avec les outils partagés
Lorsque les développeurs de Copilot ont remplacé les outils de code personnalisés par des outils partagés mieux entretenus, tels que grep, glob et view, ils s'attendaient à une amélioration de la qualité de l'examen. Cependant, les tests ont montré que le coût de l'examen augmentait et que moins de problèmes étaient détectés.
Analyse et solution
L'analyse a révélé que le problème ne venait pas des outils eux-mêmes, mais des instructions données à l'agent. Les instructions étaient conçues pour un assistant de codage général et non pour un examinateur de code. Les développeurs ont donc réécrit les instructions pour qu'elles soient spécifiques à l'examen de code, en utilisant les outils partagés de manière plus efficace.
Generic posture: Use the available tools to inspect repository context that may be relevant.
Review-shaped guidance: Start from the diff. Narrow first with grep and glob; read exact evidence with view. If grep fails to find relevant context, retry with a simpler escaped…
Résultats et implications
Les résultats ont montré que les nouvelles instructions ont amélioré la qualité de l'examen, avec une réduction d'environ 20% du coût moyen de l'examen, tout en maintenant la même qualité d'examen. Cela démontre l'importance de concevoir des instructions spécifiques pour les agents, en fonction de leur tâche et de leur contexte, pour obtenir de meilleurs résultats.