Skip to main content

Utilisation responsable de l’agent de codage GitHub Copilot sur GitHub.com

Apprenez à utiliser Copilot, agent de codage sur GitHub.com de manière responsable en comprenant ses objectifs, ses capacités et ses limites.

À propos de Copilot, agent de codage sur GitHub.com

Copilot, agent de codage est un agent de développement logiciel autonome et asynchrone intégré dans GitHub. L’agent peut sélectionner une tâche à partir d’un problème ou de Tchat Copilot, créer une demande de tirage, puis itérer sur la demande de tirage en réponse aux commentaires.

Copilot, agent de codage peut générer des modifications sur mesure en fonction de votre description et de vos configurations, y compris des tâches telles que la correction de bogues, la mise en œuvre de nouvelles fonctionnalités incrémentielles, le prototypage, la documentation et la maintenance de la base de code. Une fois la demande de tirage initiale créée, l’agent peut itérer avec vous, en fonction de vos commentaires et avis.

Tout en travaillant sur votre tâche, l’agent a accès à son propre environnement de développement éphémère où il peut apporter des modifications à votre code, exécuter des tests automatisés et exécuter des linters.

L’agent a été évalué dans diverses langues de programmation, avec l’anglais comme langue principale prise en charge.

L’agent fonctionne à l’aide d’une combinaison de traitement en langage naturel et d’apprentissage automatique pour comprendre votre tâche et apporter des modifications dans une base de code pour terminer votre tâche. Ce processus peut être divisé en plusieurs étapes.

Traitement rapide

La tâche fournie à Copilot via une issue, un commentaire de pull request ou un message Tchat Copilot est combinée avec d’autres informations contextuelles pertinentes pour former une requête. Cette invite est envoyée à un modèle de langage volumineux pour le traitement. Les entrées peuvent prendre la forme d’un langage naturel brut, d’extraits de code ou d’images.

Analyse du modèle de langage

La requête est ensuite transmise à un modèle de langage de grande taille, qui est un réseau neuronal entraîné sur un vaste corpus de données. Le modèle de langage analyse l’invite d’entrée pour aider l’agent à raisonner sur la tâche et à tirer parti des outils nécessaires.

Génération de la réponse

Le modèle de langage génère une réponse en fonction de son analyse de la demande entrée. Cette réponse peut prendre la forme de suggestions en langage naturel et de suggestions de code.

Mise en forme de la sortie

Une fois que l'agent a terminé sa première exécution, il met à jour la description de la pull request avec les modifications qu'il a apportées. L’agent peut inclure des informations supplémentaires sur les ressources auxquelles il n’a pas pu accéder et fournir des suggestions sur les étapes à résoudre.

Vous pouvez fournir des commentaires à l’agent en commentant dans la requête de tirage ou en mentionnant explicitement l’agent (@copilot). L'agent soumettra ensuite ce retour d'information au modèle linguistique pour une analyse plus approfondie. Une fois que l’agent a terminé les modifications en fonction des commentaires, l’agent répond à votre commentaire avec des modifications mises à jour.

Copilot est destiné à vous fournir la solution la plus pertinente pour la résolution des tâches. Cependant, il peut ne pas toujours fournir la réponse que vous recherchez. Vous êtes responsable de l'examen et de la validation des réponses générées par Copilot afin de vous assurer qu'elles sont exactes et appropriées.

De plus, dans le cadre de notre processus de développement produit, GitHub mène des exercices de red teaming (tests) afin de comprendre et d’améliorer la sécurité de l’assistant.

Pour plus d'informations sur la manière d'améliorer les performances, voir Améliorer les performances pour Copilot, agent de codage ci-dessous.

Cas d'utilisation pour Copilot, agent de codage

Vous pouvez déléguer une tâche à Copilot dans une variété de scénarios, y compris, mais sans s'y limiter :

  •         **Maintenance codebase :** résoudre les correctifs liés à la sécurité, les mises à niveau des dépendances et la refactorisation ciblée.
    
  •         **Documentation :** mise à jour et création de nouveaux documents.
    
  •         **Développement de fonctionnalités :** implémentation de requêtes de fonctionnalités incrémentielles.
    
  •         **Améliorer la couverture des tests :** développement de suites de tests supplémentaires pour la gestion de la qualité.
    
  •         **Prototypage de nouveaux projets :** développement de nouveaux concepts à partir de zéro.
    

Amélioration des performances pour Copilot, agent de codage

Copilot, agent de codage peut prendre en charge un large éventail de tâches. Pour améliorer les performances de l'agent et remédier à certaines de ses limites, il existe plusieurs mesures que vous pouvez adopter.

Pour plus d'informations sur les limitations, voir Limitations of Copilot, agent de codage (ci-dessous).

Assurez-vous que vos tâches sont bien définies

