Skip to main content

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

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

Acerca de Copilot coding agent en GitHub.com

Copilot coding agent 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 Copilot Chat, crear una solicitud de cambios y, después, iterar por la solicitud de cambios en respuesta a los comentarios.

Copilot coding agent 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 cambios inicial, el agente puede iterar junto a ti, en función de tus comentarios y opiniones.

Al trabajar en la tarea, el agente tiene acceso a su propio entorno de desarrollo efímero, donde puede realizar cambios en el código, ejecutar pruebas automatizadas y 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 de mensajes

La tarea proporcionada a Copilot mediante una incidencia, un comentario de solicitud de cambios o un mensaje de Copilot Chat 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 cambios con los cambios realizados. 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 si comentas la solicitud de cambios o mencionas 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 Copilot coding agent a continuación.

Casos de uso para Copilot coding agent

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 Copilot coding agent

Copilot coding agent 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 Copilot coding agent (a continuación).

Comprobación de que las tareas tienen un ámbito correcto

Copilot coding agent aprovecha el mensaje como contexto clave al generar una solicitud de cambios. Cuanto más claro y definido sea el ámbito del mensaje que se asigna al agente, mejor serán los resultados que obtendrás. Una incidencia ideal incluye lo siguiente:

  • 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

Copilot coding agent 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 Best practices for using Copilot to work on tasks.

Para obtener información sobre otras personalizaciones de Copilot coding agent, consulta lo siguiente:

Uso de Copilot coding agent como herramienta, no como reemplazo

Si bien Copilot coding agent 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 Copilot coding agent 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 Copilot coding agent 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.

Copilot coding agent 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 Copilot coding agent

Por diseño, Copilot coding agent 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

Copilot coding agent 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 desencadenados en respuesta a las solicitudes de incorporación generadas por Copilot coding agent necesitan la aprobación de un usuario con acceso de escritura en el 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 contenido del cuerpo de la incidencia. Esto protege contra riesgos como los jailbreak.

Restricción de los permisos de Copilot

Copilot solo tiene acceso al repositorio donde crea una solicitud de cambios 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 significan que Copilot solo puede insertar en ramas con nombres que comienzan por copilot/. Esto significa que Copilot no puede insertar en la rama predeterminada (por ejemplo, main).

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

Evitar la filtración de datos

De manera predeterminada, Copilot coding agent 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 Customizing or disabling the firewall for Copilot coding agent.

Limitaciones de Copilot coding agent

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 Copilot coding agent. La información siguiente está diseñada para ayudarte a entender las limitaciones del sistema y los conceptos clave sobre el rendimiento aplicables a Copilot coding agent.

Ámbito limitado

El modelo de lenguaje que usa Copilot coding agent 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 Copilot coding agent y el contexto recopilados por el modelo de lenguaje grande puede contener sesgos y errores que la herramienta puede perpetuar. Además, Copilot coding agent 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

Copilot coding agent 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

Actualmente no se admite la posibilidad de que GitHub Copilot haga sugerencias que coincidan con el código disponible públicamente para Copilot coding agent. Para más información, consulta Búsqueda de código público que coincida con sugerencias de GitHub Copilot.

Copilot coding agent 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.

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.