El blog de Deska
Cómo lograr que los agentes sigan las convenciones del proyecto
Aprende a mejorar la calidad del código logrando que los agentes sigan las convenciones del proyecto mediante prompts de sistema y herramientas como Deska.
· 9 min de lectura
Al trabajar con asistentes de codificación con IA, uno de los desafíos más persistentes es asegurar que el resultado se alinee con el código base existente. Incluso los modelos más avanzados tienden a seguir por defecto las mejores prácticas generales, las cuales podrían entrar en conflicto con tus decisiones arquitectónicas específicas. Lograr que los agentes sigan las convenciones del proyecto no es solo una cuestión estética, se trata de mantener un sistema predecible donde cada línea de código parezca escrita por el mismo equipo.
El costo del código generado por IA que no cumple normas
Cuando un agente ignora las reglas de tu proyecto, introduce deuda técnica de inmediato. Podrías encontrar una mezcla de componentes funcionales y basados en clases en un proyecto de React, o una combinación de diferentes convenciones de nomenclatura en un mismo directorio. Esta inconsistencia obliga a los desarrolladores humanos a dedicar tiempo a refactorizar el código generado por la IA, lo que anula las ventajas de velocidad al usar agentes.
Existen tres áreas principales donde los agentes suelen tener dificultades:
- Patrones arquitectónicos: Elegir la capa incorrecta para la lógica de negocio.
- Sintaxis y formato: Ignorar las reglas de
PrettieroESLintdefinidas en el repositorio. - Estilo de documentación: Escribir JSDoc cuando el proyecto usa TSDoc, o viceversa.
Estrategias para la elaboración de instrucciones
La forma más efectiva de asegurar que un agente respete tus reglas es mediante una elaboración de instrucciones precisa. Esto implica más que una simple mención en un prompt. Debes proporcionar un contexto estructurado que el agente pueda consultar como fuente de verdad.
El enfoque del System Prompt
La mayoría de los agentes permiten usar un prompt de sistema o un archivo al estilo .cursorrules. Cuando defines tus expectativas aquí, estableces los límites para cada interacción posterior. En lugar de decir "sé consistente", deberías proporcionar ejemplos específicos de cómo se ve la consistencia en tu proyecto.
Proporcionar ejemplos negativos
A menudo, los agentes aprenden mejor cuando se les dice qué no hacer. Si tu proyecto evita explícitamente ciertas librerías o patrones, como usar fetch en lugar de axios, deberías enumerarlos como patrones prohibidos. Esto reduce el espacio de búsqueda para el agente y conduce a sugerencias más precisas.
Integración de agentes en el espacio de trabajo
El entorno donde se ejecuta un agente afecta significativamente su capacidad para percibir el contexto del proyecto. Las interfaces de chat tradicionales suelen carecer de la imagen completa de tu entorno local. Aquí es donde un espacio de trabajo especializado resulta valioso.
Deska ofrece un lienzo infinito donde puedes ejecutar múltiples agentes lado a lado. Al usar coding agents como Claude Code u OpenCode en paneles separados, puedes observar cómo diferentes modelos interpretan tus convenciones. Debido a que Deska es local-first, estos agentes tienen acceso directo a tu sistema de archivos, lo que les permite leer tus archivos de configuración y patrones de código existentes.
Validación en tiempo real
Una forma de imponer las convenciones es tener un panel de terminal ejecutando un script de observación. En Deska, puedes organizar tus terminals justo al lado de tu panel de editor de código. Si un agente escribe código que viola una regla de linting, la terminal mostrará el error inmediatamente. Luego, puedes señalar al agente la salida de la terminal para que se corrija solo.
Aprovechamiento de flujos de trabajo multi-agente
A veces, un solo agente no es suficiente para mantener estándares estrictos. Puedes usar una estrategia de doble agente donde un agente genera el código y un segundo agente actúa como revisor.
- El Agente Creador: Enfocado en resolver el requerimiento funcional.
- El Agente Revisor: Enfocado exclusivamente en las convenciones del proyecto y las guías de estilo.
- El Bucle de Retroalimentación: El Revisor proporciona una lista de violaciones al Creador.
Este proceso es más fácil de gestionar cuando puedes ver ambos agent threads simultáneamente. Al colocar estos paneles en un lienzo infinito, puedes seguir el flujo de la conversación sin perder de vista el código fuente.
El papel de las herramientas automatizadas
Si bien las instrucciones son vitales, deben estar respaldadas por la automatización. Tu proyecto debe tener un conjunto sólido de archivos de configuración que los agentes puedan descubrir.
| Herramienta | Propósito en la alineación del agente |
|---|---|
| .editorconfig | Define ajustes básicos del editor como indentación y finales de línea. |
| tsconfig.json | Obliga al agente a respetar niveles específicos de rigor en TypeScript. |
| .eslintrc | Proporciona un conjunto de reglas estilísticas legibles por máquina. |
| README.md | Puede usarse para explicar la arquitectura de alto nivel al agente. |
Cuando estos archivos están presentes, herramientas como Ask Deska pueden ayudar a navegar el proyecto. Puedes pedirle al asistente que "busque el archivo que define nuestras convenciones de nomenclatura de API" o que "verifique si la sesión actual sigue nuestros estándares de código". El asistente puede entonces manejar el espacio de trabajo para abrir los archivos relevantes para que el agente los analice.
Monitoreo remoto y consistencia
La consistencia no se detiene cuando te levantas de tu escritorio. Si estás ejecutando una tarea larga de refactorización usando un agente, es posible que necesites revisar su progreso. La aplicación mobile de Deska te permite monitorear estas sesiones a través de un relevo seguro. Si notas que un agente comienza a desviarse de las convenciones del proyecto mientras estás fuera, puedes intervenir y proporcionar una corrección de rumbo desde tu teléfono.
FAQ
¿Cómo lograr que la IA siga el estilo de código?
Para que una IA siga un estilo de código específico, debes proporcionar un prompt de sistema exhaustivo que incluya tu guía de estilo. Además, asegúrate de que tu proyecto tenga archivos de configuración claros como .eslintrc o .prettierrc que la IA pueda leer. Usar un entorno donde el agente tenga acceso a todo tu contexto local es esencial.
¿Pueden los agentes leer las reglas locales del proyecto?
Sí, la mayoría de los agentes de codificación modernos pueden leer archivos locales si se les otorga permiso o si se ejecutan en un entorno local. Las herramientas que priorizan un enfoque local-first permiten que los agentes escaneen tu directorio en busca de archivos de configuración y código existente.
¿Por qué mi agente ignora mis instrucciones?
Los agentes pueden ignorar instrucciones si la ventana de contexto está demasiado saturada o si las instrucciones son contradictorias. Es importante mantener las convenciones de tu proyecto de forma concisa y bien estructurada. Si un agente falla constantemente, intenta dividir la tarea en partes más pequeñas y usa un agente revisor dedicado.
Empieza a construir proyectos consistentes
Mantener un código limpio requiere las herramientas adecuadas y un enfoque disciplinado en la interacción con agentes. Al combinar una elaboración de instrucciones clara con un espacio de trabajo local potente, puedes asegurar que la IA se convierta en un activo en lugar de una fuente de deuda técnica.
Descarga Deska para comenzar a organizar tus agentes y código en un único espacio de trabajo infinito hoy mismo.