Skip to main content

À propos de l’agent « rubber duck »

L'agent de canard en caoutchouc est un critique intégré qui fournit Copilot une seconde opinion constructive sur ses propres plans, code et tests, en utilisant un modèle IA différent du modèle qui pilote votre session.

Qui peut utiliser cette fonctionnalité ?

CLI GitHub Copilot est disponible dans tous les forfaits Copilot. Si vous recevez Copilot d’une organisation, la Copilot pour CLI stratégie doit être activée dans les paramètres de l’organisation.

Présentation

Le canard en caoutchouc est un agent intégré dans CLI GitHub Copilot qui agit comme un critique constructif. Pendant que vous travaillez sur une tâche, l’agent CLI principal d’une session peut passer son plan, sa conception, son implémentation ou ses tests actuels à l’agent de canard en caoutchouc pour examen. L’agent de canard en caoutchouc recherche des angles morts, des défauts de conception et des problèmes de fond, et fournit des retours concrets et exploitables. Copilot prend alors en compte cette critique avant de continuer.

L’agent de canard en caoutchouc est conçu pour examiner les modifications proposées, et non pour apporter lui-même des modifications aux fichiers. L’agent principal de la session décide de ce qu’il faut faire avec les commentaires.

Remarque

L'agent de canard en caoutchouc n’est actuellement disponible que si l’agent principal utilise un modèle de langage large comme Claude ou GPT.

Pourquoi « canard en caoutchouc » ?

Le nom provient d’une technique de longue date dans l’ingénierie logicielle appelée canard en caoutchouc dans laquelle vous expliquez votre code, ou la solution proposée, à un objet inanimate , traditionnellement un canard en caoutchouc. L’idée est qu’en articulant votre pensée, vous découvrez souvent des erreurs, des malentendus ou des défauts logiques.

L’agent de canard en caoutchouc applique une idée similaire à Copilot. Avant d’aller de l’avant avec un changement non trivial, Copilot peut arrêter, exprimer sa pensée actuelle et l’examiner par un réviseur indépendant. Contrairement à un vrai canard en caoutchouc, celui-ci répond : il fournit une critique structurée sur laquelle Copilot peut agir.

Deuxième opinion d’un autre modèle

Une caractéristique de conception clé de l’agent de canard en caoutchouc est qu’il s’exécute délibérément sur un modèle IA différent de celui qui pilote votre session. CLI GitHub Copilot sélectionne un modèle critique qui contraste avec le modèle de session actuel. Par exemple, si vous avez choisi d’utiliser un modèle Claude pour votre session, l'agent pourrait utiliser un modèle GPT comme évaluateur. Copilot pour CLI n'utilise l'agent de canard en caoutchouc que lorsqu'un modèle approprié est disponible pour fournir une évaluation utile.

L’avantage de l’utilisation d’un modèle différent est que le critique est moins susceptible de partager les mêmes points aveugles, biais ou modes d’échec que le modèle qui a produit le travail. Vous obtenez effectivement deux perspectives indépendantes sur le même problème.

Le modèle critique approprié est sélectionné automatiquement chaque fois que l’agent de canard en caoutchouc est appelé, en fonction de votre modèle de session actuel. Si vous changez de modèle de session en cours de session (par exemple, avec la commande /model), la prochaine invocation de l'agent 'rubber duck' choisit le critique approprié pour le nouveau modèle de session.

Ce que fait l’agent de débogage « rubber duck »

Lorsque l’agent de canard en caoutchouc est consulté, il :

  1.        **Lit le travail dans le contexte.** Il comprend ce que le code, la conception ou la proposition essaie d’accomplir, comment il s’intègre au reste du système et quelles hypothèses existent.
    
  2.        **Identifie les problèmes réels.** Il recherche des bogues, des erreurs logiques, des vulnérabilités de sécurité, des failles de conception, des anti-modèles, des goulots d’étranglement des performances et d’autres problèmes qui importent réellement pour la réussite de la tâche.
    
  3.        **Recommande des correctifs spécifiques.** Pour chaque problème qu’il trouve, il indique le problème, son impact et une modification concrète suggérée.
    
  4.        **Catégorise ses commentaires** par gravité :
    
    • Les problèmes de blocage doivent être résolus pour que le travail réussisse.
    • Les problèmes non bloquants doivent être résolus pour améliorer la qualité, mais n’empêcheront pas la réussite.
    • Suggestions : améliorations de priorité inférieure qui ont toujours un impact réel sur le résultat.
  5.        **Ne signale que les résultats qui comptent.** S’il ne trouve aucun problème, il indique si explicitement. L’agent de canard en caoutchouc n’est pas configuré pour commenter le style, la mise en forme, les conventions d’affectation de noms, la grammaire dans les commentaires, les refactorisations mineures ou les meilleures pratiques qui n’empêchent pas les problèmes réels.
    

