Créer des agents GitHub Copilot personnalisés dans Visual Studio Code

Terminée

Les agents personnalisés sont des assistants IA spécialisés que vous configurez pour des rôles ou des flux de travail particuliers dans Visual Studio Code. Chaque agent encapsule un ensemble d’instructions et d’autorisations d’outil qui orientent le comportement de GitHub Copilot pour agir comme un type spécifique d’expert. Lorsque vous sélectionnez un agent personnalisé dans GitHub Copilot Chat, l’IA adopte la personne de cet agent, suit ses instructions et utilise uniquement les outils que vous lui avez attribués.

Qu’est-ce que les agents GitHub Copilot personnalisés ?

Un agent personnalisé est une configuration personnalisée qui transforme GitHub Copilot Chat en assistant spécifique au rôle. Au lieu de compter sur un comportement à usage général, un agent personnalisé fonctionne en fonction des instructions et des contraintes que vous définissez. Par exemple, vous pouvez créer un agent « Réviseur de sécurité » qui analyse le code des vulnérabilités, un agent « Enregistreur de tests » qui se concentre sur la génération de tests unitaires ou un agent « Planificateur » qui produit des plans d’implémentation sans modifier de fichiers.

Les agents personnalisés ont été introduits en tant que fonctionnalité avancée dans Visual Studio Code (disponible à partir de Visual Studio Code version 1.106, précédemment appelée « modes de conversation personnalisés »). Ils donnent aux développeurs un contrôle précis sur le fonctionnement de l’IA dans différents contextes de développement. Chaque agent apparaît dans la liste déroulante des agents GitHub Copilot Chat, où vous pouvez le sélectionner pour changer le mode de l’IA à tout moment.

Les agents personnalisés peuvent être stockés dans deux emplacements :

  • Agents d’espace de travail : stockés dans le .github/agents/ dossier de votre référentiel. Ces agents sont partagés avec votre équipe par le biais du contrôle de version, ce qui garantit que tout le monde sur le projet a accès aux mêmes assistants spécialisés.

  • Agents de profil utilisateur : stockés dans le dossier des invites de votre profil utilisateur Visual Studio Code. Ces agents sont personnels et disponibles dans tous vos espaces de travail, utiles pour les agents qui reflètent vos préférences de flux de travail individuelles.

Examiner le fonctionnement des agents personnalisés

Un agent personnalisé est un fichier Markdown avec une .agent.md extension. Visual Studio Code détecte automatiquement les .agent.md fichiers dans le dossier de votre espace de .github/agents/ travail (ou dans votre profil utilisateur) et les charge en tant qu’agents disponibles dans l’interface GitHub Copilot Chat.

Chaque fichier d’agent se compose de deux parties :

  • En-tête frontmatter YAML : cette section spécifie les métadonnées, notamment le nom de l’agent, une description qui apparaît dans l’interface de discussion, les outils qu’il peut utiliser, une préférence optionnelle de modèle et des configurations de transfert pour la connexion à d’autres agents.

  • Corps Markdown : cette section contient les instructions de l’agent et le contexte. Le contenu est ajouté à chaque invite utilisateur chaque fois que l’agent est actif, en guidant la façon dont GitHub Copilot interprète et répond aux demandes. Vous écrivez ces instructions dans le même style de langage naturel utilisé pour les fichiers d’instructions personnalisés.

Champs frontmatter de l'agent

Le frontmatter YAML prend en charge les champs suivants pour la configuration du comportement de l’agent :

Champ Descriptif
description Une courte description s'affiche sous forme de texte d'espace réservé dans le champ de saisie du chat lorsque l'agent est sélectionné.
name Nom d'affichage facultatif. S’il est omis, le nom de fichier (sans .agent.md) est utilisé.
tools Un tableau d’outils que l’agent peut utiliser, comme ['read', 'edit', 'search']. L’omission de ce champ donne accès à tous les outils disponibles.
model Modèle IA préféré. Il peut s’agir d’une chaîne d’ID de modèle unique ou d’un tableau d’ID de modèle pour le secours (par exemple, ['o4-mini', 'gpt-4.1']).
agents Tableau de noms d’agents qui peuvent être appelés en tant que sous-agents par cet agent.
handoffs Tableau de configurations de transfert qui définissent des transitions vers d’autres agents (couverts dans l’unité suivante).
argument-hint Texte d'indication affiché dans le champ de saisie du chat, décrivant ce que l'utilisateur doit taper comme entrée à l'agent.
user-invokable Valeur booléenne qui contrôle si l’agent apparaît dans la liste déroulante des agents. Réglez false pour créer des agents qui ne peuvent être appelés que sous-agents par d’autres agents. La valeur par défaut est true.
disable-model-invocation Lorsqu’il est défini sur true, l’agent n’envoie pas d’invites au modèle de langage. Utile pour les agents qui effectuent des actions uniquement par le biais d’outils.
target Spécifie l’environnement d’exécution de l’agent : client (s’exécute dans Visual Studio Code, la valeur par défaut) ou cloud (s’exécute dans le cloud).
mcp-servers Objet définissant des serveurs MCP (Model Context Protocol) auxquels l’agent doit avoir accès. Les serveurs MCP étendent les fonctionnalités de l’agent en se connectant à des outils externes et à des sources de données.

