Hace poco intenté generar tests para un código preexistente usando GitHub Copilot en Android Studio y Visual Studio Code. Primero probé con el modo «Edit»… y fue un desastre.
El código generado:
- No seguía el estilo del proyecto.
- No compilaba por múltiples errores.
- Requería demasiada corrección manual.
Cuando yo estaba decido a darlo por imposible, probé con el modo «Agent» y el resultado fue brutal. El código generado compiló sin problemas, seguía el mismo estilo que el resto de código y hacía lo que tenía que hacer. ¡Genial!
✨ ¿Por qué esta diferencia?
Porque el contexto es la clave para que un LLM genere buenos resultados.
El punto de partida fue el mismo en ambos casos, indiqué el fichero de código sobre el que debía basarse. Sin embargo (lo puedes ver en las capturas):
❌ Modo «Edit»: Se limitó a leer dicho fichero y generar los tests a partir de ahí.
✅ Modo «Agent»: En primer lugar buscó otros tests similares en el código para entender cómo estaban hechos y seguir el mismo estilo. Luego generó el código.
Resultado: mucho mejor código y menos tiempo perdido.
Sin duda, voy a seguir usando el modo «Agent» de Copilot en mi día a día, pero se puede hacer mejor.
Me explico.
Copilot Agent actúa como un programador que llega a un proyecto nuevo: busca otro código parecido al que quiere crear y lo toma como referencia. Al principio está bien, pero a larga lo ideal es que esta persona interiorice este conocimiento. Aunque acabe consultando algún detalle concreto, conocer el proyecto en global le hará ser más eficiente y efectivo. Algo parecido es los que ofrecen otras herramientas como Aider o Cline. Construyen una base de conocimiento a partir del código existente que después utilizan para poder incorporar a la ventana de contexto los detalles necesarios para que el LLM acabe generando el mejor resultado.