Copilot, agent de codage utilise votre invite comme contexte clé lors de la génération d'une pull request. Plus l’invite que vous affectez à l’agent est plus claire et bien étendue, mieux vous obtiendrez les résultats que vous obtiendrez. Une question idéale inclut :

  • Une description claire du problème à résoudre ou du travail à effectuer.
  • Compléter les critères d'acceptation sur ce à quoi ressemble une bonne solution (par exemple, doit-il y avoir des tests unitaires ?).
  • Indicateurs ou pointeurs sur les fichiers à modifier.

Personnaliser votre expérience avec un contexte supplémentaire

Copilot, agent de codage utilise votre invite, vos commentaires et le code du référentiel comme contexte lors de la génération des modifications suggérées. Pour améliorer les performances de Copilot, envisagez d’implémenter des instructions de Copilot personnalisées pour aider l’agent à mieux comprendre votre projet et comment générer, tester et valider ses modifications. Pour plus d'informations, consultez la section « Ajouter des instructions personnalisées à votre référentiel » dans Meilleures pratiques pour utiliser GitHub Copilot pour travailler sur des tâches.

Pour plus d'informations sur les autres personnalisations de Copilot, agent de codage, voir :

  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)
    

Utilisez Copilot, agent de codage comme un outil et non comme un substitut

Si Copilot, agent de codage peut être un outil puissant pour générer du code et de la documentation, il est important de l'utiliser comme un outil et non comme un substitut à la programmation humaine. Vous devez toujours examiner et tester le contenu généré par l'agent pour vous assurer qu'il répond à vos exigences et qu'il ne contient pas d'erreurs ou de problèmes de sécurité avant de le fusionner.

Utiliser des pratiques de codage sécurisé et de révision du code

Bien que Copilot, agent de codage puisse générer du code syntaxiquement correct, il n'est pas toujours sûr. Vous devez toujours suivre les meilleures pratiques en matière de codage sécurisé, par exemple en évitant les mots de passe codés en dur ou les vulnérabilités liées aux injections SQL, ainsi que les meilleures pratiques en matière d'examen du code, afin de tenir compte des limites de l'agent. Vous devez toujours prendre les mêmes précautions que pour tout code que vous écrivez et qui utilise du matériel dont vous n'êtes pas à l'origine de manière indépendante, y compris des précautions pour garantir son adéquation. Ceci inclut des tests rigoureux, l’analyse des adresses IP et la recherche des vulnérabilités de sécurité.

Fournir des commentaires

Si vous rencontrez des problèmes ou des limitations avec Copilot, agent de codage sur GitHub.com, nous vous recommandons de nous faire part de vos commentaires en cliquant sur l'icône du pouce vers le bas en dessous de chaque réponse de l'agent. Cela peut aider les développeurs à améliorer l’outil, et à résoudre les problèmes ou les limitations. En outre, vous pouvez fournir des commentaires dans le forum de discussion communautaire.

Rester informé

Copilot, agent de codage est une nouvelle technologie susceptible d'évoluer avec le temps. Il est recommandé de se tenir informé des nouveaux risques ou des bonnes pratiques en matière de sécurité qui peuvent apparaître.

Mesures de sécurité pour Copilot, agent de codage

De par sa conception, Copilot, agent de codage est construit avec plusieurs mesures d'atténuation afin de garantir la sécurité de vos données et de votre base de code. Bien qu'il existe des solutions d'atténuation, veillez à continuer à mettre en œuvre les meilleures pratiques de sécurité tout en comprenant les limites de l'agent et l'impact qu'elles peuvent avoir sur votre code.

Éviter l’escalade privilégiée

Copilot, agent de codage ne répondra qu'aux interactions (par exemple, l'assignation de l'agent ou les commentaires) des utilisateurs ayant un accès en écriture au référentiel.

Les flux de travail GitHub Actions déclenchés en réponse à des demandes d'extraction soulevées par Copilot, agent de codage nécessitent l'approbation d'un utilisateur ayant un accès en écriture au référentiel avant d'être exécutés.

L'agent filtre les caractères cachés, qui ne sont pas affichés sur GitHub.com, ce qui pourrait permettre aux utilisateurs de dissimuler des instructions nuisibles dans les commentaires ou le contenu du corps du message. Cela protège contre les risques tels que les jailbreaks.

Limitation des autorisations de Copilot

Copilot a uniquement accès au référentiel où il crée une demande de tirage (pull request) et ne peut pas accéder à d’autres référentiels.

Ses autorisations sont limitées, ce qui lui permet d’envoyer du code et de lire d’autres ressources. Les protections intégrées signifient que Copilot peut uniquement effectuer un push vers les branches dont les noms commencent par copilot/. Cela signifie que Copilot ne peut pas pousser vers votre branche par défaut (par exemple, main).

Copilot, agent de codage n'a pas accès aux secrets ou variables de l'organisation des actions ou du référentiel pendant l'exécution. Seuls les secrets et les variables spécifiquement ajoutés à l’environnement copilot sont transmis à l’agent.

Prévention de l’exfiltration de données

Par défaut, Copilot, agent de codage dispose d'un pare-feu activé pour empêcher l'exfiltration de code ou d'autres données sensibles, que ce soit accidentellement ou à la suite d'une saisie malveillante de la part de l'utilisateur.