L’exemple suivant montre la structure d’un fichier d’agent personnalisé à l’aide de plusieurs champs suivants :

---
description: Reviews code for security vulnerabilities and suggests improvements
tools: ['search', 'read']
---
# Security Reviewer

You are a senior security engineer. When the user provides code or asks you to review files, analyze the code for common security vulnerabilities including:

- SQL injection
- Cross-site scripting (XSS)
- Authentication and authorization flaws
- Insecure data handling
- Hardcoded credentials or secrets

Provide your findings as a structured list with severity levels (Critical, High, Medium, Low). For each finding, explain the vulnerability, show the affected code, and suggest a secure alternative.

Do not modify any files. Your role is advisory only.

Lorsqu’un développeur sélectionne cet agent dans GitHub Copilot Chat, toutes les interactions utilisent ces instructions. L’agent « sait » doit se concentrer sur l’analyse de sécurité et ne tente pas de modifier les fichiers, car ses instructions et son ensemble d’outils le limitent aux opérations en lecture seule.

Définir des fonctionnalités d’agent avec des outils

Le tools champ du frontmatter YAML contrôle les actions que l’agent peut effectuer. Les outils déterminent si l’agent peut lire des fichiers, modifier du code, rechercher la base de code, exécuter des commandes de terminal ou accéder à d’autres fonctionnalités. En personnalisant la liste des outils, vous assurez que chaque agent effectue uniquement des actions pertinentes pour son rôle.

Les outils courants sont les suivants :

Outil Descriptif
read Lire le contenu du fichier à partir de l’espace de travail
edit Modifier des fichiers dans l’espace de travail
search Rechercher dans des fichiers d’espace de travail
fetch Récupérer du contenu à partir d’URL
terminal Exécuter des commandes dans le terminal
agent Appeler d’autres agents en tant que sous-agents

Si vous omettez entièrement le tools champ, l’agent a par défaut accès à tous les outils standard. Toutefois, la description explicite des outils est une bonne pratique, car elle crée des limites claires pour le comportement de l’agent. Un agent de planification qui ne doit pas modifier le code ne doit spécifier que ['search', 'read', 'fetch'], tandis qu’un agent d’implémentation qui doit écrire du code inclurait ['search', 'read', 'edit', 'terminal'].

Note

Si un outil répertorié dans la configuration de l’agent n’est pas disponible dans l’environnement actuel, il est ignoré en mode silencieux. Cela signifie que vous pouvez définir des agents avec des outils qui peuvent uniquement être disponibles dans certaines configurations sans provoquer d’erreurs.

Sous-agents

Le agents champ du frontmatter YAML permet à un agent d’appeler d’autres agents en tant que sous-agents. Un sous-agent est un agent qu’un autre agent appelle pour gérer une tâche subordonnée, puis incorpore le résultat dans sa propre réponse. Ce comportement diffère d’un transfert, qui confie le contrôle à l’utilisateur. Un appel de sous-agent se produit lors du traitement de l’agent et renvoie automatiquement le résultat à l’agent appelant.

Par exemple, un agent « Développeur principal » peut appeler un sous-agent « Réviseur de sécurité » pour vérifier un extrait de code, recevoir les résultats, puis incorporer ces résultats dans sa réponse finale, tout au sein d’une seule interaction.

Pour configurer des sous-agents, répertoriez les noms de sous-agents dans le champ agents :

---
description: Lead developer agent that coordinates with specialists
tools: ['search', 'read', 'edit']
agents: ['security-reviewer', 'test-writer']
---

Les agents destinés uniquement à être utilisés en tant que sous-agents peuvent être définis user-invokable: false afin qu’ils n’apparaissent pas dans la liste déroulante des agents, ce qui permet de nettoyer l’interface.

