Использование навыков агента с GitHub Copilot в SQL Server Management Studio

Навыки агента — это многократно используемые наборы инструкций, которые указывают GitHub Copilot, как выполнять определенные задачи. Каждый навык — это файл Markdown, который вы определяете один раз, что экономит время и обеспечивает согласованное поведение во всём рабочем процессе. Думайте о навыках как о наборе инструкций, а не как об одном гигантском промпте. При использовании режима Agent (предварительная версия) Copilot автоматически обнаруживает и применяет соответствующие навыки в зависимости от того, что вы запрашиваете.

Note

режим агента GitHub Copilot в SQL Server Management Studio (SSMS) в настоящее время находится в предварительной версии.

В отличие от пользовательских инструкций, которые задают общие предпочтения для каждого ответа, навыки предоставляют ориентированные рекомендации для конкретной задачи, которые любой агент может обнаруживать и использовать. Определите навык один раз, и он применяется последовательно между сеансами и в вашей команде.

Необходимые условия

Как работают навыки агента

Когда вы используете режим агента, Copilot сканирует известные расположения навыков в вашем репозитории и профиле пользователя. Если описание навыка соответствует намерению запроса, Copilot активирует навык и применяет его инструкции в качестве дополнительного контекста. Когда навык активен, его имя отображается в чате, чтобы вы знали, что оно применяется.

Copilot решает, какие навыки следует активировать на основе поля description в интерфейсе каждого навыка. Четкое описание с большим количеством ключевых слов помогает Copilot определить, когда навык может быть полезен.

Локации навыков

Copilot обнаруживает навыки из следующих источников:

Объем Paths Сведения
Рабочая область (доступно вашей команде) .github/skills/, .claude/skills/, .agents/skills/ Хранится в корневом каталоге репозитория. Ориентация на систему контроля версий, чтобы все участники команды осваивали одни и те же навыки.
Персональный (только ваш профиль) ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/ Применяется во всех проектах. Не зафиксировано ни в одном репозитории.

Навыки рабочей среды имеют приоритет над соглашениями проекта. Личные навыки полезны для рабочих процессов и предпочтений, которые путешествуют вместе с вами по проектам.

Создание навыка

Вы можете создать навык на панели "Навыки " в SSMS или вручную в файловой системе.

Создание навыка на панели "Навыки"

  1. В окне Copilot Chat щелкните значок Tools.
  2. Выберите панель "Навыки ".
  3. На панели "Навыки" нажмите кнопку + .
  4. Выберите область: навык рабочей области (хранящийся в репозитории) или личный навык (хранящийся в профиле пользователя).
  5. Введите имя навыка. Имя становится именем каталога и должно использовать только строчные буквы, цифры и дефисы.
  6. SSMS создает шаблон SKILL.md в каталоге нового навыка. Измените шаблон и добавьте инструкции в файл.

Создание навыка вручную

  1. Создайте каталог навыков в соответствующем расположении. Чтобы создать навык Workspace, создайте .github/skills/ в корневом каталоге вашего репозитория.
  2. Создайте подкаталог для вашего навыка. Каждый навык должен иметь собственный каталог. Например: .github/skills/tsql-style-guide/.
  3. Создайте SKILL.md файл в каталоге навыка.
  4. При необходимости добавьте вспомогательные файлы, такие как скрипты, справочные документы или пример выходных данных.

Структура каталога навыков

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

Каждый SKILL.md файл должен содержать YAML-блок метаданных, после которого следуют инструкции в формате Markdown. Блок frontmatter предоставляет метаданные, которые Copilot использует для обнаружения и активации навыка.

Свойства frontmatter

Property Обязательный Description
name Yes Только строчные буквы, цифры и дефисы. Должно соответствовать имени родительского каталога. Не более 64 символов.
description Yes Описывает, что делает навык и когда его использовать. Не более 1 024 символов. Включите определенные ключевые слова, которые указывают, когда навык актуален.
license No Имя лицензии или ссылка на файл с лицензией, поставляемый вместе с навыком.
compatibility No Требования к среде, такие как предполагаемый продукт или необходимые системные возможности.
metadata No Произвольные пары "ключ-значение" для других метаданных.
allowed-tools No Список названий инструментов, разделённых пробелами, для использования которых навык предварительно авторизован.

Управление навыками на панели "Навыки"

Щелкните значок Tools в окне Copilot Chat, чтобы открыть панель Skills. На панели отображаются все навыки, которые Copilot обнаруживает для текущего сеанса.

С помощью панели можно:

  • Редактировать: Откройте файл SKILL.md любого навыка непосредственно в редакторе в меню ....
  • Показать расположение файла: Перейдите в каталог навыка на диске.
  • Поиск: фильтрация навыков по имени или ключевому слову.

На панели также отображаются диагностические сведения о любых ошибках конфигурации навыка, чтобы вы могли быстро выявлять и устранять проблемы.

Советы по эффективному описанию навыков

  • Делайте SKILL.md кратким: старайтесь укладываться в менее чем 300 строк. Переместите подробные справочные материалы в отдельные файлы в соответствующих подкаталогах.
  • Напишите описание, насыщенное ключевыми словами: Copilot использует description, чтобы определить, когда активировать навык. Включите конкретные задачи, объекты и сценарии, в которых применяется навык.
  • Используйте нумерованные шаги для процедур: пошаговые инструкции упрощают выполнение модели, чем проза.
  • Включите примеры ожидаемых выходных данных: отображение примера кода, форматов таблиц или блоков комментариев, чтобы модель знала, как выглядит "готово".
  • Задайте явные ограничения: расскажите навыку, что не делать. Например, «Не рекомендуется удалять индексы для таблиц, содержащих более 10 миллионов строк, без предварительного указания объёма записи».
  • Справочные материалы: храните связанный контент и скрипты в файлах в references\, scripts\ или examples\ и ссылайтесь на конкретный контент из навыка.

Примеры навыков SQL

В следующих примерах показано, как создавать навыки для распространенных задач SQL Server. Используйте их в качестве отправных точек и адаптируйте их к соглашениям вашей команды.

Проверка индекса

Просмотрите существующие индексы, прежде чем рекомендовать новые, чтобы избежать дублирования.

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

Классификация сбоев заданий агента

Проанализируйте историю неуспешных заданий агента SQL Server и предложите рекомендации по устранению первопричины проблемы.

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