Använda agentkunskaper med GitHub Copilot i SQL Server Management Studio

Agentkunskaper är återanvändbara uppsättningar med instruktioner som instruerar GitHub Copilot hur du utför specifika uppgifter. Varje färdighet är en markdown-fil som du definierar en gång, vilket sparar tid och säkerställer konsekvent beteende i arbetsflödet. Tänk på kompetenser som en körbok, inte som en enda jättelik prompt. När du använder Agent-läge (förhandsversion) identifierar och tillämpar Copilot automatiskt relevanta kunskaper baserat på vad du frågar.

Note

GitHub Copilot agentläget i SQL Server Management Studio (SSMS) är för närvarande i förhandsversion.

Till skillnad från anpassade instruktioner, som anger allmänna inställningar för varje svar, ger färdigheter fokuserad uppgiftsspecifik vägledning som alla agenter kan identifiera och använda. Definiera en färdighet en gång, och den tillämpas konsekvent mellan sessioner och i hela ditt team.

Förutsättningar

Så här fungerar agentkunskaper

När du använder Agentläget genomsöker Copilot de kända platser där färdigheter finns i ditt repo och din användarprofil. Om en färdighets beskrivning matchar avsikten med din begäran aktiverar Copilot färdigheten och tillämpar dess instruktioner som extra kontext. När en färdighet är aktiv visas namnet i chatten så att du vet att den tillämpas.

Copilot bestämmer vilka färdigheter som ska aktiveras baserat på fältet description i varje färdighets frontmatter. En tydlig beskrivning av nyckelord hjälper Copilot identifiera när en färdighet är relevant.

Färdighetsplatser

Copilot upptäcker färdigheter från följande platser:

Scope Paths Detaljer
Arbetsyta (delas med ditt team) .github/skills/, .claude/skills/, .agents/skills/ Lagras i lagringsplatsens rot. Bekräftad för källkontroll så att alla teammedlemmar får samma kunskaper.
Personligt (endast din profil) ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ Gäller för alla dina projekt. Har inte checkats in på någon lagringsplats.

Arbetsytekunskaper har företräde för projektspecifika konventioner. Personliga kunskaper är användbara för arbetsflöden och inställningar som följer med dig mellan olika projekt.

Skapa en färdighet

Du kan skapa en färdighet från kompetenspanelen i SSMS eller manuellt i filsystemet.

Skapa en färdighet från kompetenspanelen

  1. I fönstret Copilot Chat väljer du ikonen Tools.
  2. Välj panelen Kunskaper .
  3. Välj knappen i + panelen Kunskaper.
  4. Välj omfång: en arbetsytefärdighet (lagras på lagringsplatsen) eller en personlig färdighet (lagras i din användarprofil).
  5. Ange ett namn på färdigheten. Namnet blir katalognamnet och måste endast använda gemener, siffror och bindestreck.
  6. SSMS genererar en SKILL.md mall i den nya kunskapskatalogen. Redigera mallen och lägg till dina instruktioner i filen.

Skapa en färdighet manuellt

  1. Skapa en kompetenskatalog på rätt plats. För en färdighet för arbetsyta skapar du .github/skills/ i roten av din lagringsplats.
  2. Skapa en underkatalog för dina kunskaper. Varje färdighet måste ha en egen katalog. Till exempel: .github/skills/tsql-style-guide/.
  3. Skapa en SKILL.md fil i kunskapskatalogen.
  4. Du kan också lägga till stödfiler som skript, referensdokument eller exempelutdata.

Kompetenskatalogstruktur

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

Varje SKILL.md fil måste innehålla YAML-frontmatter följt av Markdown-instruktioner. Frontmattern tillhandahåller metadata Copilot använder för att identifiera och aktivera färdigheten.

Frontmatter-egenskaper

Property Obligatoriskt Description
name Yes Endast gemener, siffror och bindestreck. Måste matcha det överordnade katalognamnet. Maximalt 64 tecken.
description Yes Beskriver vad kunskapen gör och när den ska användas. Maximalt 1 024 tecken. Inkludera specifika nyckelord som signalerar när färdigheten är relevant.
license No Namn på licensen eller en referens till en licensfil som medföljer skillen.
compatibility No Miljökrav, till exempel den avsedda produkten eller nödvändiga systemfunktioner.
metadata No Godtyckliga nyckel/värde-par för andra metadata.
allowed-tools No Utrymmesavgränsad lista över verktygsnamn som färdigheten är förgodkänd att använda.

Hantera kompetenser från panelen Kompetenser

Välj ikonen Tools i Copilot Chat-fönstret för att öppna panelen Skills. Panelen visar alla kunskaper Copilot identifierar för din aktuella session.

Från panelen kan du:

  • Redigera: Öppna en färdighetsfil SKILL.md direkt i redigeraren från ... menyn.
  • Öppna filplats: Hoppa till katalogen skill på disken.
  • Sök: Filtrera kunskaper efter namn eller nyckelord.

Panelen visar även diagnostik för eventuella kunskapskonfigurationsfel, så att du snabbt kan identifiera och åtgärda problem.

Tips för att skriva om färdigheter på ett effektivt sätt

  • Håll SKILL.md koncist: Sikta på under 300 linjer. Flytta detaljerat referensmaterial till separata filer i relevanta underkataloger.
  • Skriv en nyckelordsrik beskrivning: Copilot använder description för att avgöra när färdigheten ska aktiveras. Inkludera specifika uppgifter, objekt och scenarier där kunskapen gäller.
  • Använd numrerade steg för procedurer: Stegvisa instruktioner är enklare för modellen att följa än prosa.
  • Ta med exempel på förväntade utdata: Visa exempelkod, tabellformat eller kommentarsblock så att modellen vet hur "klar" ser ut.
  • Ange explicita gränser: Tala om för färdigheten vad du inte ska göra. Till exempel: "Rekommendera inte att ta bort index på tabeller med mer än 10 miljoner rader utan att först rapportera skrivvolymen."
  • Referensstödmaterial: Lagra relaterat innehåll och skript i filer i references\, scripts\eller examples\ och peka på specifikt innehåll från kunskapen.

Exempel på SQL-kunskaper

Följande exempel visar hur du skriver färdigheter för vanliga SQL Server uppgifter. Använd dem som startpunkter och anpassa dem till teamets konventioner.

Verifiering av index

Granska befintliga index innan du rekommenderar nya för att undvika duplicering.

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

Initial bedömning av agentjobbfel

Analysera historiken för misslyckade SQL Agent-jobb och ge rekommendationer för att åtgärda rotproblemet.

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