Utiliser les compétences de l’agent avec GitHub Copilot dans SQL Server Management Studio

Les compétences de l’agent sont des ensembles réutilisables d’instructions qui indiquent GitHub Copilot comment effectuer des tâches spécifiques. Chaque compétence est un fichier markdown que vous définissez une seule fois, ce qui permet d’économiser du temps et de garantir un comportement cohérent dans votre flux de travail. Voyez les compétences comme un guide procédural, et non comme un unique prompt. Lorsque vous utilisez ModeAgent (préversion), Copilot découvre et applique automatiquement les compétences pertinentes en fonction de ce que vous demandez.

Note

Le mode Agent de GitHub Copilot dans SQL Server Management Studio (SSMS) est actuellement en préversion.

Contrairement aux instructions personnalisées, qui définissent des préférences générales pour chaque réponse, les compétences fournissent des instructions spécifiques aux tâches ciblées que n’importe quel agent peut découvrir et utiliser. Définissez une compétence une seule fois, et elle s’applique de manière cohérente entre les sessions et l’ensemble de votre équipe.

Prerequisites

Fonctionnement des compétences de l’agent

Lorsque vous utilisez le mode Agent, Copilot analyse les emplacements de compétence connus pour votre référentiel et votre profil utilisateur. Si la description d'une compétence correspond à l'intention de votre demande, Copilot active la compétence et applique ses instructions en tant que contexte supplémentaire. Lorsqu’une compétence est active, son nom apparaît dans la conversation pour que vous sachiez qu’elle est appliquée.

Copilot détermine les compétences à activer en fonction du champ description dans le frontmatter de chaque compétence. Une description claire et riche en mots clés permet d’identifier Copilot quand une compétence est pertinente.

Emplacements des compétences

Copilot découvre des compétences à partir des emplacements suivants :

Étendue Chemins Détails
Espace de travail (partagé avec votre équipe) .github/skills/, .claude/skills/, .agents/skills/ Stocké dans la racine de votre référentiel. Engagé dans le contrôle de code source afin que tous les membres de l’équipe obtiennent les mêmes compétences.
Personnel (votre profil uniquement) ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ S’applique à tous vos projets. Non enregistré dans aucun dépôt.

Les compétences de l’espace de travail sont prioritaires pour les conventions spécifiques au projet. Les compétences personnelles sont utiles pour les flux de travail et les préférences qui vous accompagnent dans les projets.

Créer une compétence

Vous pouvez créer une compétence à partir du volet Compétences dans SSMS ou manuellement dans votre système de fichiers.

Créer une compétence à partir du volet Compétences

  1. Dans la fenêtre Copilot Chat, sélectionnez l’icône Tools.
  2. Sélectionnez le panneau Compétences .
  3. Dans le volet Compétences, sélectionnez le + bouton.
  4. Choisissez l’étendue : une compétence d’espace de travail (stockée dans le référentiel) ou une compétence personnelle (stockée dans votre profil utilisateur).
  5. Entrez un nom pour la compétence. Le nom devient le nom du répertoire et doit utiliser uniquement des lettres minuscules, des chiffres et des traits d’union.
  6. SSMS génère un SKILL.md modèle dans le nouveau répertoire de compétences. Modifiez le modèle et ajoutez vos instructions au fichier.

Créer une compétence manuellement

  1. Créez un répertoire de compétences à l’emplacement approprié. Pour une compétence d’espace de travail, créez .github/skills/ à la racine de votre référentiel.
  2. Créez un sous-répertoire pour votre compétence. Chaque compétence doit avoir son propre répertoire. Par exemple : .github/skills/tsql-style-guide/.
  3. Créez un SKILL.md fichier dans le répertoire des compétences.
  4. Si vous le souhaitez, ajoutez des fichiers de prise en charge tels que des scripts, des documents de référence ou des exemples de sortie.

Structure du répertoire de compétences

your-repo/
└── .github/
    └── skills/
        └── index-verification/
        │   ├── SKILL.md          # Required: metadata and instructions
        │   └── references/       # Optional: supplementary documentation
        └── agent-job-failure-triage/
            ├── SKILL.md
            └── examples/         # Optional: example scripts

format SKILL.md

Chaque SKILL.md fichier doit contenir un frontmatter YAML suivi des instructions Markdown. Le frontmatter fournit les métadonnées que Copilot utilise pour découvrir et activer la compétence.

Propriétés du frontmatter

Propriété Obligatoire Description
name Yes Lettres minuscules, chiffres et traits d’union uniquement. Doit correspondre au nom du répertoire parent. Maximum 64 caractères.
description Yes Décrit ce que fait la compétence et quand l’utiliser. 1 024 caractères maximum. Incluez des mots clés spécifiques qui signalent lorsque la compétence est pertinente.
license No Nom de la licence ou référence à un fichier de licence groupé avec la compétence.
compatibility No Exigences de l’environnement, telles que le produit prévu ou les fonctionnalités système requises.
metadata No Paires clé-valeur arbitraires pour d’autres métadonnées.
allowed-tools No Liste des noms d’outils, séparés par des espaces, que la compétence est préautorisée à utiliser.

