GitHub a lancé Rubber Duck, une fonctionnalité expérimentale dans Copilot CLI qui utilise la révision inter-modèles pour détecter les erreurs de codage que les modèles IA individuels ratent systématiquement. Quand les développeurs utilisent Claude comme leur agent de codage principal, Rubber Duck lance automatiquement une révision secondaire avec GPT-5.4, et vice versa. Le système se déclenche à trois moments clés : après la planification, après les implémentations complexes, et après l'écriture des tests mais avant l'exécution.
Cela s'attaque à un problème fondamental avec les agents de codage IA : ils amplifient les erreurs précoces parce que les étapes suivantes se basent sur les mêmes suppositions défaillantes. L'auto-réflexion aide, mais un modèle qui révise son propre travail reste contraint par les mêmes biais d'entraînement qui ont créé l'erreur. Différentes familles de modèles—Claude d'Anthropic versus GPT d'OpenAI—portent différents biais d'entraînement, rendant la révision inter-modèles plus efficace pour faire ressortir les angles morts.
Les résultats de benchmarks sur SWE-Bench Pro montrent que Claude Sonnet avec Rubber Duck a comblé 74,7% de l'écart de performance avec le plus capable Claude Opus, avec des gains les plus prononcés sur les tâches multi-fichiers nécessitant 70+ étapes. Les exemples de GitHub révèlent les types d'erreurs détectées : des planificateurs qui quittent immédiatement, des boucles infinies dans les tâches d'arrière-plan, et des écrasements de données silencieux qui suppriment les catégories de recherche. Un cas particulièrement révélateur impliquait le système email de NodeBB, où trois fichiers lisaient d'une clé Redis que le nouveau code avait arrêté d'écrire—un bogue qui brise le déploiement sans message d'erreur.
Pour les développeurs, cela représente un pas pratique vers une assistance de codage IA plus fiable. L'accent étroit sur la révélation des suppositions, cas limites, et conflits d'exigences suggère que GitHub comprend qu'une révision IA efficace ne consiste pas à réécrire le code—c'est identifier les modes d'échec spécifiques que les développeurs humains doivent connaître avant de livrer.
