Introducción
CLI de Copilot es un agente de IA basado en terminal que puede responder a preguntas, planificar el trabajo y completar tareas en su nombre. Está diseñado para ser altamente extensible y hay varias maneras en las que puede personalizar su comportamiento y ampliar sus funcionalidades.
En este artículo se explica la diferencia entre:
-
**Instrucciones personalizadas**Indican a Copilot cómo debe comportarse en general. Por ejemplo, para asegurarse de que cualquier código que Copilot escriba se ajusta a los estándares de codificación. Obtenga más información.
-
**Habilidades**Indican a Copilot cómo gestionar un tipo específico de tarea. Por ejemplo, para usar una herramienta determinada al trabajar en un tipo específico de tarea. Obtenga más información.
-
**Herramientas**Estas proporcionan capacidades. Por ejemplo, para buscar y modificar archivos, o para interactuar con partes de GitHub. Obtenga más información.
-
**Servidores MCP**Estas agregan colecciones de herramientas que permiten que Copilot interactúen con servicios externos. Obtenga más información.
-
**Hooks**Estos le permiten ejecutar su propia lógica en momentos específicos del ciclo de vida. Por ejemplo, puede ejecutar un script específico cada vez que se inicia o finaliza una sesión de la CLI. Obtenga más información.
-
**Subagentes**Estos son procesos de agente delegado, vinculados al agente principal y se usan para realizar tareas específicas por separado del proceso del agente principal. Tienen su propia ventana de contexto, que se puede rellenar sin afectar al contexto del agente principal. Obtenga más información.
-
**Agentes personalizados**Estas son definiciones de capacidades especializadas, diseñadas para realizar tareas específicas. El agente principal de la CLI puede delegar una tarea en un subagente, mediante un perfil de agente personalizado, para aplicar conocimientos especializados y un enfoque concreto a la tarea. Por ejemplo, un agente personalizado podría desempeñar el rol de un revisor de React, un escritor de documentos, un auditor de seguridad o un generador de pruebas. Obtenga más información.
-
**Complementos**Estos son paquetes que pueden ofrecer personalizaciones preconfiguradas, como aptitudes, enlaces, agentes personalizados y servidores MCP. Obtenga más información.
Instrucciones personalizadas
¿Qué son las instrucciones personalizadas?
Las **instrucciones personalizadas** son una guía persistente que CLI de Copilot carga desde archivos de instrucciones al comienzo de una sesión.
Copilot buscará y cargará archivos de instrucción de una serie de ubicaciones predeterminadas en el repositorio, como AGENTS.md y .github/copilot-instructions.md, o desde el directorio principal en $HOME/.copilot/copilot-instructions.md.
Puede usar la --no-custom-instructions marca para evitar cargar estas instrucciones.
¿Qué problema solucionan las instrucciones personalizadas?
Las instrucciones personalizadas le ayudan a:
- Mantenga Copilot alineado con sus convenciones y preferencias de codificación.
- Aplique los estándares de equipo u organización de forma coherente.
- Evite tener que incluir recordatorios repetitivos sobre Copilot en cada solicitud.
¿Cuándo debe usar instrucciones personalizadas?
Use instrucciones personalizadas para:
-
Reglas de estilo y calidad
Ejemplo: "Prefiera solicitudes de incorporación de cambios pequeñas, escriba pruebas y evite cambiar las API públicas sin una discusión."
-
Convenciones de repositorio
Ejemplo: "Use
pnpm, mantenga las entradas del registro de cambios enCHANGELOG.md, ejecutepnpm testantes de confirmar". -
Preferencias de comunicación
Ejemplo: "Explique brevemente los inconvenientes y proporcione la opción recomendada".
¿Cuándo no debe usar instrucciones personalizadas?
Evite o manténgalos mínimos cuando:
- Solo quiere el comportamiento en un flujo de trabajo (use una aptitud en su lugar).
- Las instrucciones son tan grandes/específicas que distraen a Copilot de la tarea inmediata (se prefiere una aptitud o un agente personalizado).
Más información sobre las instrucciones personalizadas
Consulta Adición de instrucciones personalizadas para CLI de GitHub Copilot.
Skills
¿Qué es una aptitud?
Una aptitud es, mínimamente, un archivo Markdown que contiene instrucciones que Copilot pueden usar para realizar tareas en un contexto específico. El nombre y la descripción de la habilidad permiten a Copilot determinar si debe usar la habilidad para una tarea determinada. Si decide usar la aptitud, cargará las instrucciones y las seguirá para completar la tarea.
Las habilidades pueden opcionalmente hacer referencia a otros archivos, que se almacenan en el directorio de habilidades. Pueden incluir scripts que Copilot puede ejecutar cuando se utiliza la aptitud.
¿Qué problema resuelve una aptitud?
Las aptitudes le ayudan a:
- Normalice cómo Copilot realiza tareas en un contexto específico (por ejemplo, al realizar una revisión de código).
- Proporcione instrucciones "justo a tiempo" sin cambiar el comportamiento de Copilot de manera permanente.
- Evite sobrecargar la ventana de contexto de Copilot con instrucciones que no sean pertinentes a la tarea en curso.
¿Cómo accede a las habilidades?
Puede invocar manualmente una habilidad mediante un comando slash. Por ejemplo: /Markdown-Checker check README.md. Use /skills list para enumerar las aptitudes disponibles.
CLI de Copilot invoca automáticamente las aptitudes cuando detecta una que es relevante para la tarea actual.
¿Cuándo debería usar una habilidad?
Utiliza una habilidad cuando quieras:
-
Un conjunto repetible de instrucciones o funciones que esté disponible para un tipo de tarea.
Ejemplo: una aptitud de documentación que comprueba que la documentación orientada al usuario se actualiza cuando se cambia el código de front-end.
-
Un formato de salida coherente.
Ejemplo: una aptitud de "borrador de nota de lanzamiento" que garantiza que Copilot use una plantilla para crear una nota de lanzamiento.
-
Un flujo de trabajo que a veces necesita, pero no siempre.
Ejemplo: una aptitud de "refactorización profunda" que solo se habilita durante las migraciones.
¿Cuándo no debe utilizar una habilidad?
Evite las aptitudes cuando:
- Las instrucciones deben aplicarse a todo lo que haga (use instrucciones personalizadas en su lugar).
- Necesita nuevas funcionalidades (es posible que necesite un servidor MCP para agregar herramientas o un agente personalizado para la especialización).
Más información sobre las aptitudes del agente
Consulta Acerca de las aptitudes del agente.
Tools
¿Qué es una herramienta?
Una herramienta es una capacidad que Copilot usa para hacer algo, como buscar archivos, ver el contenido del archivo, editar, ejecutar una tarea o invocar una aptitud. Algunas herramientas están integradas y otras se pueden agregar a través de servidores MCP.
¿Qué problema resuelven las herramientas?
Las herramientas permiten a la CLI:
- Recopilar contexto preciso (mediante herramientas de lectura y búsqueda).
- Realice cambios de forma segura (mediante herramientas de edición).
- Ejecute comandos y valide los resultados (posiblemente mediante subagentes).
¿Cuándo debe usar herramientas?
Normalmente no llama a herramientas directamente: Copilot decide utilizar las herramientas según lo necesite. Puede permitir o denegar el uso de herramientas, ya sea para una tarea específica, para la sesión actual o para todas las sesiones de CLI de Copilot.
Verá a Copilot usar herramientas cuando:
- Pida a Copilot que realice una búsqueda en el repositorio, actualice un archivo o ejecute pruebas.
- Invocar una habilidad, que activa la herramienta
skill. - Solicita a Copilot que realice una tarea que requiera usar una herramienta proporcionada por un servidor MCP.
- Pida a Copilot que complete una tarea compleja y decide delegar en un subagente, lo que desencadena la herramienta
task.
Obtenga más información sobre cómo permitir o denegar herramientas
Consulta Acerca de la CLI de GitHub Copilot.
Servidores MCP
¿Qué es un servidor MCP?
Un servidor MCP es un servicio que permite a las aplicaciones de inteligencia artificial, como CLI de Copilot, conectarse a herramientas y orígenes de datos externos.
Agregar un servidor MCP a CLI de Copilot proporciona funcionalidades adicionales, ya que permite usar herramientas proporcionadas por ese servidor MCP. Por ejemplo, podría agregar un servidor MCP que proporcione herramientas para interactuar con una aplicación de calendario en línea o un sistema de vales de soporte técnico.
¿Qué problema resuelven los servidores MCP?
Los servidores MCP ayudan cuando las herramientas integradas no son suficientes. Pueden realizar las acciones siguientes:
- Conectar CLI de Copilot a sistemas externos.
- Agregue herramientas creadas específicamente (por ejemplo, para trabajar con API, bases de datos o generación de imágenes).
- Normalice los patrones de acceso seguro para los recursos que no son de repositorio.
¿Cuándo debe usar un servidor MCP?
Use un servidor MCP cuando necesite:
-
Integración con sistemas o datos externos.
Ejemplo:
How many support tickets have been opened this month for Product X? -
Acciones específicas del dominio que desea que la CLI realice en su nombre.
Ejemplo:
Message the bug-watch channel: Only 2 support tickets raised this month for Product X.
¿Cuándo no debe usar un servidor MCP?
Evite agregar servidores MCP cuando:
- Las herramientas integradas ya cubren sus necesidades.
Más información sobre los servidores MCP
Consulta Acerca del Protocolo de contexto de modelo (MCP).
Enlaces
¿Qué es un gancho?
**Hooks** permiten especificar que, en un punto determinado del ciclo de vida de una sesión, CLI de Copilot ejecutará un comando shell que haya definido.
| Enlace | Cuando se ejecuta |
|---|---|
preToolUse / postToolUse | Antes y después de que se ejecute una herramienta. |
userPromptSubmitted | Cuando un usuario envía un comando. |
sessionStart / sessionEnd | Al principio o al final de una sesión. |
errorOccurred | Cuando se produce un error. |
agentStop | Cuando el agente principal se detiene sin un error. |
subagentStop | Cuando un subagente se completa. |
¿Qué problema resuelven los hooks?
Los enlaces ayudan cuando se desea un control programable u observabilidad en torno al comportamiento de CLI de Copilot, como:
-
**Aplicar límites de protección**: bloquee o avise antes de que se ejecuten determinadas herramientas. -
**Adición de registros o telemetría** -
**Personalización del comportamiento de reintento o anulación en errores recuperables** -
**Agregar comprobaciones de "directiva",** por ejemplo, para evitar modificaciones en rutas de acceso protegidas. -
**Interceptar el momento en que finaliza un subagente**, antes de que los resultados vuelvan al agente primario.
Los ganchos son útiles cuando necesitas más control del que las habilidades o las instrucciones personalizadas pueden proporcionar. Aunque las habilidades e instrucciones guían el comportamiento de Copilot a través de indicaciones, los ganchos garantizan que las operaciones definidas se realizarán en momentos específicos, por ejemplo, para bloquear la ejecución de una herramienta o para registrar la actividad cuando finaliza una sesión.
¿Cuándo debe usar enlaces?
Use enlaces si desea:
-
**Límites de protección de herramientas**- Ejemplo: antes de
bashejecutarse, es necesario que el comando específico coincida con una lista de permitidos. - Por ejemplo: antes de que
editse ejecute, bloquear cambios eninfra/a menos que esté presente un identificador de incidencia.
- Ejemplo: antes de
-
**Automatización del ciclo de vida de la sesión**- Ejemplo: cuando el agente se detiene, archive la transcripción de la sesión en una ubicación de almacenamiento.
-
**Directiva de control de errores**- Ejemplo: en errores de límite de velocidad, elija automáticamente "reintentar" con un recuento de reintentos limitado.
-
**Control de flujo de trabajo subagent**- Ejemplo: cuando un subagente finaliza, valide su salida antes de volver a pasar los resultados al agente principal.
¿Cuándo no debería usar enlaces?
Evite ganchos cuando:
- Solo necesita indicaciones coherentes o instrucciones de flujo de trabajo (use habilidades).
- Quiere preferencias y estándares persistentes (use instrucciones personalizadas).
- Necesita nuevas capacidades externas (use servidores MCP y herramientas).
- El mantenimiento de la configuración que puede afectar a cada sesión puede ser problemático para usted.
Más información sobre los ganchos
Consulta Uso de enlaces con CLI de GitHub Copilot.
Subagentes
¿Qué es un subagente?
Un subagente es la ejecución de un agente de IA independiente que el agente principal de una sesión de CLI de Copilot inicia para realizar un trabajo específico.
CLI de Copilot usa un subagente cuando el agente principal decide que delegar un fragmento de trabajo en un agente independiente es la mejor manera de completar la solicitud del usuario.
¿Qué problema resuelven los subagentes?
Los subagentes ayudan a Copilot a:
- Mantener la ventana de contexto del agente principal en una sesión de la CLI enfocada, descargando un fragmento de trabajo en un agente independiente.
- Paralelice el trabajo, cuando sea necesario, ejecutando ciertas tareas en segundo plano.
- Ejecute un agente personalizado por separado del agente principal, realizando un trabajo especializado con un enfoque diferente al trabajo realizado por el agente principal.
¿Cuándo se usan los subagentes?
Copilot es probable que use un subagente para:
-
Exploración de código base
Por ejemplo, enumerar todos los puntos de conexión de una API.
-
Ejecución de comandos para tareas complejas
Por ejemplo, ejecutar un conjunto de pruebas o compilar un proyecto grande y analizar los resultados.
-
Revisión de los cambios
Por ejemplo, revise los cambios preconfigurados e identifique posibles problemas de seguridad.
-
Trabajo complejo en varios pasos
Por ejemplo, implementar una característica con varios cambios.
-
Para usar agentes personalizados
Si ha definido un agente personalizado y es apto para la inferencia (
inferno está establecido enfalse), Copilot puede delegar el trabajo en ese agente personalizado iniciando un subagente con su configuración.
Agentes personalizados
¿Qué es un agente personalizado?
**Los agentes personalizados** son una manera de proporcionar a Copilot conocimientos especializados sobre un tema particular y definir un enfoque particular que desea que Copilot use al trabajar en esa área. Puede pensar en un agente personalizado como una "persona" que Copilot puede adoptar cuando trabaja en determinadas tareas.
Define un agente personalizado en un archivo Markdown con encabezado YAML. El archivo contiene:
- Descripción del rol y la experiencia del agente
- Lista de herramientas permitidas (o todas las herramientas)
- Conexiones de servidor MCP opcionales
- Una configuración opcional
infer: cuando está habilitada, Copilot delegará automáticamente a este agente cuando detecte una tarea que coincida con la especialidad del agente.
¿Qué problema solucionan los agentes personalizados?
Los agentes personalizados ayudan si necesita:
- Conocimientos especializados que se aplicarán de forma coherente en un contexto determinado.
- Permisos de herramientas diferentes para diferentes trabajos, tal como se define en la configuración del agente personalizado.
- Para permitir que la ventana de contexto del agente principal permanezca centrada en la tarea principal, mientras que la del agente personalizado se utiliza para el trabajo especializado que realiza.
¿Cuándo debe usar un agente personalizado?
Use un agente personalizado cuando desee:
-
Revisor especializado o asistente
Ejemplo: cree un agente personalizado "react-reviewer" que se centre en el trabajo que implique patrones de React.
-
Permisos más seguros
Ejemplo: un agente personalizado que solo puede
view/grep/glob(solo lectura) para la auditoría. -
Delegación automática opcional
Ejemplo: establezca
infer: trueen la configuración del agente personalizado para que Copilot pueda usar automáticamente este agente personalizado cuando corresponda.
¿Cuándo no debe usar un agente personalizado?
Evite los agentes personalizados cuando:
- Solo necesita texto de orientación (una aptitud puede ser una solución más liviana).
- No necesita especialización y el agente predeterminado realiza bien las tareas.
Más información sobre agentes personalizados
Consulta Configuración de agentes personalizados.
Plugins
¿Qué es un complemento?
Un complemento es un paquete instalable que puede proporcionar un conjunto de funcionalidades a Copilot. Un complemento puede incluir cualquier combinación de las otras características de personalización. Por ejemplo, aptitudes, agentes personalizados, enlaces y configuraciones de servidor MCP.
Copilot incluye comandos de administración de complementos (instalación, actualización, lista, desinstalación) y admite la instalación desde un marketplace o directamente desde un repositorio de GitHub.
¿Qué problema solucionan los complementos?
Los complementos le ayudan a:
- Agregue fácilmente un conjunto de funcionalidades a Copilot sin tener que configurar cada elemento manualmente.
- Empaquetar y distribuir una configuración personalizada (posiblemente una combinación de aptitudes, agentes personalizados, enlaces y servidores MCP) al equipo o al público.
- Modifique la funcionalidad disponible sin tener que copiar manualmente archivos en directorios.
¿Cuándo debe usar un complemento?
Use un complemento cuando:
-
Quiere un paquete para todo el equipo
Ejemplo: un complemento de ingeniería para toda la empresa que incluye:
- Aptitudes para la respuesta a incidentes.
- Un agente personalizado para la revisión de código.
- Un servidor MCP para servicios internos.
-
Quiere una instalación y actualizaciones sencillas
Ejemplo: Instale un complemento inicialmente y, a continuación, actualícelo periódicamente mediante
/plugin update PLUGIN-NAME.
¿Cuándo no debe usar un complemento?
Evite los complementos cuando:
- Está experimentando localmente y no necesita distribución (use aptitudes locales, instrucciones personalizadas o agentes personalizados).
- Solo necesita un único flujo de trabajo pequeño. Un único archivo de habilidad puede ser más sencillo.
Integrándolo todo: elegir la opción correcta
| Requirement | Mejor opción |
|---|---|
| Quiero que Copilot siga siempre nuestras convenciones de repositorio. |
**Instrucciones personalizadas** |
| Quiero un flujo de trabajo repetible que puedo invocar a petición. | Habilidades | | Quiero que Copilot responda a preguntas y realice tareas en mi repositorio. | Copilot solicita permiso para usar las herramientas adecuadas | | Quiero límites de protección, directivas o automatización en torno al uso de herramientas y eventos de sesión. | Hooks | | Necesito Copilot para poder usar herramientas proporcionadas por un servicio externo. | Servidores MCP | | Al trabajar en tareas concretas, quiero que Copilot funcione como especialista con un conjunto de herramientas restringido. | Agente personalizado | | Quiero que Copilot lleve a cabo una tarea compleja en mi nombre. | Copilot usa automáticamente subagentes cuando es necesario. | | Quiero agregar un paquete de funcionalidad a CLI de Copilot sin configurarlo manualmente. | Complemento |