Skip to main content

Uso responsable del agente de programación de GitHub Copilot en GitHub.com

Aprende a usar Agente de codificación de Copilot en GitHub.com de forma responsable mediante la comprensión de sus propósitos, funcionalidades y limitaciones.

Acerca de Agente de codificación de Copilot en GitHub.com

Agente de codificación de Copilot es un agente de desarrollo de software autónomo y asincrónico integrado en GitHub. El agente puede tomar una tarea de una incidencia o de Chat de Copiloto, crear una solicitud de extracción y, luego, iterar con la solicitud de extracción en respuesta a los comentarios.

Agente de codificación de Copilot puede generar cambios personalizados en función de la descripción y las configuraciones, incluidas tareas como correcciones de errores, implementación de nuevas características incrementales, creación de prototipos, documentación y mantenimiento de código base. Una vez que se crea la solicitud de extracción inicial, el agente puede iterar contigo en función de tus comentarios y opiniones.

Al trabajar en tu tarea, el agente tiene acceso a su propio entorno de desarrollo efímero, donde puede realizar cambios en tu código, ejecutar pruebas automatizadas y ejecutar linters.

El agente se ha evaluado en una variedad de lenguajes de programación, con el inglés como idioma principal admitido.

El agente funciona mediante una combinación de procesamiento de lenguaje natural y aprendizaje automático para comprender la tarea y realizar cambios en un código base para completar la tarea. Este proceso se puede dividir en varios pasos.

Procesamiento rápido

La tarea proporcionada a Copilot mediante una incidencia, un comentario de solicitud de cambios o un mensaje de Chat de Copiloto se combina con otra información contextual relevante para formar un mensaje. Ese mensaje se envía a un modelo de lenguaje grande para su procesamiento. Las entradas pueden adoptar la forma de lenguaje natural sin formato, fragmentos de código o imágenes.

Análisis del modelo de lenguaje

Después, el mensaje se pasa por un modelo de lenguaje grande, que es una red neuronal entrenada con un cuerpo de datos de gran tamaño. El modelo de lenguaje analiza el mensaje de entrada para ayudar al agente a razonar sobre la tarea y aprovechar las herramientas necesarias.

Generación de respuestas

El modelo de lenguaje genera una respuesta basada en su análisis del mensaje. Esta respuesta puede adoptar el formato de sugerencias en lenguaje natural y sugerencias de código.

Formato de salida

Una vez que el agente complete su primera ejecución, actualizará la descripción de la solicitud de extracción con las modificaciones realizadas. El agente puede incluir información complementaria sobre recursos a los que no pudo acceder y proporcionar sugerencias sobre los pasos para resolver.

Puedes proporcionar comentarios al agente comentando en la solicitud de extracción o mencionando explícitamente al agente (@copilot). Después, el agente volverá a enviar los comentarios al modelo de lenguaje para su posterior análisis. Una vez que el agente complete los cambios en función de los comentarios, responderá a tu comentario con los cambios actualizados.

Copilot está pensado para proporcionarte la solución más relevante para la resolución de tareas. Sin embargo, es posible que no siempre proporcione la respuesta que buscas. Eres responsable de revisar y validar las respuestas generadas por Copilot para garantizar que sean precisas y adecuadas.

Además, como parte del proceso de desarrollo de productos, GitHub recurre a equipos rojos (pruebas) para comprender y mejorar la seguridad del agente.

Para obtener información sobre cómo mejorar el rendimiento, consulta Mejora del rendimiento de Agente de codificación de Copilot a continuación.

Casos de uso para Agente de codificación de Copilot

Puedes delegar una tarea a Copilot en diversos escenarios, incluidos, entre otros los siguientes:

  •         **Mantenimiento de código base:** aborda correcciones relacionadas con la seguridad, actualizaciones de dependencia y refactorización dirigida.
    
  •         **Documentación:** actualización y creación de documentación.
    
  •         **Desarrollo de características:** implementación de solicitudes de características incrementales.
    
  •         **Mejora de la cobertura de las pruebas:** desarrollo de conjuntos de pruebas adicionales para la administración de la calidad.
    
  •         **Creación de prototipos de nuevos proyectos:** nuevos conceptos de tipo greenfield.
    

Mejora del rendimiento para Agente de codificación de Copilot

Agente de codificación de Copilot puede admitir una amplia gama de tareas. Para mejorar el rendimiento y abordar algunas de las limitaciones del agente, puedes adoptar varias medidas.

Para más información sobre las limitaciones, consulta Limitaciones de Agente de codificación de Copilot (a continuación).

Asegúrate de que las tareas estén bien definidas.

