Użyj funkcji agenta z GitHub Copilot w SQL Server Management Studio

Umiejętności agenta to zestawy instrukcji wielokrotnego użytku, które instruują GitHub Copilot, jak wykonywać określone zadania. Każda umiejętność to plik markdown, który definiujesz jeden raz, oszczędzając czas i zapewniając spójne zachowanie w przepływie pracy. Traktuj umiejętności jak instrukcję postępowania, a nie jak jedno gigantyczne polecenie. W przypadku korzystania z trybu Agent (wersja zapoznawcza) Copilot automatycznie odnajduje i stosuje odpowiednie umiejętności w oparciu o to, co pytasz.

Uwaga / Notatka

Tryb agenta GitHub Copilot w programie SQL Server Management Studio (SSMS) jest obecnie dostępny w wersji zapoznawczej.

W przeciwieństwie do instrukcji niestandardowych, które ustawiają ogólne preferencje dla każdej odpowiedzi, umiejętności zapewniają ukierunkowane wskazówki specyficzne dla poszczególnych zadań, które każdy agent może odnajdywać i używać. Zdefiniuj umiejętność raz, a będzie ona stosowana spójnie we wszystkich sesjach i w całym zespole.

Wymagania wstępne

Jak działają umiejętności agenta

Gdy używasz trybu agenta, Copilot przeszukuje znane lokalizacje umiejętności w repozytorium i profilu użytkownika. Jeśli opis umiejętności odpowiada intencji Twojego żądania, Copilot aktywuje tę umiejętność i stosuje jej instrukcje jako dodatkowy kontekst. Gdy umiejętność jest aktywna, jej nazwa pojawia się na czacie, aby wiedzieć, że jest ona stosowana.

Copilot decyduje, które umiejętności aktywować na podstawie pola description w sekcji frontmatter każdej umiejętności. Jasny, bogaty w słowa kluczowe opis pomaga Copilot określić, kiedy umiejętność jest odpowiednia.

Lokalizacje umiejętności

Copilot odkrywa umiejętności z następujących lokalizacji:

Scope Paths Szczegóły
Obszar roboczy (udostępniony zespołowi) .github/skills/, .claude/skills/, .agents/skills/ Przechowywane w katalogu głównym repozytorium. Zaangażowanie w kontrolę źródła, aby wszyscy członkowie zespołu uzyskali te same umiejętności.
Osobiste (tylko Twój profil) ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ Dotyczy wszystkich projektów. Nie zatwierdzono żadnego repozytorium.

Umiejętności obszaru roboczego mają pierwszeństwo przed konwencjami specyficznymi dla projektu. Osobiste umiejętności są przydatne w przypadku przepływów pracy i preferencji, które podróżują z Tobą między projektami.

Tworzenie umiejętności

Umiejętności można utworzyć na panelu Umiejętności w programie SSMS lub ręcznie w systemie plików.

Tworzenie umiejętności na panelu Umiejętności

  1. W oknie Copilot Chat wybierz ikonę Tools.
  2. Wybierz panel Umiejętności .
  3. W panelu Umiejętności wybierz przycisk +.
  4. Wybierz zakres: umiejętności obszaru roboczego (przechowywane w repozytorium) lub umiejętności osobiste (przechowywane w profilu użytkownika).
  5. Wprowadź nazwę umiejętności. Nazwa staje się nazwą katalogu i musi używać tylko małych liter, cyfr i łączników.
  6. SSMS generuje szablon SKILL.md w katalogu nowej umiejętności. Edytuj szablon i dodaj instrukcje do pliku.

Ręczne tworzenie umiejętności

  1. Utwórz katalog umiejętności w odpowiedniej lokalizacji. W przypadku umiejętności dla obszaru roboczego utwórz .github/skills/ w katalogu głównym swojego repozytorium.
  2. Utwórz podkatalog dla swojej umiejętności. Każda umiejętność musi mieć własny katalog. Na przykład: .github/skills/tsql-style-guide/.
  3. Utwórz plik SKILL.md w katalogu umiejętności.
  4. Opcjonalnie dodaj pliki pomocnicze, takie jak skrypty, dokumenty referencyjne lub przykładowe dane wyjściowe.