Note

Pour utiliser des sous-agents, incluez l’outil agent dans la liste de tools l’agent appelant (ou omettez entièrement le tools champ pour activer tous les outils). L’outil agent permet à un agent d’appeler un autre par programme pendant sa réponse.

Agents au niveau de l’organisation

Pour les équipes qui gèrent des agents partagés entre plusieurs référentiels, GitHub prend en charge les agents au niveau de l’organisation. Ces agents sont configurés au niveau de l’organisation GitHub et apparaissent automatiquement en même temps que les agents d’espace de travail et de profil utilisateur dans Visual Studio Code lorsque vous êtes connecté à un compte GitHub avec accès à l’organisation.

Les agents au niveau de l’organisation garantissent la cohérence entre les équipes. Par exemple, une équipe de sécurité peut publier un agent « Réviseur de sécurité » partagé que chaque référentiel de l’organisation peut utiliser, garantissant que les mêmes critères de révision de sécurité sont appliqués partout sans exiger que chaque référentiel définisse son propre agent.

Compatibilité du format de l’agent

Visual Studio Code reconnaît les fichiers d'agent au format .agent.md en tant que configuration principale. En outre, Visual Studio Code prend en charge les fichiers d’agent de style Claude qui suivent le format de l’agent Claude Code. Si vous avez déjà des configurations d’agent à partir de Claude Code, elles fonctionnent dans GitHub Copilot Chat de Visual Studio Code sans modification. Cette compatibilité croisée simplifie la migration pour les équipes qui utilisent plusieurs outils IA.

Agents intégrés et personnalisés

Visual Studio Code inclut plusieurs agents intégrés qui fournissent des configurations à usage général pour la conversation. Ces agents incluent l’agent « GitHub Copilot » par défaut et les agents spécialisés pour les tâches courantes. Les agents personnalisés étendent ce système en vous permettant de définir vos propres rôles avec des instructions et des configurations d’outils spécifiques au projet.

Les agents personnalisés apparaissent dans la liste déroulante des agents GitHub Copilot Chat en même temps que les agents intégrés. Vous pouvez basculer entre n’importe quel agent à tout moment pour modifier le fonctionnement de l’IA. Cette flexibilité vous permet de passer d’un mode de travail à l’autre ( planification, codage, révision, test) sans quitter l’interface GitHub Copilot Chat.

L’avantage clé des agents personnalisés par rapport aux agents intégrés est une spécificité. Un agent de révision de code intégré applique les meilleures pratiques générales, tandis que votre agent « Réviseur de code » personnalisé peut appliquer la liste de contrôle de révision spécifique de votre équipe, référencer les décisions architecturales de votre projet et se concentrer sur les modèles et les anti-modèles qui importent le plus dans votre codebase.

Étapes de création d’un agent personnalisé

Procédez comme suit pour créer un agent personnalisé dans Visual Studio Code :

  1. Ouvrez le menu des agents : dans le volet Conversation Copilot GitHub, ouvrez la liste déroulante agents (qui affiche normalement le nom de l’agent actuel). Sélectionnez Configurer des agents personnalisés , puis choisissez Créer un agent personnalisé. Vous pouvez également exécuter la Chat: New Custom Agent commande à partir de la palette de commandes (Ctrl+Maj+P).

  2. Choisissez l’étendue : sélectionnez l’emplacement où stocker le fichier de l’agent. Choisissez Espace de travail dans lequel créer le fichier .github/agents/ (le rendant disponible pour votre équipe par le biais du contrôle de version), ou choisissez Profil utilisateur pour le rendre personnel et disponible dans tous vos espaces de travail.

  3. Nommez l’agent : entrez un nom de fichier descriptif pour l’agent. Ce nom apparaît comme nom par défaut dans la liste déroulante des agents. Utilisez un nom qui indique clairement le rôle de l’agent, tel que planner, code-reviewerou test-writer.

  4. Définissez les métadonnées de l’agent : dans le frontmatter YAML du fichier nouvellement créé .agent.md , configurez les propriétés de l’agent. Définissez un description (ce texte apparaît sous forme de texte d’espace réservé dans l’entrée de conversation lorsque l’agent est sélectionné), spécifiez le tools auquel l'agent doit avoir accès, et éventuellement définissez un model préféré ou configurez handoffs pour d'autres agents.

  5. Écrivez les instructions de l’agent : dans le corps du fichier sous le frontmatter YAML, fournissez les instructions personnalisées de l’agent. Ces instructions définissent la personne, l’expertise et les instructions comportementales de l’agent. Écrivez-les dans Markdown à l’aide d’un langage clair et spécifique qui indique à l’IA comment aborder les tâches, sur quoi se concentrer et quelles contraintes suivre.

  6. Enregistrer et activer : Enregistrer le fichier. L’agent personnalisé apparaît immédiatement dans le menu déroulant des agents GitHub Copilot Chat (à condition que user-invokable soit true, ce qui est la valeur par défaut). Sélectionnez l’agent pour commencer à l’utiliser.

