Ir al contenido

Arquitectura híbrida: Agent Teams + subagentes en Claude Code

El sistema tiene dos capas:

  1. Agent Team — Lead + 3 teammates que debaten entre sí para construir el artefacto
  2. Subagentes — 3 agentes que el Lead lanza para tareas acotadas (investigar, validar, publicar)

La separación no es cosmética — define herramientas disponibles, modelos asignados y estructura de comunicación.

┌─────────────────────────────────────────────────────────────────┐
│ AGENT TEAM │
│ │
│ ┌─────────────────────────────────┐ │
│ │ LEAD │ │
│ │ Modelo: Sonnet │ │
│ └─────────────────────────────────┘ │
│ │ │ │ │
│ FASE 1 FASE 2 FASE 3 │
│ (subagente) (teammates) (subagentes) │
│ │ │ │ │
│ v v v │
│ │
│ ┌──────────────┐ │ ┌──────────────┐ ┌────────────┐ │
│ │ Investigador │ │ │ Validador │ │ Publisher │ │
│ └──────────────┘ │ └──────────────┘ └────────────┘ │
│ Subagente │ Subagentes — corren dentro del Lead│
│ Sin sesión propia │ │
│ v │
│ ┌─────────────────────────────┐ │
│ │ Shared Task List │ │
│ └──────┬──────────┬───────────┘ │
│ │ │ │ │
│ v v v │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Arquitecto│◇│ Revisor │◇│Optimizador│ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ Teammates — Modelo: Opus (siempre) │
│ Sesión propia. Se comunican via Mailbox │
│ │
└─────────────────────────────────────────────────────────────────┘
1. Lead recibe el request del usuario
2. Lead detecta ambigüedades bloqueantes → pregunta antes de arrancar
3. Lead lanza Investigador (subagente, SIN team_name) → recibe research

El Lead no empieza el trabajo sin el research. Si el Investigador no encontró fuente primaria para un comando, lo reporta — el Arquitecto no inventa comandos sin fuente.

4. Lead crea task list con dependencias
5. Lead spawna Arquitecto + Revisor + Optimizador (CON team_name)
→ incluye research del Investigador en el spawn prompt
6. Arquitecto escribe SKILL.md usando la información investigada
7. Revisor cuestiona → debate directo con Arquitecto (máx 2 rondas)
8. Optimizador comprime → elimina lo que Claude ya sabe (< 500 líneas)
9. Lead lanza Validador (subagente, SIN team_name) → PASS o FAIL
10. Si pasa: Lead lanza Publisher (subagente, SIN team_name) → verifica en portal

El Publisher no corre si el Validador falló.

Este es el comportamiento crítico que define la arquitectura:

Los teammates NO tienen acceso al Task Tool. Solo el Lead puede lanzar subagentes.

Si un teammate intenta lanzar un subagente, falla silenciosamente o el sistema lo convierte en un teammate adicional (con team_name), lo que cambia el modelo de Sonnet a Opus y rompe el diseño.

La regla:

  • Investigador, Validador, Publisher → lanzados por el Lead SIN team_name = subagentes en Sonnet
  • Arquitecto, Revisor, Optimizador → lanzados por el Lead CON team_name = teammates en Opus

Agent Teams asigna Opus a los teammates automáticamente, sin importar lo que configures.

MecanismoFunciona
model: haiku en CLAUDE.mdNo — ignorado
”Usa el modelo Sonnet” en el spawn promptNo — es texto, no parámetro de sistema
Modelo global para todos los teammatesSí — pero sin diferenciación por rol
Modelo del Lead sessionSí — los subagentes heredan del Lead

Datos reales de 37 llamadas analizadas:

ComponentePedidoReal
LeadHaikuSonnet (hereda del usuario)
Todos los teammatesHaiku / Sonnet por rolOpus siempre
Subagentes (sin team_name)HaikuSonnet (hereda del Lead)
Haiku usadoNunca, en ninguna demo

Cada rol tiene una condición de salida explícita para evitar loops:

RolCondición de salida
LeadSkill publicada y verificada en el portal
InvestigadorBuscó en máximo 2 fuentes primarias
ArquitectoSKILL.md escrito y Revisor aprobó
RevisorMáximo 2 rondas de objeciones
OptimizadorBody < 500 líneas Y eliminó al menos 1 bloque
ValidadorEjecutó validate.sh y devolvió resultado
PublisherPublicó en portal y verificó con curl

Ver los roles en detalle: contratos y reglas