Struktura katalogu umiejętności

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

Każdy SKILL.md plik musi zawierać frontmatter YAML, a następnie instrukcje języka Markdown. Frontmatter udostępnia metadane, których Copilot używa do odnajdywania i aktywowania umiejętności.

Właściwości frontmatteru

Property Wymagane Opis
name Yes Tylko małe litery, cyfry i łączniki. Nazwa musi odpowiadać nazwie katalogu nadrzędnego. Maksymalnie 64 znaki.
description Yes Opisuje, co robi umiejętność i kiedy należy jej używać. Maksymalnie 1024 znaki. Uwzględnij konkretne słowa kluczowe, które sygnalizują, kiedy dana umiejętność jest istotna.
license No Nazwa licencji lub odwołanie do pliku licencji dołączonego do umiejętności.
compatibility No Wymagania środowiskowe, takie jak zamierzony produkt lub wymagane możliwości systemowe.
metadata No Dowolne pary klucz-wartość dla innych metadanych.
allowed-tools No Rozdzielona spacjami lista nazw narzędzi, których umiejętność została wstępnie zatwierdzona do użycia.

Zarządzanie umiejętnościami z panelu Umiejętności

Wybierz ikonę Tools w oknie Copilot Chat, aby otworzyć panel Skills. Panel pokazuje wszystkie umiejętności, które Copilot wykrywa w bieżącej sesji.

Z panelu można wykonywać następujące czynności:

  • Edytuj: otwórz plik SKILL.md dowolnej umiejętności bezpośrednio w edytorze z menu ....
  • Otwórz lokalizację pliku: przejdź do katalogu umiejętności na dysku.
  • Wyszukiwanie: filtruj umiejętności według nazwy lub słowa kluczowego.

Panel przedstawia również diagnostykę błędów konfiguracji umiejętności, dzięki czemu można szybko identyfikować i rozwiązywać problemy.

Porady dotyczące skutecznego opisywania umiejętności

  • Zachowaj zwięzłość: Celuj SKILL.mddo poniżej 300 linii. Przenieś szczegółowy materiał referencyjny do oddzielnych plików w odpowiednich podkatalogach.
  • Napisz opis bogaty w słowa kluczowe: Copilot używa elementu description, aby zdecydować, kiedy aktywować umiejętność. Uwzględnij określone zadania, obiekty i scenariusze, w których ma zastosowanie umiejętność.
  • Użyj kroków numerowanych dla procedur: Instrukcje krok po kroku są łatwiejsze do wykonania przez model niż prozy.
  • Dołącz przykłady oczekiwanych danych wyjściowych: Pokaż przykładowy kod, formaty tabel lub bloki komentarzy, aby model wiedział, jak wygląda "gotowe".
  • Ustaw wyraźne ograniczenia: Powiedz funkcji, czego nie ma robić. Na przykład "Nie zaleca się usuwania indeksów w tabelach z ponad 10 milionami wierszy bez wcześniejszego raportowania woluminu zapisu".
  • Pomocnicze materiały referencyjne: Przechowuj powiązane treści i skrypty w plikach w obrębie references\, scripts\ lub examples\ i wskazuj ze skilla określone treści.

Przykładowe umiejętności sql

W poniższych przykładach pokazano, jak pisać umiejętności dla typowych zadań SQL Server. Użyj ich jako punktów wyjścia i dostosuj je do konwencji zespołu.

Weryfikacja indeksu

Przed zaleceniem nowych indeksów przejrzyj istniejące indeksy, aby uniknąć duplikowania.

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

Wstępna analiza niepowodzenia zadania agenta

Analizowanie historii nieudanych zadań agenta SQL i zalecenia dotyczące rozwiązywania głównego problemu.

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