Uso responsable del agente de programación de GitHub Copilot en GitHub.com
Aprenda a usar el agente de codificación de Copilot en GitHub.com de forma responsable mediante la comprensión de sus propósitos, funcionalidades y limitaciones.
Al finalizar esta unidad, podrán:
- Comprenda el propósito, las funcionalidades y los límites del agente de codificación de Copilot en GitHub.com.
- Aplicar prácticas de uso responsable: tareas de ámbito, protección de entornos y validación de resultados.
- Reconozca las medidas de seguridad, los riesgos y las mitigaciones, y dónde mejorar el rendimiento.
Acerca del agente de codificación de Copilot en GitHub.com
El agente de codificación de Copilot es un agente de desarrollo de software autónomo y asincrónico integrado en GitHub. El agente puede recoger una tarea de un problema o de Copilot Chat, crear una solicitud de cambios y, a continuación, iterar en la solicitud de cambios en respuesta a los comentarios.
El 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 cambios inicial, el agente puede iterar junto a usted, en función de sus 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 ejecutar linters. El agente se ha evaluado en una variedad de lenguajes de programación, con el inglés como idioma principal admitido.
Funcionamiento del agente (de un extremo a otro)
Procesamiento de mensajes
La tarea proporcionada a Copilot a través de un problema, comentario de solicitud de cambios o mensaje de Copilot Chat se combina con otra información contextual relevante para formar una indicación. Las entradas pueden adoptar la forma de lenguaje natural sin formato, fragmentos de código o imágenes.
Análisis del modelo de lenguaje
A continuación, el mensaje se pasa a través de un modelo de lenguaje grande, que analiza la entrada para ayudar al agente a razonar en la tarea y utilizar las herramientas necesarias.
Generación de respuestas
El modelo de lenguaje genera una respuesta basada en su análisis de la indicación. Esta respuesta puede adoptar la forma 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 los recursos a los que no pudo acceder y proporcionar sugerencias sobre los pasos para resolver.
Puede proporcionar comentarios al agente al comentar dentro de la solicitud de incorporación de cambios o mencionar 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 su comentario con los cambios actualizados.
Copilot está pensado para proporcionarle la solución más relevante para la resolución de tareas. Sin embargo, es posible que no siempre proporcione la respuesta que busca. Usted es responsable de revisar y validar las respuestas generadas por Copilot para asegurarse de que son precisas y adecuadas. Además, como parte de nuestro proceso de desarrollo de productos, GitHub realiza red teaming (pruebas) para comprender y mejorar la seguridad del agente.
Casos de uso para el agente de codificación de Copilot
- Mantenimiento de código base: Correcciones de seguridad, actualizaciones de dependencias y refactorización dirigida.
- Documentación: actualización y creación de nueva 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: Desarrollar conceptos innovadores desde cero.
Mejora del rendimiento del agente de codificación de Copilot
Para mejorar el rendimiento y abordar las limitaciones, use estas medidas:
Asegúrese de que sus tareas estén bien definidas proporcionando 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
El agente de codificación de Copilot aprovecha el mensaje, los comentarios y el código del repositorio como contexto al generar cambios sugeridos. Mejore los resultados agregando instrucciones personalizadas de Copilot para que el agente comprenda cómo compilar, probar y validar sus cambios.
Otras personalizaciones útiles:
- Personalización del entorno de desarrollo para el agente de codificación de GitHub Copilot
- Personalización o deshabilitación del firewall para el agente de codificación de GitHub Copilot
- Extensión del agente de codificación de GitHub Copilot con el protocolo de contexto de modelo (MCP)
Usar el agente de codificación de Copilot como herramienta, no como reemplazo
Revise y pruebe siempre el contenido generado por el agente para asegurarse de que cumple sus requisitos y está libre de errores o problemas de seguridad antes de la combinación.
Uso de procedimientos de codificación y revisión de código seguros
Aunque el agente de codificación de Copilot puede generar código sintácticamente correcto, es posible que no siempre sea seguro. Siga los procedimientos recomendados para la codificación segura (evitar secretos codificados de forma rígida, evitar vulnerabilidades de inyección) y aplicar pruebas rigurosas, examen de IP y comprobaciones de vulnerabilidades.
Proporcionar comentarios
Si encuentra algún problema o limitaciones, use el icono de pulgar hacia abajo debajo de una respuesta del agente o comparta comentarios en el foro de discusión de la comunidad.
Manténgase al día
El agente de codificación de Copilot está evolucionando. Supervise los nuevos riesgos de seguridad y los procedimientos recomendados a medida que surjan.
Medidas de seguridad para el agente de codificación de Copilot
Evitar la elevación de privilegios
- El agente de codificación de Copilot solo responderá a las interacciones de usuarios que tengan acceso de escritura.
- Los flujos de trabajo de acciones desencadenados por las solicitudes de cambios del agente requieren aprobación de un usuario con acceso de escritura antes de que se ejecuten.
- Los caracteres ocultos (que no se muestran en GitHub.com) se filtran para reducir los riesgos de inyección de indicaciones.
Restricción de los permisos de Copilot
- El agente solo accede al repositorio donde está creando una solicitud de cambios; no puede acceder a otros repositorios.
- Las inserciones se limitan a las ramas con nombres que comienzan por copilot/ (no la rama predeterminada).
- El agente no tiene acceso a secretos o variables de acciones de la organización o repositorio en tiempo de ejecución. Solo se pasan al agente los secretos o variables agregadas al entorno de Copilot.
Prevención de la filtración de datos
Un firewall está habilitado de forma predeterminada para evitar la filtración accidental o malintencionada de código o datos confidenciales. Consulte Personalización o deshabilitación del firewall para el agente de codificación de GitHub Copilot.
Limitaciones del agente de codificación de Copilot
Según el código base y las entradas, el rendimiento puede variar. Tenga en cuenta estas restricciones:
- Ámbito y calidad limitados: Es posible que LLM no controle ciertas estructuras de código o lenguajes ocultos; la calidad varía según la cobertura de idioma.
- Posibles sesgos: Los datos de entrenamiento y el contexto recuperado pueden incluir sesgos; El agente puede inclinarse hacia determinados idiomas o estilos.
- Riesgos de seguridad: El código generado se basa en el contexto del repositorio y podría exponer información confidencial si no se revisa; se requiere una revisión exhaustiva.
- Código inexacto: El código puede parecer correcto, pero ser semántica o sintácticamente incorrecto o desalineado con la intención. Valide el ajuste, los patrones y el estilo.
- Código público: El agente puede producir coincidencias o coincidencias cercanas al código público incluso si se establece "Bloquear"; Es posible que no se proporcionen referencias.
- Legal/normativo: Garantizar el cumplimiento de las obligaciones aplicables; evitar usos prohibidos en términos de servicio y códigos de conducta.