L’agent canard en caoutchouc a un accès en lecture seule à votre base de code via les outils d’exploration standards. Il ne peut pas modifier des fichiers ou exécuter des commandes qui modifient votre environnement.

Quand Copilot consulte l’agent de canard en caoutchouc

Lorsque l’agent de canard en caoutchouc est activé, Copilot est consulté à des moments stratégiques plutôt que seulement lorsqu’il est bloqué. Les situations courantes sont les suivantes :

  • Après avoir planifié une modification non triviale, mais avant de l’implémenter. Il s'agit du moment le plus opportun pour détecter les défauts de conception, pendant que les ajustements sont encore peu coûteux.
  • En cours d'implémentation, pour vérifier les angles morts dans un projet complexe.
  • Après avoir écrit des tests, pour vérifier que la couverture des tests est complète et que le comportement répond réellement à votre demande d’origine.
  • Réactivement, lorsqu’il Copilot atteint des échecs répétés ou des résultats inattendus, pour obtenir une analyse indépendante du problème plutôt que de réessayer la même approche.

Pour les petits changements bien compris, Copilot ignore généralement l’agent de canard en caoutchouc.

Lorsqu’il Copilot consulte l’agent de canard en caoutchouc, il résume la critique qui en résulte pour vous dans la sortie de la chronologie plutôt que de la répéter textuellement (par exemple, « La critique a souligné un angle mort dans mon plan autour de X, donc j’ai mis à jour mon plan pour y remédier ».

Invocation manuelle de l'agent "rubber duck"

L’agent Copilot pour CLI de canard en caoutchouc consulte généralement automatiquement. Vous n’avez rien à faire. La sortie de la chronologie indique quand l’agent principal obtient une critique de canard en caoutchouc. Parfois, la CLI ne fera pas appel à l'agent de débogage par canard en caoutchouc. Par exemple, il peut décider que les modifications ne sont pas suffisamment étendues pour justifier une critique.

Vous pouvez utiliser une invite de langage naturel pour demander explicitement à Copilot d’obtenir un deuxième avis. Par exemple, après avoir demandé Copilot à produire un plan de travail, vous pouvez entrer une invite telle que :

Rubber duck your plan.

Vous pouvez également intervenir au cours d'une série de modifications :

Get a critique of the changes you've made so far.

Avantages de l'utilisation de l'agent canard en caoutchouc

  • Détecte tôt les problèmes. La plupart des tâches non triviales qui échouent ont des problèmes qu’une critique aurait pu intercepter à l’étape de planification. L’obtention de commentaires avant l’écriture du code est préférable pour résoudre les problèmes plus tard dans le processus.

    Remarque

    La consultation de l’agent de canard en caoutchouc exécute une transmission de raisonnement supplémentaire sur un modèle distinct, de sorte qu’elle ajoute une certaine latence et implique une utilisation supplémentaire du modèle. L’avantage est que passer un peu plus de temps et de ressources à l’avance peut vous faire gagner du temps et modéliser l’utilisation globale en interceptant les problèmes tôt et en réduisant le nombre de tentatives ayant échoué pour effectuer une tâche.

  • Réduit les angles morts d'un modèle unique. Étant donné que l’agent utilise un modèle d’une autre famille, il apporte une perspective véritablement différente plutôt que de réexécuter le même raisonnement ayant produit le travail original.

  • Améliore la qualité des changements complexes. Les décisions architecturales, les modifications multi-fichiers et les bases de code inconnues bénéficient tous d’un deuxième avis avant Copilot de s’engager dans une approche.

  • Reste à l’écart pour les tâches simples. Copilot consulte uniquement l’agent de canard en caoutchouc lorsque le travail n’est pas trivial, de sorte qu’il ne ralentit pas les modifications rapides et les correctifs évidents.

Lectures complémentaires