Skip to main content

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

Découvrez comment utiliser Agent Copilot cloud de GitHub.com manière responsable en comprenant ses objectifs, ses fonctionnalités et ses limitations.

À propos de Agent cloud Copilot (anciennement agent de codage Copilot)GitHub.com

          Agent Copilot cloud est un agent de développement logiciel autonome et asynchrone intégré à GitHub. L’agent peut récupérer une tâche à partir d’un problème ou de Tchat Copilot, étudier un référentiel, créer un plan d’implémentation et effectuer des modifications de code sur une branche. Vous pouvez passer en revue le diff, itérer avec l’agent et créer une pull request lorsque vous êtes prêt.

          Agent Copilot cloud peut générer des modifications personnalisées en fonction de votre description et de vos configurations, notamment des tâches telles que la recherche d’une base de code, la planification d’une approche, les correctifs de bogues, l’implémentation de nouvelles fonctionnalités incrémentielles, le prototypage, la documentation et la maintenance de codebase. L’agent peut itérer avec vous en fonction de vos commentaires, que ce soit via des questions de suivi pendant une session ou des commentaires sur une pull request.

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.

Remarque

La recherche approfondie, la planification et l’itération sur les modifications de code avant de créer une pull request ne sont disponibles qu’avec Agent Copilot cloud sur GitHub.com. Agent de cloud Les intégrations (comme Azure Boards, JIRA, Linear, Slack ou Teams) se contentent de créer une pull request directement.

Traitement rapide

La tâche fournie via Copilot un problème, un commentaire de pull request ou Tchat Copilot un message est combinée avec d’autres informations contextuelles pertinentes pour former une invite. 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é son premier cycle, il présentera un résumé des modifications qu’il a apportées. Si une pull request a été créée, l’agent met à jour la description de la pull request. 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 envoyant des invites de suivi pendant une session, en commentant dans une demande de tirage ou en mentionnant explicitement l’agent (@copilot) sur la demande de tirage. 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, il répond avec les 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.

En outre, dans le cadre de notre processus de développement de produits, GitHub effectue un 'red teaming' (tests) pour comprendre et améliorer la sûreté de l’agent.

Pour plus d’informations sur l’amélioration des performances, consultez voir ci-dessous Amélioration des performances Agent Copilot cloud.

Cas d’usage pour Agent Copilot cloud

Vous pouvez déléguer une tâche à Copilot dans divers scénarios, y compris, mais pas limité à :

  •         **Recherche approfondie :** Comprendre le fonctionnement d’une base de code, identifier où effectuer une modification ou confirmer les hypothèses.
    
  •         **Planification:** Création d’un plan d’implémentation avant d’apporter des modifications.
    
  •         **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 Agent Copilot cloud

          Agent Copilot cloud 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, consultez Limitations de Agent Copilot cloud (ci-dessous).

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

          Agent Copilot cloud tire parti de votre invite comme contexte clé lors de la réalisation d'une tâche. Plus l’invite que vous affectez à l’agent est plus claire et bien étendue, mieux vous obtiendrez les résultats que vous obtiendrez. Une tâche idéale comprend :
  • 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

          Agent Copilot cloud utilise votre invite, vos commentaires et le code du référentiel comme contexte lors de la génération de modifications suggérées. L’agent a également accès à la recherche de code sémantique, ce qui lui permet de trouver du code pertinent en fonction de la signification plutôt que des correspondances de texte exactes, ce qui lui permet d’effectuer des tâches plus rapidement.

Pour améliorer Copilotles performances, envisagez d’implémenter des instructions personnalisées Copilot 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 pour Agent Copilot cloud, consultez :

  •         [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)
    

Utiliser Agent Copilot cloud en tant qu’outil, et non en remplacement

Bien qu’il Agent Copilot cloud puisse s’agir d’un outil puissant pour générer du code et de la documentation, il est important de l’utiliser comme outil, plutôt que de remplacer 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 qu’il Agent Copilot cloud puisse générer du code syntactiquement correct, il peut ne pas toujours être sécurisé. 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 Agent Copilot cloudGitHub.com, nous vous recommandons de fournir des commentaires en cliquant sur l’icône vers le bas sous 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é

          Agent Copilot cloud est une nouvelle technologie et est susceptible d’évoluer au fil du 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 Agent Copilot cloud