Agente de codificación de Copilot aprovecha tu indicación como contexto clave al generar una solicitud de extracción. Cuanto más claro y mejor definido sea el alcance del mensaje que asignes al agente, mejores resultados obtendrás. Un problema ideal incluye:

  • Una descripción clara del problema que se va a resolver o del trabajo necesario.
  • Criterios de aceptación completos sobre el aspecto de una buena solución (por ejemplo, ¿debería haber pruebas unitarias?).
  • Sugerencias sobre qué archivos deben cambiarse.

Personalización de la experiencia con contexto adicional

Agente de codificación de Copilot aprovecha el mensaje, los comentarios y el código del repositorio como contexto al generar cambios sugeridos. Para mejorar el rendimiento de Copilot’, considera la posibilidad de implementar instrucciones personalizadas de Copilot para ayudar al agente a comprender mejor el proyecto y a compilar, probar y validar sus cambios. Para más información, consulta "Adición de instrucciones personalizadas al repositorio" en Procedimientos recomendados a fin de usar GitHub Copilot para trabajar en tareas.

Para obtener información sobre otras personalizaciones de Agente de codificación de Copilot, consulta lo siguiente:

  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)
    

Uso de Agente de codificación de Copilot como herramienta, no como reemplazo

Si bien Agente de codificación de Copilot puede ser una herramienta eficaz para generar código y documentación, es importante que la utilices como herramienta y no como reemplazo de la programación humana. Siempre debes revisar y probar el código que genera el agente para asegurarte de que cumple con tus requisitos y que no tiene errores ni problemas de seguridad antes de la combinación.

Uso de procedimientos de codificación segura y revisión del código

Aunque Agente de codificación de Copilot puede generar código sintácticamente correcto, es posible que no siempre sea seguro. Siempre tienes que seguir los procedimientos recomendados para lograr una programación segura, como evitar las contraseñas codificadas de forma rígida o las vulnerabilidades por inyección de código SQL, así como los procedimientos recomendados de revisión del código, para abordar las limitaciones del agente. Siempre debes tomar las mismas precauciones que con cualquier código que escribas que use material que no originado de forma independiente, incluidas las precauciones para garantizar su idoneidad. Estas incluyen pruebas rigurosas, examen de IP y revisión de vulnerabilidades de seguridad.

Envío de comentarios

Si encuentras algún problema o limitaciones con Agente de codificación de Copilot en GitHub.com, te recomendamos enviar comentarios; para ello, haz clic en el icono de pulgar hacia abajo debajo de cada respuesta del agente. Esto puede ayudar a los desarrolladores a mejorar la herramienta y abordar cualquier problema o limitación. Además, puedes proporcionar comentarios en el foro de debate de la comunidad.

Manténgase actualizado.

Agente de codificación de Copilot es una tecnología nueva y es probable que evolucione con el tiempo. Debe mantenerse al día con los riesgos de seguridad o procedimientos recomendados nuevos que puedan surgir.

Medidas de seguridad para Agente de codificación de Copilot

Por diseño, Agente de codificación de Copilot se ha creado con varias mitigaciones para ayudar a garantizar que los datos y el código base sean seguros. Aunque existen mitigaciones, asegúrate de seguir implementando los procedimientos recomendados de seguridad mientras comprendes las limitaciones del agente y cómo pueden afectar al código.

Evitar la escalación con privilegios

Agente de codificación de Copilot solo responderá a las interacciones (por ejemplo, la asignación del agente o comentarios) de los usuarios con acceso de escritura del repositorio.

Los flujos de trabajo de GitHub Actions que se desencadenan en respuesta a pull requests generados por Agente de codificación de Copilot requieren la aprobación de un usuario con acceso de escritura al repositorio antes de que se ejecuten.

El agente filtra los caracteres ocultos, que no se muestran en GitHub.com, lo que podría permitir a los usuarios ocultar instrucciones perjudiciales en los comentarios o el cuerpo de la incidencia. Esto protege contra riesgos como los jailbreak.

Restricción de los permisos de Copilot

Copilot solo tiene acceso al repositorio en el que está creando una solicitud de extracción y no puede acceder a otros repositorios.

Sus permisos están limitados, y se le permite insertar código y leer otros recursos. Las protecciones integradas implican que Copilot solo puede insertar en ramas con nombres que comienzan por copilot/. Esto significa que Copilot no puede hacer push a tu rama predeterminada (por ejemplo, main).

Agente de codificación de Copilot no tiene acceso a la organización o a los secretos o variables del repositorio de Acciones durante el tiempo de ejecución. Solo los secretos y variables que se han agregado específicamente al entorno copilot se pasan al agente.

Evitar la filtración de datos

De manera predeterminada, Agente de codificación de Copilot tiene un firewall habilitado para evitar la filtración del código u otros datos confidenciales, ya sea accidentalmente o debido a una entrada de usuario malintencionada.

Para más información, consulta Personalización o deshabilitación del firewall para el agente de codificación de GitHub Copilot.

