Habilidad de Arnés Estilo GAN
Inspirado en el Diseño de Arnés de Anthropic para Desarrollo de Aplicaciones de Larga Duración (24 de marzo de 2026)
Un arnés multiagente que separa la generación de la evaluación, creando un bucle de retroalimentación adversarial que impulsa la calidad mucho más allá de lo que un solo agente puede lograr.
Idea Central
Cuando se les pide evaluar su propio trabajo, los agentes son optimistas patológicos: elogian resultados mediocres y se convencen a sí mismos de que los problemas legítimos no lo son. Pero entrenar a un evaluador separado para que sea implacablemente estricto es mucho más factible que enseñar a un generador a autocríticarse.
Esta es la misma dinámica que las GAN (Redes Generativas Adversarias): el Generador produce, el Evaluador critica, y esa retroalimentación impulsa la siguiente iteración.
Cuándo Usarlo
- Construir aplicaciones completas a partir de un prompt de una sola línea
- Tareas de diseño frontend que requieren alta calidad visual
- Proyectos full-stack que necesitan funcionalidades funcionales, no solo código
- Cualquier tarea donde la estética de "AI slop" sea inaceptable
- Proyectos donde estés dispuesto a invertir $50-200 por un resultado de calidad de producción
Cuándo NO Usarlo
- Correcciones rápidas de un solo archivo (usa
claude -pestándar) - Tareas con restricciones presupuestarias ajustadas (<$10)
- Refactorización simple (usa el patrón de-sloppify en su lugar)
- Tareas que ya están bien especificadas con tests (usa el flujo de TDD)
Arquitectura
┌─────────────┐
│ PLANIFICADOR │
│ (Sonnet) │
└──────┬──────┘
│ Especificación del Producto
│ (características, sprints, dirección de diseño)
▼
┌────────────────────────┐
│ │
│ GENERADOR-EVALUADOR │
│ BUCLE DE RETROALIM. │
│ │
│ ┌──────────┐ │
│ │GENERADOR │--construir-->│──┐
│ │ (Sonnet) │ │ │
│ └────▲─────┘ │ │
│ │ │ │ app en vivo
│ retroalimentación │ │
│ │ │ │
│ ┌────┴─────┐ │ │
│ │EVALUADOR │<-probar----│──┘
│ │ (Sonnet) │ │
│ │+Playwright│ │
│ └──────────┘ │
│ │
│ 5-15 iteraciones │
└────────────────────────┘
Los Tres Agentes
1. Agente Planificador
Rol: Product manager — expande un prompt breve en una especificación completa del producto.
Comportamientos clave:
- Toma un prompt de una línea y produce una especificación de 16 características y múltiples sprints
- Define historias de usuario, requisitos técnicos y dirección de diseño visual
- Es deliberadamente ambicioso — la planificación conservadora lleva a resultados decepcionantes
- Produce criterios de evaluación que el Evaluador usará más tarde
Modelo: Sonnet por defecto; mejora con GAN_PLANNER_MODEL=opus para una expansión de especificación más profunda
2. Agente Generador
Rol: Desarrollador — implementa funcionalidades según la especificación.
Comportamientos clave:
- Trabaja en sprints estructurados (o modo continuo con modelos más nuevos)
- Negocia un "contrato de sprint" con el Evaluador antes de escribir código
- Utiliza herramientas full-stack: React, FastAPI/Express, bases de datos, CSS
- Gestiona git para control de versiones entre iteraciones
- Lee la retroalimentación del Evaluador y la incorpora en la siguiente iteración
Modelo: Sonnet por defecto; mejora con GAN_GENERATOR_MODEL=opus para máxima capacidad de codificación
3. Agente Evaluador
Rol: Ingeniero de QA — prueba la aplicación en vivo, no solo el código.
Comportamientos clave:
- Usa Playwright MCP para interactuar con la aplicación en vivo
- Navega por las funcionalidades, rellena formularios, prueba endpoints de API
- Puntúa según cuatro criterios (configurables):
- Calidad de Diseño — ¿Se siente como un todo coherente?
- Originalidad — ¿Decisiones personalizadas vs. patrones de plantilla/IA?
- Artesanía — ¿Tipografía, espaciado, animaciones, microinteracciones?
- Funcionalidad — ¿Todas las funcionalidades funcionan realmente?
- Devuelve retroalimentación estructurada con puntuaciones y problemas específicos
- Está diseñado para ser implacablemente estricto — nunca elogia trabajo mediocre
Modelo: Sonnet por defecto; mejora con GAN_EVALUATOR_MODEL=opus para un juicio más fuerte + uso de herramientas
Criterios de Evaluación
Los cuatro criterios predeterminados, cada uno puntuado del 1 al 10:
## Rúbrica de Evaluación
### Calidad de Diseño (peso: 0.3)
- 1-3: Genérico, tipo plantilla, estética "AI slop"
- 4-6: Competente pero sin interés, sigue convenciones
- 7-8: Identidad visual distintiva y coherente
- 9-10: Podría pasar por el trabajo de un diseñador profesional
### Originalidad (peso: 0.2)
- 1-3: Colores por defecto, diseños estándar, sin personalidad
- 4-6: Algunas elecciones personalizadas, mayormente patrones estándar
- 7-8: Visión creativa clara, enfoque único
- 9-10: Sorprendente, encantador, genuinamente novedoso
### Artesanía (peso: 0.3)
- 1-3: Diseños rotos, estados faltantes, sin animaciones
- 4-6: Funciona pero se siente tosco, espaciado inconsistente
- 7-8: Pulido, transiciones suaves, responsive
- 9-10: Perfecto al píxel, microinteracciones encantadoras
### Funcionalidad (peso: 0.2)
- 1-3: Funcionalidades principales rotas o ausentes
- 4-6: El camino feliz funciona, los casos límite fallan
- 7-8: Todas las funcionalidades funcionan, buen manejo de errores
- 9-10: A prueba de balas, maneja cada caso límite
Puntuación
- Puntuación ponderada = suma de (puntuación del criterio * peso)
- Umbral de aprobación = 7.0 (configurable)
- Iteraciones máximas = 15 (configurable, normalmente 5-15 suficientes)
Uso
Mediante Comando
# Arnés completo de tres agentes
/project:gan-build "Construye una aplicación de gestión de proyectos con tableros Kanban, colaboración en equipo y modo oscuro"
# Con configuración personalizada
/project:gan-build "Construye una plataforma para compartir recetas" --max-iterations 10 --pass-threshold 7.5
# Modo de diseño frontend (solo generador + evaluador, sin planificador)
/project:gan-design "Crea una página de aterrizaje para un rastreador de cartera de criptomonedas"
Mediante Script de Shell
# Uso básico
./scripts/gan-harness.sh "Construye un panel de control para streaming de música"
# Con opciones
GAN_MAX_ITERATIONS=10 \
GAN_PASS_THRESHOLD=7.5 \
GAN_EVAL_CRITERIA="functionality,performance,security" \
./scripts/gan-harness.sh "Construye una API REST para gestión de tareas"
Mediante Claude Code (Manual)
# Paso 1: Planificar
claude -p --model sonnet "Eres un Planificador de Producto. Lee PLANNER_PROMPT.md. Expande este breve resumen en una especificación completa del producto: 'Construye una aplicación de tablero Kanban'. Escribe la especificación en spec.md"
# Paso 2: Generar (iteración 1)
claude -p --model sonnet "Eres un Generador. Lee spec.md. Implementa el Sprint 1. Inicia el servidor de desarrollo en el puerto 3000."
# Paso 3: Evaluar (iteración 1)
claude -p --model sonnet --allowedTools "Read,Bash,mcp__playwright__*" "Eres un Evaluador. Lee EVALUATOR_PROMPT.md. Prueba la aplicación en vivo en http://localhost:3000. Puntúa según la rúbrica. Escribe la retroalimentación en feedback-001.md"
# Paso 4: Generar (iteración 2 — lee la retroalimentación)
claude -p --model sonnet "Eres un Generador. Lee spec.md y feedback-001.md. Aborda todos los problemas. Mejora las puntuaciones."
# Repite los pasos 3-4 hasta que se alcance el umbral de aprobación
Evolución a Través de las Capacidades del Modelo
El arnés debería simplificarse a medida que los modelos mejoran. Siguiendo la evolución de Anthropic:
Etapa 1 — Modelos Más Débiles (clase Sonnet)
- Descomposición completa en sprints requerida
- Reinicios de contexto entre sprints (evitar ansiedad de contexto)
- Mínimo de 2 agentes: Inicializador + Agente de Codificación
- Andamiaje pesado compensa las limitaciones del modelo
Etapa 2 — Modelos Capaces (clase Opus 4.5)
- Arnés completo de 3 agentes: Planificador + Generador + Evaluador
- Contratos de sprint antes de cada fase de implementación
- Descomposición en 10 sprints para aplicaciones complejas
- Los reinicios de contexto siguen siendo útiles pero menos críticos
Etapa 3 — Modelos Frontera (clase Opus 4.6)
- Arnés simplificado: una sola pasada de planificación, generación continua
- Evaluación reducida a una sola pasada final (el modelo es más inteligente)
- No se necesita estructura de sprint
- La compactación automática maneja el crecimiento del contexto
Principio clave: Cada componente del arnés codifica una suposición sobre lo que el modelo no puede hacer solo. Cuando los modelos mejoran, vuelve a probar esas suposiciones. Elimina lo que ya no sea necesario.
Configuración
Variables de Entorno
| Variable | Valor por Defecto | Descripción |
|---|---|---|
GAN_MAX_ITERATIONS | 15 | Ciclos máximo de generador-evaluador |
GAN_PASS_THRESHOLD | 7.0 | Puntuación ponderada para aprobar (1-10) |
GAN_PLANNER_MODEL | sonnet | Modelo para el agente planificador |
GAN_GENERATOR_MODEL | sonnet | Modelo para el agente generador |
GAN_EVALUATOR_MODEL | sonnet | Modelo para el agente evaluador |
GAN_EVAL_CRITERIA | design,originality,craft,functionality | Criterios separados por comas |
GAN_DEV_SERVER_PORT | 3000 | Puerto para la aplicación en vivo |
GAN_DEV_SERVER_CMD | npm run dev | Comando para iniciar el servidor de desarrollo |
GAN_PROJECT_DIR | . | Directorio de trabajo del proyecto |
GAN_SKIP_PLANNER | false | Omitir planificador, usar especificación directamente |
GAN_EVAL_MODE | playwright | playwright, screenshot o code-only |
Modos de Evaluación
| Modo | Herramientas | Mejor Para |
|---|---|---|
playwright | Browser MCP + interacción en vivo | Aplicaciones full-stack con interfaz de usuario |
screenshot | Captura de pantalla + análisis visual | Sitios estáticos, solo diseño |
code-only | Tests + linting + compilación | APIs, librerías, herramientas CLI |
Anti-patrones
-
Evaluador demasiado indulgente — Si el evaluador aprueba todo en la iteración 1, tu rúbrica es demasiado generosa. Ajusta los criterios de puntuación y añade penalizaciones explícitas por patrones comunes de IA.
-
Generador ignorando la retroalimentación — Asegúrate de que la retroalimentación se pase como un archivo, no en línea. El generador debe leer
feedback-NNN.mdal inicio de cada iteración. -
Bucles infinitos — Siempre establece
GAN_MAX_ITERATIONS. Si el generador no puede mejorar después de 3 iteraciones en una meseta de puntuación, detente y marca para revisión humana. -
Evaluador probando superficialmente — El evaluador debe usar Playwright para interactuar con la aplicación en vivo, no solo capturarla. Haz clic en botones, rellena formularios, prueba estados de error.
-
Evaluador elogiando sus propias correcciones — Nunca permitas que el evaluador sugiera correcciones y luego evalúe esas correcciones. El evaluador solo critica; el generador corrige.
-
Agotamiento del contexto — Para sesiones largas, usa la compactación automática del Claude Agent SDK o reinicia el contexto entre fases principales.
Resultados: Qué Esperar
Basado en los resultados publicados por Anthropic:
| Métrica | Agente Solo | Arnés GAN | Mejora |
|---|---|---|---|
| Tiempo | 20 min | 4-6 horas | 12-18 veces más |
| Costo | $9 | $125-200 | 14-22 veces más |
| Calidad | Apenas funcional | Listo para producción | Cambio de fase |
| Funcionalidades principales | Rotas | Todas funcionando | N/A |
| Diseño | AI slop genérico | Distintivo, pulido | N/A |
La compensación es clara: ~20 veces más tiempo y costo por un salto cualitativo en la calidad del resultado. Esto es para proyectos donde la calidad importa.
Referencias
- Anthropic: Diseño de Arnés para Aplicaciones de Larga Duración — Artículo original de Prithvi Rajasekaran
- Epsilla: El Bucle de Agente Estilo GAN — Deconstrucción de la arquitectura
- Martin Fowler: Ingeniería de Arneses — Contexto más amplio de la industria
- OpenAI: Ingeniería de Arneses — Trabajo paralelo de OpenAI