Pour plus d’informations, consultez « Personnalisation ou désactivation du pare-feu pour GitHub Agent de codage Copilot ».

Prévention des vulnérabilités de sécurité dans le code généré

Pendant le processus de génération de code, Copilot, agent de codage analyse automatiquement le code nouvellement généré pour détecter les vulnérabilités de sécurité et tente de les résoudre, afin d’empêcher l’introduction de problèmes détectés. L’analyse est effectuée à l’aide des outils et processus suivants :

  •         **CodeQL**  : s’exécute pour identifier les vulnérabilités et erreurs potentielles.
    
  •         **Secret scanning** : analysera les types connus de secrets pour s'assurer qu'aucun secret n'est introduit dans la réponse.
    
  •         **Analyse** des dépendances : les dépendances référencées par le nouveau code seront vérifiées pour connaître les vulnérabilités connues dans le GitHub Advisory Database.
    

Limites de Copilot, agent de codage

En fonction de facteurs tels que votre base de code et vos données d'entrée, vous pouvez obtenir différents niveaux de performance en utilisant Copilot, agent de codage. Les informations suivantes sont destinées à vous aider à comprendre les limites du système et les concepts clés en matière de performances, tels qu'ils s'appliquent à Copilot, agent de codage.

Étendue limitée

Le modèle linguistique utilisé par Copilot, agent de codage a été entraîné sur un grand nombre de codes, mais son champ d'application reste limité et il peut ne pas être en mesure de gérer certaines structures de code ou des langages de programmation obscurs. Pour chaque langage, la qualité des suggestions que vous recevez peut dépendre du volume et de la diversité des données d’entraînement pour ce langage.

Biais potentiels

Les données d’entraînement du modèle de langage utilisé par Copilot, agent de codage, ainsi que le contexte collecté par le grand modèle de langage, peuvent contenir des biais et des erreurs susceptibles d’être perpétués par l’outil. En outre, Copilot, agent de codage peut être biaisé en faveur de certains langages de programmation ou styles de codage, ce qui peut conduire à des suggestions sous-optimales ou incomplètes.

Risques liés à la sécurité

Copilot, agent de codage génère du code et du langage naturel en fonction du contexte d'un problème ou d'un commentaire dans un référentiel, ce qui peut potentiellement exposer des informations sensibles ou des vulnérabilités s'il n'est pas utilisé avec précaution. Veillez à passer en revue toutes les sorties générées par l’agent soigneusement avant la fusion.

Code erroné

Copilot, agent de codage peut générer un code qui semble valide mais qui n'est pas nécessairement correct sur le plan sémantique ou syntaxique ou qui ne reflète pas exactement l'intention du développeur.

Pour atténuer le risque d’avoir du code erroné, vous devez réviser et tester soigneusement le code généré, en particulier quand vous travaillez sur des applications critiques ou sensibles. Vous devez aussi vérifier que le code généré respecte les bonnes pratiques et les modèles de conception, et qu’il s’intègre dans l’architecture globale et le style du codebase.

Code public

Copilot, agent de codage peut générer un code correspondant ou presque à un code accessible au public, y compris si la stratégie « Suggestions correspondant au code public » est définie sur « Bloquer ». Consultez « Gestion des politiques GitHub Copilot en tant qu’un abonné individuel ».

Dans ce cas, Copilot affiche les correspondances dans les journaux de session de l’agent avec un lien pour afficher les détails du code correspondant. Pour plus d’informations, consultez « Suivi des sessions GitHub Copilot ».

Les utilisateurs doivent évaluer des obligations légales et réglementaires spécifiques potentielles lors de l’utilisation de services et de solutions IA, ce qui peut ne pas convenir à une utilisation dans chaque secteur ou scénario. En outre, les services ou solutions IA ne sont pas conçus pour et peuvent ne pas être utilisés de manière interdite en termes de service applicables et codes de conduite pertinents.

Intégrations externes avec l’agent de codage Copilot

Copilot, agent de codage peut recevoir des informations et du contexte à partir d’applications externes telles que Microsoft Teams, Linear, Slack et Jira. Lorsque vous mentionnez l’application externe dans ces plateformes ou que vous attribuez une tâche à l’agent de codage via un flux de travail connecté, il peut accéder au contexte pertinent, tel que l’historique des conversations dans les threads où il est mentionné ou les détails du problème et les chronologies d’activité. Cela permet à l’agent de codage de mieux comprendre vos besoins de développement et de fournir une assistance plus pertinente. Ces intégrations permettent aux équipes de collaborer sur du code, d’affecter des tâches et de suivre la progression directement dans leurs flux de travail existants, sans changer d’outils. Assurez-vous que votre équipe comprend les informations partagées et configure les intégrations en fonction des stratégies de confidentialité et de gestion des données de votre organisation.

Pour plus d’informations sur les intégrations externes avec Copilot, agent de codage, consultez : * Intégration de l’assistant de codage Copilot à Teams * Intégration de l’agent de codage Copilot à Linear * Intégration de l’agent de codage Copilot à Slack