Prevención de vulnerabilidades de seguridad en código generado

Durante el proceso de generación de código, Agente de codificación de Copilot analiza automáticamente el código recién generado para detectar vulnerabilidades de seguridad e intenta resolverlos, para evitar que se introduzcan problemas detectados. El análisis se realiza mediante las siguientes herramientas y procesos:

  •         **CodeQL**: se ejecutará para identificar posibles vulnerabilidades y errores.
    
  •         **Secret scanning**: buscará los tipos conocidos de secretos para asegurar que los secretos no se introduzcan en la respuesta.
    
  •         **Análisis de dependencias**: las dependencias a las que hace referencia el código nuevo se comprobarán si hay vulnerabilidades conocidas en GitHub Advisory Database.
    

Limitaciones de Agente de codificación de Copilot

En función de factores como el código base y los datos de entrada, es posible que experimentes distintos niveles de rendimiento al utilizar Agente de codificación de Copilot. La información siguiente está diseñada para ayudarte a entender las limitaciones del sistema y los conceptos clave sobre el rendimiento aplicables a Agente de codificación de Copilot.

Ámbito limitado

El modelo de lenguaje que usa Agente de codificación de Copilot se ha entrenado con un cuerpo de código grande, pero sigue teniendo un ámbito limitado y es posible que no pueda controlar determinadas estructuras de código o lenguajes de programación oscuros. Para cada idioma, la calidad de las sugerencias que reciba puede depender del volumen y la diversidad de datos de entrenamiento para ese idioma.

Sesgos posibles

El modelo de lenguaje usado por los datos de entrenamiento de Agente de codificación de Copilot y el contexto recopilado por el modelo de lenguaje grande pueden contener sesgos y errores que la herramienta puede perpetuar. Además, Agente de codificación de Copilot puede tener un sesgo hacia determinados lenguajes de programación o estilos de programación, lo que puede dar lugar a comentarios poco óptimos o incompletos.

Riesgos de seguridad

Agente de codificación de Copilot genera código y lenguaje natural basado en el contexto de una incidencia o comentario dentro de un repositorio, lo que puede exponer información confidencial o vulnerabilidades si no se usa cuidadosamente. Debes tener cuidado y revisar todas las salidas generadas por el agente exhaustivamente antes de la combinación.

Código inexacto

Agente de codificación de Copilot puede generar código que aparenta ser válido, pero que en realidad no es semántica o sintácticamente correcto, o puede que no refleje con precisión la intención del desarrollador.

Para mitigar el riesgo de código inexacto, debes revisar y probar cuidadosamente el código generado, especialmente cuando se trabaja con aplicaciones críticas o confidenciales. También debes asegurarte de que el código generado cumple con los procedimientos recomendados y los modelos de diseño y se ajusta a la arquitectura general y al estilo del código base.

Código público

Agente de codificación de Copilot puede generar código que coincida o sea similar al código disponible públicamente, incluso si la política "Sugerencias que coinciden con el código público" está configurada en "Bloquear". Consulta Administración de directivas de GitHub Copilot como suscriptor individual.

Si esto sucede, Copilot mostrará coincidencias en los registros de sesión del agente con un vínculo para mostrar los detalles del código coincidente. Para más información, consulta Seguimiento de las sesiones de GitHub Copilot.

Los usuarios deben evaluar posibles obligaciones legales y normativas específicas al usar cualquier servicio y soluciones de inteligencia artificial, que pueden no ser adecuados para su uso en todos los sectores o escenarios. Además, los servicios o soluciones de inteligencia artificial no están diseñados para y pueden no usarse de maneras prohibidas en términos de servicio aplicables y códigos de conducta pertinentes.

Integraciones externas con el agente de codificación de Copilot

Agente de codificación de Copilot puede recibir información y contexto de aplicaciones externas como Microsoft Teams, Linear y Slack. Cuando menciona la aplicación externa en estas plataformas o asigna una tarea al agente de codificación a través de un flujo de trabajo conectado, puede acceder al contexto pertinente, como el historial de conversaciones en los hilos donde se menciona o los detalles y las líneas de tiempo de actividad. Esto permite al agente de codificación comprender mejor sus necesidades de desarrollo y proporcionar asistencia más relevante. Estas integraciones permiten a los equipos colaborar en código, asignar tareas y realizar un seguimiento del progreso directamente dentro de sus flujos de trabajo existentes, sin necesidad de cambiar de herramientas. Asegúrese de que el equipo comprende qué información se comparte y configura las integraciones según las directivas de privacidad y control de datos de su organización.

Para obtener más información sobre las integraciones externas con Agente de codificación de Copilot, consulte: * Integración del agente de codificación de Copilot con Teams * Integración del agente de codificación de Copilot con Linear * Integración del agente de codificación de Copilot con Slack