Los ingenieros a cargo de proyectos heredados (legacy) a gran escala pasan 2 horas al día hurgando en montones de código. El método de perseguir cadenas de texto con grep ya ha llegado a su límite. Incluso si desea adoptar agentes de IA, la realidad es que no es evidente cómo integrarlos en el flujo de trabajo. Este artículo trata sobre procedimientos técnicos concretos para establecer los agentes no como simples chatbots, sino como herramientas que aumentan la productividad en el trabajo real.
Primero, elimine el ruido
Si le entrega todo el código base a un agente, el contexto se contaminará. Si aprende datos innecesarios, dará respuestas erróneas y solo desperdiciará costos de tokens. Simplemente limitando el alcance de la indexación, la velocidad de respuesta mejorará de forma perceptible.
Aplique las siguientes 3 cosas inmediatamente:
- Cree un archivo .cursorignore en la raíz del proyecto. Excluya incondicionalmente los artefactos de compilación masivos como /dist, /build, /target, node_modules.
- Excluya también los stubs de Protobuf o los archivos *.gen.ts generados automáticamente. Esto puede evitar que el agente genere código que ignore la compatibilidad retroactiva.
- Utilice herramientas de sincronización basadas en árboles de Merkle. En lugar de recrear todo el índice cada vez, actualice solo los valores hash de los archivos modificados para aumentar la velocidad de indexación en más de 3 veces.
Rastree las dependencias con árboles sintácticos
La búsqueda basada en texto nunca podrá encontrar relaciones de herencia complejas. Debe analizar el árbol sintáctico (AST) del código con herramientas como ast-grep. Si incorpora esto en el prompt, será posible realizar consultas mucho más sofisticadas que una simple búsqueda.
- Defina el patrón sintáctico del objetivo que desea analizar. Por ejemplo, escriba un patrón de función asíncrona sin manejo de errores usando la sintaxis de ast-grep.
- Entregue este patrón junto con la herramienta @codebase al agente. En este punto, añada instrucciones para limitar el alcance, de modo que ignore las bibliotecas externas y busque solo las relaciones de herencia entre módulos internos.
- Haga que el agente genere los resultados como un diagrama de Mermaid. Visualizar flujos de llamadas complejos puede reducir el tiempo de resolución de problemas en aproximadamente un 40%.
Valide las correcciones con pruebas
Las correcciones propuestas por la IA suelen tener errores en su mayoría. Si las fusiona (merge) tal cual, solo acumulará deuda técnica. Integre el análisis de impacto de pruebas (TIA) en su pipeline de CI para automatizar el ciclo de validación.
- Escriba un script que seleccione y ejecute solo las pruebas relacionadas con el código modificado, como --findRelatedTests de Jest.
- Dé instrucciones al agente. Configure un bucle para que, si una prueba falla, el agente analice el registro de errores y corrija el código por sí mismo.
- Inserte herramientas como CodeQL en la etapa de CI. Esto filtrará automáticamente incluso las vulnerabilidades de seguridad que son difíciles de detectar para un humano.
Si construye este ciclo, puede aumentar drásticamente la precisión de la validación de la validez sintáctica. No es necesario desechar todas las herramientas existentes. ripgrep sigue siendo más de 10 veces más rápido que un agente para búsquedas simples. La verdadera labor de un ingeniero senior es separar los roles según las características de las herramientas.