Conseil / Astuce

Vous pouvez taper /agents dans GitHub Copilot Chat comme raccourci rapide pour afficher et basculer entre tous les agents disponibles, notamment les agents intégrés, l’espace de travail, le profil utilisateur et les agents au niveau de l’organisation.

Compétences de l’agent

Les compétences de l’agent sont un concept connexe mais distinct des agents personnalisés. Bien que les agents définissent une personne avec des instructions et des outils, les compétences de l’agent (définies dans SKILL.md les fichiers) décrivent des fonctionnalités spécifiques ou des domaines d’expertise sur lesquels un agent peut tirer parti. Les compétences fournissent des métadonnées structurées sur ce qu’un agent sait et peut faire. Visual Studio Code prend en charge les compétences dans le cadre de son système de personnalisation plus large. Les compétences sont généralement définies dans votre espace de travail et détectées automatiquement par GitHub Copilot pour améliorer les réponses de l’agent avec des connaissances spécialisées.

Exemples d’agents personnalisés

Les exemples suivants illustrent comment définir des agents pour des rôles de développement courants.

Agent « Planificateur »

Un agent planificateur se concentre sur l’analyse des exigences et la génération de plans d’implémentation sans modifier de code. Il utilise uniquement des outils en lecture seule et inclut un transfert à un agent d’implémentation pour le moment où le plan est prêt à s’exécuter.

---
description: Generates high-level implementation plans without writing code
tools: ['search', 'read', 'fetch']
handoffs:
  - label: Start Implementation
    agent: implementer
    prompt: Now implement the plan outlined above.
    send: false
---
# Planner

You are a senior software architect. When the user describes a feature or change, analyze the request and generate a detailed implementation plan.

Your plan should include:
1. A summary of the feature requirements.
2. A list of files that need to be created or modified.
3. Step-by-step implementation tasks in logical order.
4. Any potential risks or considerations.

Do not write or modify any code. Focus on planning only. Ask clarifying questions if the requirements are ambiguous.

Agent « Réviseur de code »

Un agent du réviseur de code examine le code pour les problèmes de qualité, les vulnérabilités de sécurité et l’adhésion aux meilleures pratiques. Il utilise des outils de lecture et de recherche, mais ne modifie pas directement les fichiers.

---
description: Reviews code for bugs, security issues, and style compliance
tools: ['search', 'read']
---
# Code Reviewer

You are an experienced code reviewer. When the user asks you to review code, examine it for:

- Bugs and logical errors
- Security vulnerabilities (SQL injection, XSS, authentication flaws)
- Performance issues
- Naming convention violations
- Missing error handling
- Code duplication

Present your findings as a structured review with severity levels. For each issue, explain the problem, show the affected code, and suggest an improvement. End with an overall assessment of code quality.

Ces exemples peuvent être adaptés pour répondre aux besoins spécifiques de votre équipe. Le principe clé consiste à définir des instructions claires qui concentrent l’agent sur une tâche spécifique et configurent la liste des outils pour qu’il corresponde aux responsabilités de l’agent.

Résumé

Les agents personnalisés dans Visual Studio Code vous permettent de définir des personnages IA spécialisés avec des instructions et des autorisations d’outil personnalisées. En créant des .agent.md fichiers dans votre espace de travail ou profil utilisateur, vous pouvez créer des agents pour des rôles de développement spécifiques : planification, implémentation, révision, test, etc. Chaque agent fonctionne dans les limites que vous définissez, en utilisant uniquement les outils que vous autorisez et en suivant les instructions que vous fournissez. Les fonctionnalités avancées telles que les sous-agents, les agents au niveau de l’organisation et l’intégration du serveur MCP étendent ce que les agents peuvent accomplir. Ces fonctionnalités vous donnent un contrôle précis sur le comportement de GitHub Copilot dans différentes phases de votre workflow de développement.