Compartiendo experiencias de uso del modo Agente de GitHub Copilot

Este artículo resume cómo usar el modo Agente de GitHub Copilot y comparte experiencias prácticas de operación.

Este artículo resume cómo usar el modo Agente de GitHub Copilot y comparte experiencias prácticas de operación.

Configuración previa

  1. Utilizar VSCode Insider;
  2. Instalar el complemento GitHub Copilot (versión preliminar);
  3. Seleccionar el modelo Claude 3.7 Sonnet (versión preliminar), que destaca en la escritura de código, mientras que otros modelos presentan ventajas en velocidad, multimodalidad (como reconocimiento de imágenes) y capacidades de razonamiento;
  4. Seleccionar el modo de trabajo Agente.

Configuración previa

Pasos de operación

  1. Abrir la pestaña “Copilot Edits”;
  2. Agregar archivos adjuntos, como “Codebase”, “Get Errors”, “Terminal Last Commands”, etc.;
  3. Agregar el conjunto de trabajo “Working Set”, que por defecto incluye el archivo actualmente abierto, y también se pueden seleccionar manualmente otros archivos (como “Open Editors”);
  4. Agregar “Instructions”, ingresando las palabras clave que el Agente Copilot debe tener especialmente en cuenta;
  5. Hacer clic en el botón “Send” para iniciar la conversación y observar el desempeño del Agente.

Otras observaciones

  • VSCode puede producir indicaciones de Error o Warning mediante la función lint proporcionada por el complemento de lenguaje, y el Agente puede corregir automáticamente el código según estas indicaciones.
  • A medida que avanza la conversación, los cambios de código generados por el Agente pueden desviarse de las expectativas. Se sugiere enfocar cada sesión en un tema claro y evitar conversaciones demasiado largas; finalizar la sesión actual al alcanzar el objetivo a corto plazo y luego iniciar una nueva tarea.
  • La opción “Add Files” bajo “Working Set” proporciona la opción “Related Files”, que puede recomendar archivos relacionados.
  • Prestar atención al control del número de líneas en un solo archivo de código para evitar un consumo rápido de tokens.
  • Se recomienda generar primero el código base y luego crear casos de prueba, lo que facilita que el Agente depure y se autoverifique según los resultados de las pruebas.
  • Para limitar el alcance de las modificaciones, se pueden agregar las siguientes configuraciones en settings.json, modificando solo los archivos en el directorio especificado como referencia:
 "github.copilot.chat.codeGeneration.instructions": [
        {
            "text": "Solo modificar archivos en el directorio ./script/, no modificar archivos en otros directorios."
        },
        {
            "text": "Si el número de líneas del archivo de código objetivo supera las 1000 líneas, se sugiere colocar las funciones añadidas en un nuevo archivo y llamarlas mediante referencias; si las modificaciones resultantes hacen que el archivo sea demasiado largo, se puede no cumplir estrictamente con esta regla."
        }
    ],
    "github.copilot.chat.testGeneration.instructions": [
        {
            "text": "Generar casos de prueba en los archivos de pruebas unitarias existentes."
        },
        {
            "text": "Es obligatorio ejecutar casos de prueba para validar después de modificar el código."
        }
    ],

Preguntas frecuentes

No se obtiene el código de negocio deseado al ingresar requisitos

Es necesario dividir tareas grandes en tareas más pequeñas, procesando solo una pequeña tarea en cada sesión. Esto se debe a que demasiado contexto en el modelo de gran tamaño puede dispersar la atención.

El contexto proporcionado a una conversación individual necesita ser reflexionado por uno mismo; demasiado o demasiado poco puede llevar a la falta de comprensión de los requisitos.

El modelo DeepSeek resuelve el problema de la dispersión de atención, pero necesita usar la API Deepseek en cursor. No está claro cuál es su efecto.

Problema de respuesta lenta

Es necesario comprender el mecanismo de consumo de tokens; la entrada de tokens es barata y consume menos tiempo, mientras que la salida de tokens es mucho más costosa y notablemente más lenta.

Si un archivo de código es muy grande, aunque solo se necesiten modificar tres líneas de código, debido al gran contexto y a la gran cantidad de salida, el consumo de tokens será rápido y la respuesta lenta.

Por lo tanto, es imprescindible considerar el control del tamaño del archivo, evitando escribir archivos y funciones demasiado grandes. Dividir archivos y funciones grandes oportunamente y llamarlos mediante referencias.

Problema de comprensión del negocio

La comprensión del problema quizás dependa de los comentarios en el código y de los archivos de prueba; complementar suficientes comentarios y casos de prueba en el código ayuda al Agente Copilot a comprender mejor el negocio.

El código de negocio generado por el Agente mismo tiene suficientes comentarios; inspeccionar estos comentarios permite juzgar rápidamente si el Agente ha comprendido correctamente los requisitos.

Generación de gran cantidad de código que requiere una depuración prolongada

Se puede considerar generar casos de prueba después de generar el código base para una característica específica, y luego ajustar la lógica del negocio, permitiendo que el Agente realice su propia depuración y autoverificación.

El Agente preguntará si se le permite ejecutar comandos de prueba; después de ejecutarlos, leerá la salida de la terminal por sí mismo para determinar si el código es correcto. Si no es correcto, modificará según la información del error. Este proceso se repite hasta que las pruebas pasen.

Es decir, uno necesita comprender más el negocio; no se requiere escribir manualmente con mucha frecuencia. Si el código de caso de prueba y el código de negocio no son correctos, el Agente no puede escribir un caso correcto según el negocio, ni tampoco puede escribir un código de negocio correcto según el caso de prueba. En este caso, se presentará una depuración prolongada.

Resumen

Comprender el mecanismo de consumo de tokens del gran modelo; el contexto de entrada es barato, mientras que el código de salida es más costoso, y las partes del archivo que no se modifican pueden contar también como salida. La evidencia es que mucho código que no necesita modificación también se muestra lentamente.

Por lo tanto, se debe intentar controlar el tamaño de un solo archivo; se puede sentir la diferencia en la velocidad de respuesta del Agente al tratar con archivos grandes y pequeños durante el uso, una diferencia muy notable.