Gérer les compétences à partir du panneau Compétences

Sélectionnez l’icône Tools dans la fenêtre Copilot Chat pour ouvrir le panneau Skills. Le panneau affiche toutes les compétences que Copilot découvre pour la session en cours.

Dans le panneau, vous pouvez :

  • Modifier : ouvrez le fichier d’une SKILL.md compétence directement dans l’éditeur à partir du ... menu.
  • Ouvrez l’emplacement du fichier : accédez au répertoire des compétences sur le disque.
  • Recherche : filtrer les compétences par nom ou mot clé.

Le panneau présente également les diagnostics pour toutes les erreurs de configuration des compétences, ce qui vous permet d’identifier et de résoudre rapidement les problèmes.

Conseils pour l’écriture de compétences efficaces

  • Restez SKILL.md concis : Visez moins de 300 lignes. Déplacez des documents de référence détaillés pour séparer les fichiers dans les sous-répertoires pertinents.
  • Write une description riche en mots clés : Copilot utilise le description pour décider quand activer la compétence. Incluez les tâches, objets et scénarios spécifiques dans lesquels la compétence s’applique.
  • Utilisez des étapes numérotées pour les procédures : les instructions pas à pas sont plus faciles à suivre pour le modèle que la prose.
  • Incluez des exemples du résultat attendu : montrez des exemples de code, des formats de tableau ou des blocs de commentaires afin que le modèle sache à quoi doit ressembler le résultat final.
  • Définir des limites explicites : indiquez à la compétence ce qu’il ne faut pas faire. Par exemple, « Ne recommandez pas de supprimer des index sur des tables de plus de 10 millions de lignes sans d’abord indiquer le volume d’écriture. »
  • Ressources de référence : stockez le contenu et les scripts associés dans des fichiers situés dans references\, scripts\ ou examples\, et référencez un contenu spécifique depuis la compétence.

Exemples de compétences SQL

Les exemples suivants montrent comment formuler des compétences pour les tâches courantes dans SQL Server. Utilisez-les comme points de départ et adaptez-les aux conventions de votre équipe.

Vérification de l’index

Passez en revue les index existants avant de recommander de nouveaux index pour éviter la duplication.

---
name: index-verification
description: Use when an index recommendation has been generated and must be validated before implementation. Verifies workload benefit, redundancy, write overhead, storage impact, and existing index coverage.
---

# Index Verification

## Use this skill when

- A missing index recommendation exists
- An agent generated an index recommendation
- Query tuning suggests adding an index
- A user asks whether an index should be created

## Never assume

- Missing index DMVs are recommendations, not requirements.
- Do not recommend index creation until validation is complete.

## Verification Checklist

### 1. Check Existing Indexes

Determine whether:

- An equivalent index already exists
- A wider index already covers the workload
- Included columns already satisfy the query
- The recommendation duplicates another recommendation

### 2. Estimate Read Benefit

Evaluate:

- Query execution frequency
- Current execution cost
- Expected seek/selectivity improvement
- Number of affected queries

### 3. Evaluate Write Cost

Determine:

- Insert impact
- Update impact
- Delete impact
- Additional maintenance cost

### 4. Evaluate Storage Impact

Estimate:

- Index size on disk
- Memory pressure
- Replication impact

### 5. Make Recommendation

Return one of:

- Create index
- Modify existing index
- Consolidate with existing recommendation
- Reject recommendation

## Avoid

- Blindly trusting missing-index DMVs
- Creating overlapping indexes
- Recommending indexes for one-off queries
- Ignoring write-heavy workloads

## Output Format

Format output as a table: index name, columns, type, and recommendation (create / modify / consolidate / reject).

Triage des échecs de tâche de l’agent

Analysez l’historique des travaux SQL Agent ayant échoué et faites des recommandations pour résoudre le problème racine.

---
name: agent-job-failure-triage
description: Use when an automated job, workflow, maintenance task, or agent execution fails. Determines root cause and appropriate remediation while avoiding unsafe recovery actions.
---
# Agent Job Failure Triage

## Objective

Identify root cause before attempting remediation.

## First Rule

Never retry repeatedly without understanding why the job failed.

## Investigation Order

### 1. Collect Failure Details

Gather:

- Job name
- Error message
- Start time
- End time
- Retry history

### 2. Classify Failure

Determine whether failure is:

- Resource-related
- Permission-related
- Configuration-related
- Data-related
- Dependency-related
- Other or unknown

### 3. Check Recent Changes

Investigate:

- Deployments
- Configuration changes
- Schema changes
- Security changes
- Infrastructure changes

### 4. Determine Blast Radius

Identify:

- Data modified by job
- Schema modified by job
- Affected users or departments
- Downstream jobs
- SLA impact
- Data correctness risk

## Safe Actions

- Collect logs
- Validate dependencies
- Escalate when root cause is unknown

## Unsafe Actions

- Retry job
- Disable job
- Force-completing jobs
- Disabling validation checks
- Modifying production data to "make it pass"
- Restarting the SQL Agent service