Par conception, Agent Copilot cloud est construit avec plusieurs mesures d'atténuation pour vous assurer que vos données et votre base de code sont sécurisées. 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

          Agent Copilot cloud répond uniquement aux interactions (par exemple, l’affectation de l’agent ou le commentaire) à partir d’utilisateurs disposant d’un accès en écriture au référentiel.

          GitHub Actions les flux de travail déclenchés en réponse aux requêtes de tirage initiées par Agent Copilot cloud nécessitent l'approbation d'un utilisateur ayant un accès en écriture au référentiel avant de s'exécuter.

L’agent filtre les caractères masqués, qui ne sont pas affichés sur GitHub.com, ce qui peut autrement permettre aux utilisateurs de masquer des instructions dangereuses dans les commentaires ou d'émettre 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 fonctionne 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 ne peut pousser que vers une seule branche : la branche de la pull request existante lorsqu’il est déclenché via @copilot, ou sinon vers une nouvelle branche copilot/ branch. Cela signifie que Copilot ne peut pas push directement vers votre branche par défaut (par exemple main).

          Agent Copilot cloud n’a pas accès aux secrets ou aux variables de l’organisation 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.

Garantir la traçabilité

          Agent Copilot cloudles commits sont créés par Copilot, avec la personne qui a initié la tâche marquée comme co-auteur(e). Cela facilite l’identification du code généré par l’agent et celui qui a lancé la tâche.

          Agent Copilot cloudles validations sont signées, de sorte qu’elles apparaissent sous la forme « Vérifié » sur GitHub. Cela garantit que les validations ont été effectuées par Agent Copilot cloud et n’ont pas été modifiées.

Chaque message de validation inclut un lien vers les journaux de session de l’agent. Cela vous donne un lien permanent depuis n’importe quel commit rédigé par un agent vers les journaux de session complets, afin que vous puissiez comprendre pourquoi Copilot a effectué une modification lors de la révision du code ou retracer cela plus tard à des fins d'audit.

Prévention de l’exfiltration de données

Par défaut, Agent Copilot cloud un pare-feu est activé pour empêcher l’exfiltration du code ou d’autres données sensibles, accidentellement ou en raison d’une entrée utilisateur malveillante.

Pour plus d’informations, consultez « Personnalisation ou désactivation du pare-feu pour l’agent cloud GitHub 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, Agent Copilot cloud 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
            **: recherche les types connus de secrets afin de s'assurer que les secrets ne sont pas introduits 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.
    

Limitations de Agent Copilot cloud

Selon des facteurs tels que votre codebase et vos données d’entrée, vous pouvez rencontrer différents niveaux de performances lors de l’utilisation Agent Copilot cloud. Les informations suivantes sont conçues pour vous aider à comprendre les limitations système et les concepts clés relatifs aux performances à mesure qu’elles s’appliquent.Agent Copilot cloud

Étendue limitée

Le modèle de langage utilisé par Agent Copilot cloud a été formé sur un grand corps de code, mais a toujours une étendue limitée et peut ne pas être en mesure de gérer certaines structures de code ou 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

Le modèle de langage utilisé par Agent Copilot cloudles données d’apprentissage et le contexte collectés par le modèle de langage volumineux peuvent contenir des biais et des erreurs qui peuvent être perpétués par l’outil. En outre, Agent Copilot cloud il peut être biaisé vers certains langages de programmation ou styles de codage, ce qui peut entraîner des suggestions non optimales ou incomplètes.

Risques liés à la sécurité

          Agent Copilot cloud génère du code et du langage naturel en fonction du contexte d’un problème ou d’un commentaire au sein d’un référentiel, ce qui peut potentiellement exposer des informations sensibles ou des vulnérabilités si elles ne sont pas utilisées avec soin. Veillez à passer en revue toutes les sorties générées par l’agent soigneusement avant la fusion.

Code erroné

          Agent Copilot cloud peut générer du code qui semble être valide, mais peut ne pas réellement être sémantiquement ou syntactiquement correct ou peut ne pas refléter avec précision 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

          Agent Copilot cloud peut générer du code qui correspond ou est très similaire au code disponible publiquement, même si la politique « Suggestions correspondant au code public » est définie sur « Bloquer ». Consultez « [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code) ».

Si cela se produit, 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 cloud Copilot

          Agent Copilot cloud 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 cloud 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 cloud 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 Agent Copilot cloud, consultez : * Intégration de l’agent cloud Copilot à Teams * Intégration de l’agent cloud Copilot à Linear * Intégration de l’agent cloud Copilot à Slack