Contexte et objectifs

GitHub Copilot vise à améliorer l’efficacité des agents de codage en limitant le nombre de tokens consommés sans dégrader la qualité du résultat. Les métriques classiques basées sur le nombre de tokens par appel d’outil se sont révélées inadéquates, car un appel plus court peut entraîner des relances supplémentaires et augmenter le coût total. L’équipe a donc choisi d’optimiser le résultat final, en évaluant chaque modification sur des benchmarks d’agentic coding puis en la validant par des expériences en ligne contrôlées.

Compression sélective du flux de sortie

Les sorties d’installation, de construction, de test et de lint contiennent souvent du bruit répétitif. Une analyse des exécutions de benchmark a montré que ces sections sont rarement utiles pour la prise de décision de l’agent, contrairement aux sorties « source‑like » (ex. cat, git diff, git show) qui contiennent des informations essentielles. Le compresseur final conserve les sorties source‑like, regroupe les listes de fichiers ou de correspondances sans en supprimer le contenu, et ne compresse le bruit que lorsque les économies sont substantielles. Les premiers prototypes, trop agressifs, forçaient le modèle à relancer les commandes ou à rouvrir les sorties originales, ce qui augmentait le nombre moyen de tokens et le temps d’exécution. Après plusieurs itérations, la version déployée a éliminé ces régressions : aucune baisse statistiquement significative du taux de succès n’a été détectée, et les agents ont très rarement réouvert les sorties compressées.

Suppression du formatage superflu

Le view tool ajoutait un préfixe de numéro de ligne à chaque ligne lue, même si les agents actuels n’utilisent plus ces numéros pour cibler les modifications. Ce formatage, répété sur chaque fichier, s’accumulait dans la fenêtre de contexte. En le retirant, le coût d’inférence du modèle a baissé d’environ 5 % dans les benchmarks hors ligne, sans impact mesurable sur le taux de réussite. Une expérimentation en ligne auprès des utilisateurs du Copilot CLI a confirmé une réduction moyenne de 3 % du coût quotidien d’inférence par utilisateur, sans détérioration des métriques de qualité ou de satisfaction.

Réduction du méta‑prompt

Le méta‑prompt de Copilot, qui décrit les outils, les schémas et les instructions système, avait doublé de taille au fil des itérations. Une boucle de méta‑prompting a permis de réduire ce texte d’environ 50 %, en conservant les comportements attendus. Le raccourcissement du prompt diminue le nombre de tokens transmis à chaque tour, tout en maintenant les tests comportementaux qui valident les réponses. Cette optimisation, combinée aux deux précédentes, a permis de diminuer le coût total d’une tâche typique de plusieurs pourcents, tout en conservant les performances observées sur les benchmarks et les expériences en production.