Uso de aptitudes del agente con GitHub Copilot en SQL Server Management Studio

Las aptitudes del agente son conjuntos reutilizables de instrucciones que indican a GitHub Copilot cómo realizar tareas específicas. Cada aptitud es un archivo markdown que se define una vez, lo que ahorra tiempo y garantiza un comportamiento coherente en todo el flujo de trabajo. Considere las habilidades como una guía de procedimientos, no como una única instrucción gigante. Al usar Agent (versión preliminar), Copilot detecta y aplica automáticamente aptitudes pertinentes en función de lo que se le pregunte.

Nota:

El modo Agente de GitHub Copilot en SQL Server Management Studio (SSMS) se encuentra actualmente en versión preliminar.

A diferencia de las instrucciones personalizadas, que establecen preferencias generales para cada respuesta, las aptitudes proporcionan instrucciones específicas de tareas centradas que cualquier agente puede detectar y usar. Defina una habilidad una sola vez y se aplicará de manera uniforme en todas las sesiones y en todo su equipo.

Prerequisites

Cómo funcionan las habilidades del agente

Al usar el modo de agente, Copilot busca en las ubicaciones conocidas de habilidades de tu repositorio y de tu perfil de usuario. Si la descripción de una aptitud coincide con la intención de la solicitud, Copilot activa la aptitud y aplica sus instrucciones como contexto adicional. Cuando una aptitud está activa, su nombre aparece en el chat para que sepa que se está aplicando.

Copilot decide qué habilidades activar en función del campo description en los metadatos de encabezado de cada habilidad. Una descripción clara y enriquecida de palabras clave ayuda a Copilot identificar cuándo es relevante una aptitud.

Ubicaciones de habilidades

Copilot descubre habilidades en las siguientes ubicaciones:

Ámbito Paths Detalles
Área de trabajo (compartida con el equipo) .github/skills/, , .claude/skills/, .agents/skills/ Almacenado en la raíz del repositorio. Se compromete al control de código fuente para que todos los miembros del equipo obtengan las mismas aptitudes.
Personal (solo tu perfil) ~/.copilot/skills/, , ~/.claude/skills/, ~/.agents/skills/ Se aplica en todos los proyectos. No se confirma en ningún repositorio.

Las habilidades del espacio de trabajo prevalecen sobre las convenciones específicas del proyecto. Las aptitudes personales son útiles para flujos de trabajo y preferencias que viajan con usted a través de proyectos.

Creación de una aptitud

Puede crear una aptitud desde el panel Aptitudes en SSMS o manualmente en el sistema de archivos.

Creación de una aptitud desde el panel Aptitudes

  1. En la ventana Copilot Chat, seleccione el icono Tools.
  2. Seleccione el panel Aptitudes .
  3. En el panel Habilidades, seleccione el botón +.
  4. Elija el ámbito: una aptitud de área de trabajo (almacenada en el repositorio) o una aptitud personal (almacenada en el perfil de usuario).
  5. Escriba un nombre para la habilidad. El nombre pasa a ser el nombre del directorio y solo puede contener letras minúsculas, números y guiones.
  6. SSMS genera una plantilla SKILL.md en el nuevo directorio de habilidades. Edite la plantilla y agregue las instrucciones al archivo.

Crear una habilidad manualmente

  1. Cree un directorio de aptitudes en la ubicación adecuada. Para una habilidad del espacio de trabajo, cree .github/skills/ en la raíz de tu repositorio.
  2. Cree un subdirectorio para su habilidad. Cada aptitud debe tener su propio directorio. Por ejemplo: .github/skills/tsql-style-guide/.
  3. Cree un SKILL.md archivo dentro del directorio de aptitudes.
  4. Opcionalmente, agregue archivos auxiliares como scripts, documentos de referencia o salida de ejemplo.

Estructura del directorio de aptitudes

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

formato SKILL.md

Cada SKILL.md archivo debe contener la frontmatter de YAML seguida de las instrucciones de Markdown. La frontmatter proporciona los metadatos Copilot usa para detectar y activar la aptitud.

Propiedades de frontmatter

Propiedad Obligatorio Description
name Solo se permiten letras minúsculas, números y guiones. Debe coincidir con el nombre del directorio primario. Máximo de 64 caracteres.
description Describe lo que hace la habilidad y cuándo usarla. Máximo de 1024 caracteres. Incluya palabras clave específicas que indiquen cuándo es relevante la aptitud.
license No El nombre de la licencia o una referencia a un archivo de licencia incluido con la skill.
compatibility No Requisitos del entorno, como el producto previsto o las funcionalidades del sistema necesarias.
metadata No Pares clave-valor arbitrarios para otros metadatos.
allowed-tools No Lista de nombres de herramientas separados por espacios que la habilidad tiene aprobación previa para usar.

Gestiona habilidades desde el panel Habilidades

Seleccione el icono Tools en la ventana Copilot Chat para abrir el panel Skills. El panel muestra todas las aptitudes que Copilot detecta en la sesión actual.

En el panel, puede hacer lo siguiente:

  • Editar: abrir directamente en el editor el archivo SKILL.md de cualquier habilidad desde el menú ....
  • Abrir ubicación del archivo: Ir al directorio de habilidades en el disco.
  • Búsqueda: filtre las aptitudes por nombre o palabra clave.

El panel también muestra diagnósticos para cualquier error de configuración de aptitudes, por lo que puede identificar y corregir rápidamente problemas.

Sugerencias para escribir aptitudes eficaces

  • Mantener SKILL.md conciso: apunte a menos de 300 líneas. Mueva material de referencia detallado a archivos independientes en subdirectorios pertinentes.
  • Scribir una descripción enriquecida por palabras clave: Copilot usa el description para decidir cuándo activar la aptitud. Incluya las tareas, objetos y escenarios específicos en los que se aplica la aptitud.
  • Utiliza pasos numerados en los procedimientos: al modelo le resulta más fácil seguir instrucciones paso a paso que un texto en prosa.
  • Incluye ejemplos del resultado esperado: muestra ejemplos de código, formatos de tabla o bloques de comentarios para que el modelo sepa qué aspecto tiene el resultado final.
  • Establezca límites explícitos: dígale a la habilidad lo que no debe hacer. Por ejemplo, "No recomiendes eliminar índices en tablas con más de 10 millones de filas sin informar primero del volumen de escrituras."
  • Material de referencia complementario: almacene contenido relacionado y scripts en archivos dentro de references\, scripts\ o examples\ y haga referencia a contenido específico desde la habilidad.

Ejemplos de habilidades en SQL

Los siguientes ejemplos muestran cómo redactar habilidades para tareas comunes de SQL Server. Úselos como puntos de partida y adáptelos a las convenciones de su equipo.

Comprobación del índice

Revise los índices existentes antes de recomendar los nuevos para evitar la duplicación.

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

Evaluación de errores del trabajo del agente

Analice el historial de trabajos con errores del Agente SQL y realice recomendaciones para solucionar el problema raíz.

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