Agentvaardigheden gebruiken met GitHub Copilot in SQL Server Management Studio

Agentvaardigheden zijn herbruikbare reeksen instructies die GitHub Copilot vertellen hoe specifieke taken moeten worden uitgevoerd. Elke vaardigheid is een Markdown-bestand dat u één keer definieert, tijd bespaart en consistent gedrag in uw werkstroom garandeert. Beschouw vaardigheden als een runbook, niet als één enorme prompt. Wanneer u Agentmodus (preview) gebruikt, detecteert en past Copilot automatisch relevante vaardigheden toe op basis van wat u vraagt.

Opmerking

GitHub Copilot Agent-modus in SQL Server Management Studio (SSMS) is momenteel in preview.

In tegenstelling tot aangepaste instructies, die algemene voorkeuren instellen voor elk antwoord, bieden vaardigheden gerichte taakspecifieke richtlijnen die elke agent kan detecteren en gebruiken. Definieer eenmaal een vaardigheid en is consistent van toepassing op sessies en in uw team.

Prerequisites

Hoe agentvaardigheden werken

Wanneer u de agentmodus gebruikt, scant Copilot de bekende locaties van vaardigheden die bij uw opslagplaats en gebruikersprofiel horen. Als de beschrijving van een vaardigheid overeenkomt met de intentie van uw aanvraag, activeert Copilot de vaardigheid en past u de instructies toe als extra context. Wanneer een vaardigheid actief is, wordt de naam weergegeven in de chat, zodat u weet dat deze wordt toegepast.

Copilot bepaalt welke vaardigheden moeten worden geactiveerd op basis van het description veld in de frontmatter van elke vaardigheid. Een duidelijke, uitgebreide beschrijving van trefwoorden helpt Copilot identificeren wanneer een vaardigheid relevant is.

Vaardigheidslocaties

Copilot vaardigheden ontdekt op de volgende locaties:

Scope Paths Details
Werkruimte (gedeeld met uw team) .github/skills/, .claude/skills/, .agents/skills/ Opgeslagen in de hoofdmap van uw repository. Zet zich in voor broncodebeheer, zodat alle teamleden dezelfde vaardigheden krijgen.
Persoonlijk (alleen uw profiel) ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ Is van toepassing op al uw projecten. Niet vastgelegd in een repository.

Werkruimtevaardigheden hebben voorrang op projectspecifieke conventies. Persoonlijke vaardigheden zijn handig voor werkstromen en voorkeuren die met u meereizen tussen projecten.

Een vaardigheid maken

U kunt een vaardigheid maken vanuit het deelvenster Vaardigheden in SSMS of handmatig in uw bestandssysteem.

Een vaardigheid maken vanuit het deelvenster Vaardigheden

  1. Selecteer in het venster Copilot Chat het pictogram Tools.
  2. Selecteer het deelvenster Vaardigheden .
  3. Selecteer de + knop in het deelvenster Vaardigheden.
  4. Kies het type: een werkruimtevaardigheid (opgeslagen in de repository) of een persoonlijke vaardigheid (opgeslagen in uw gebruikersprofiel).
  5. Voer een naam in voor de vaardigheid. De naam wordt de naam van de map en mag alleen kleine letters, cijfers en koppeltekens bevatten.
  6. SSMS genereert een SKILL.md sjabloon in de nieuwe map voor vaardigheden. Bewerk de sjabloon en voeg uw instructies toe aan het bestand.

Handmatig een vaardigheid maken

  1. Maak een map met vaardigheden op de juiste locatie. Voor een werkruimtevaardigheid maakt u .github/skills/ aan in de hoofdmap van uw repository.
  2. Maak een submap voor je skill. Elke vaardigheid moet een eigen map hebben. Bijvoorbeeld: .github/skills/tsql-style-guide/.
  3. Maak een SKILL.md-bestand in de skillmap.
  4. Voeg eventueel ondersteunende bestanden toe, zoals scripts, referentiedocumenten of voorbeelduitvoer.

