El blog de Deska
Un agente escribe código, otro escribe pruebas
Mejora la calidad de tu software con un flujo donde un agente escribe código y otro escribe pruebas de forma simultánea en un entorno multi-agente.
10 min de lectura
El concepto de desarrollo con doble agente está ganando terreno a medida que los desarrolladores se dan cuenta de que un solo contexto de IA a menudo sufre de sesgo de confirmación. Cuando un agente escribe código y otro escribe pruebas, se crea una relación adversarial natural que imita la separación de funciones tradicional de los equipos de ingeniería de alto nivel. Este método garantiza que la lógica sea validada por una entidad que no generó los errores originalmente, lo que resulta en bases de código más resistentes y menos regresiones durante el refactorizado.
El problema de los contextos de un solo agente
Cuando le pides a un solo agente de IA que genere una función y su correspondiente suite de pruebas, el agente suele asumir que su lógica es correcta. Esto conduce a pruebas que validan lo que el código hace actualmente en lugar de lo que especifican los requisitos. Si el agente comete un error de límite en la implementación, es muy probable que repita ese mismo error en las aserciones de la prueba.
Al dividir estas tareas, obligas a un punto de sincronización. El agente de pruebas debe leer la implementación y los requisitos del prompt de forma independiente. Si el agente de código entendió mal un requisito, es mucho más probable que el agente de pruebas detecte la discrepancia porque está abordando el problema desde una perspectiva de verificación en lugar de una creativa.
Arquitecturas de flujo de trabajo multi-agente
Existen varias formas de implementar un flujo de trabajo donde un agente escribe código y otro escribe pruebas. La elección suele depender de tu entorno local y de cuánta visibilidad necesites sobre el proceso.
Traspaso secuencial
En un traspaso secuencial, el primer agente completa la implementación de la característica y luego pasa las rutas de los archivos a un segundo agente. El segundo agente es instruido específicamente para actuar como un ingeniero de QA. Este método es directo pero puede ser lento si el ciclo de retroalimentación requiere múltiples iteraciones para corregir pruebas fallidas.
Ejecución paralela en un lienzo
Un enfoque más moderno implica ejecutar agentes de forma simultánea. En Deska, puedes utilizar el lienzo infinito para abrir múltiples paneles. Puedes tener un panel ejecutando Claude Code para manejar la implementación mientras un segundo panel ejecuta Codex CLI para generar los archivos de prueba. Esta disposición espacial te permite monitorear ambos procesos al mismo tiempo.
El ciclo adversarial
El método más robusto es el ciclo adversarial. Aquí, el proceso sigue un patrón estricto:
- El Agente A escribe la implementación basada en una especificación.
- El Agente B escribe una suite de pruebas exhaustiva.
- El Agente B ejecuta las pruebas e informa de los fallos.
- El Agente A ajusta el código hasta que todas las pruebas pasan.
- El Agente B intenta encontrar casos de borde que aún fallen.
Comparativa de herramientas para flujos multi-agente
Diferentes herramientas gestionan la orquestación de múltiples agentes con distintos grados de éxito. Algunas se enfocan en enjambres totalmente autónomos, mientras que otras priorizan la supervisión del desarrollador.
| Herramienta | Enfoque | Ideal para |
|---|---|---|
| AutoGPT | Ciclos totalmente autónomos | Investigación experimental |
| Deska | Orquestación manual simultánea | Desarrollo profesional |
| OpenDevin | Entorno de pruebas web | Código abierto colaborativo |
| GitHub Copilot | Completado de líneas | Programación rápida de un solo archivo |
Mientras que herramientas como AutoGPT intentan manejar todo automáticamente, a menudo se quedan atrapadas en bucles infinitos. Deska toma un camino diferente al proporcionar agentes de programación como paneles modulares. Puedes observar cada agente en su propia terminal e intervenir si la lógica se desvía.
Implementación práctica con Deska
Para configurar un entorno de doble agente, comienzas organizando tu espacio de trabajo. Puedes abrir un panel de editor de código usando el motor Monaco para ver tus archivos fuente. Luego, colocas dos paneles de terminal uno al lado del otro.
En la primera terminal, podrías iniciar una sesión con Claude Code. En la segunda, lanzas OpenCode. Debido a que Deska es local-first, ambos agentes tienen acceso al mismo sistema de archivos local sin necesidad de subir tu código propietario a una nube de terceros. Puedes usar Ask Deska para abrir rápidamente los archivos necesarios o ejecutar comandos de compilación en todo el espacio de trabajo mediante voz o chat.
Buenas prácticas para pruebas generadas por agentes
Cuando un agente tiene la tarea de probar el código de otra persona (o el de otro agente), los prompts deben enfatizar filosofías de prueba específicas.
- Enfoque en condiciones de borde: Los agentes son excelentes identificando casos límite como cadenas vacías, valores nulos o desbordamientos de enteros si se les indica explícitamente que los busquen.
- Pruebas basadas en requisitos: Proporciona el documento de requisitos original al agente de pruebas para que valide la intención, no solo la implementación.
- Simulación de dependencias externas: Asegúrate de que el agente de pruebas simule llamadas a API y conexiones a bases de datos para que la suite de pruebas sea rápida y determinista.
Gestionar estas sesiones puede volverse complejo, por lo que los hilos de agente son útiles para rastrear qué agente es responsable de cada parte del ciclo de vida. Si necesitas alejarte de tu escritorio, la aplicación móvil te permite monitorear el progreso de suites de pruebas de larga duración a través de un relevo seguro que no requiere exponer puertos.
Preguntas frecuentes
¿Pueden dos agentes de IA trabajar en el mismo archivo?
Generalmente es mejor que trabajen en archivos separados para evitar conflictos de fusión. Un agente escribe código en el directorio de fuentes mientras el otro escribe pruebas en el directorio de tests. Si deben editar el mismo archivo, utiliza una herramienta que soporte sincronización de archivos en tiempo real y proporcione un historial de cambios claro.
¿Qué modelo de IA es mejor para escribir pruebas?
Los modelos con altas capacidades de razonamiento, como Claude 3.5 Sonnet o GPT-4o, suelen destacar al encontrar fallos lógicos. Para la parte de codificación, podrías usar un modelo más rápido y especializado, pero el agente de pruebas idealmente debería ser el modelo más inteligente disponible para asegurar que detecte errores sutiles.
¿Cómo evito que los agentes repitan errores?
Proporciona un archivo de "lecciones aprendidas" o de "guías de estilo" en el contexto de ambos agentes. Cuando el agente de pruebas encuentre un error, debe explicar por qué ocurrió. Luego puedes guardar estos conocimientos en notas dentro de tu espacio de trabajo para informar futuros ciclos de desarrollo.
Comienza con el desarrollo multi-agente
Separar las responsabilidades de implementación y verificación es la forma más efectiva de aprovechar la IA en la ingeniería de software. Al tratar a los agentes como miembros especializados del equipo en lugar de asistentes de propósito general, aumentas la fiabilidad de tu trabajo.
Puedes experimentar con este flujo de trabajo hoy mismo. Deska proporciona la infraestructura necesaria para ejecutar estos agentes en un entorno local unificado. Descarga la aplicación para Mac, Windows o Linux en /download y comienza a construir tu propio lienzo multi-agente.