Vaardighedendirectorystructuur

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

SKILL.md-formaat

Elk SKILL.md bestand moet YAML-frontmatter bevatten, gevolgd door Markdown-instructies. De frontmatter biedt de metagegevens die Copilot gebruikt om de vaardigheid te detecteren en te activeren.

Eigenschappen van frontmatter

Property Required Description
name Yes Alleen kleine letters, cijfers en koppeltekens. Moet overeenkomen met de naam van de bovenliggende map. Maximaal 64 tekens.
description Yes Beschrijft wat de vaardigheid doet en wanneer deze moet worden gebruikt. Maximaal 1024 tekens. Neem specifieke trefwoorden op die aangeven wanneer de vaardigheid relevant is.
license No Licentienaam of een verwijzing naar een licentiebestand dat is gebundeld met de vaardigheid.
compatibility No Omgevingsvereisten, zoals het beoogde product of de vereiste systeemmogelijkheden.
metadata No Willekeurige sleutel-waardeparen voor andere metagegevens.
allowed-tools No Een door spaties gescheiden lijst met namen van hulpprogramma's die de vaardigheid vooraf mag gebruiken.

Vaardigheden beheren vanuit het deelvenster Vaardigheden

Selecteer het pictogram Tools in het Copilot Chat venster om het deelvenster Skills te openen. In het deelvenster ziet u elke vaardigheid Copilot detecteert voor uw huidige sessie.

In het deelvenster kunt u het volgende doen:

  • Bewerken: Open het SKILL.md-bestand van elke vaardigheid rechtstreeks in de editor via het menu ....
  • Bestandslocatie openen: spring naar de vaardigheidsmap op de schijf.
  • Zoeken: Vaardigheden filteren op naam of trefwoord.

Het paneel geeft ook diagnostische gegevens weer voor eventuele fouten in de configuratie van vaardigheden, zodat u snel problemen kunt identificeren en oplossen.

Tips voor het schrijven van effectieve vaardigheden

  • Beknopt houdenSKILL.md: Streven naar minder dan 300 regels. Verplaats gedetailleerd referentiemateriaal naar aparte bestanden in relevante submappen.
  • Schrijf een trefwoordrijke beschrijving: Copilot gebruikt de description om te bepalen wanneer de vaardigheid moet worden geactiveerd. Neem de specifieke taken, objecten en scenario's op waarin de vaardigheid van toepassing is.
  • Gebruik genummerde stappen voor procedures: stapsgewijze instructies zijn eenvoudiger voor het model om te volgen dan proza.
  • Voorbeelden van verwachte uitvoer: Voorbeeldcode, tabelindelingen of opmerkingenblokken weergeven, zodat het model weet hoe 'gedaan' eruitziet.
  • Stel expliciete limieten in: Vertel de vaardigheid wat u niet moet doen. Bijvoorbeeld: 'Het is niet raadzaam om indexen in tabellen met meer dan 10 miljoen rijen te verwijderen zonder het schrijfvolume eerst te rapporteren'.
  • Naslagmateriaal: Gerelateerde inhoud en scripts opslaan in bestanden binnen references\, scripts\of examples\ en verwijzen naar specifieke inhoud uit de vaardigheid.

Voorbeeld van SQL-vaardigheden

In de volgende voorbeelden ziet u hoe u vaardigheden schrijft voor algemene SQL Server taken. Gebruik ze als uitgangspunt en pas ze aan de conventies van uw team aan.

Indexverificatie

Bekijk bestaande indexen voordat u nieuwe indexen aanbeveelt om duplicatie te voorkomen.

---
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).

Analyse van mislukte agenttaken

Analyseer de geschiedenis van mislukte SQL Agent-taken en voer aanbevelingen uit om het hoofdprobleem op te lossen.

---
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