11. Subagentes para trabajo especializado

Objetivo del tema

Comprender qué son los subagentes en Qwen Code, cómo se configuran, qué ventajas aportan frente al uso de un único agente generalista y cómo se pueden usar para delegar trabajo especializado dentro de un proyecto.

Este tema se apoya en la documentación oficial disponible al 11 de abril de 2026, especialmente en Subagents dentro de Qwen Code Docs y en la referencia del tool task para comprender cómo Qwen Code delega trabajo especializado.

11.1 Qué es un subagente

La documentación oficial define a los subagentes como asistentes especializados que manejan tipos concretos de tareas dentro de Qwen Code. En vez de pedirle todo al agente principal, podés delegar trabajos puntuales en agentes configurados con su propio enfoque, su propio prompt y, opcionalmente, sus propias herramientas.

La idea central es muy poderosa: un agente principal puede seguir siendo generalista, pero subdelegar ciertos tipos de trabajo en agentes especialmente preparados para testing, documentación, refactoring, seguridad, revisión de código o tecnologías concretas.

Los subagentes no reemplazan al agente principal. Lo complementan, permitiendo especialización, aislamiento de contexto y reutilización de experiencia.

11.2 Qué ventajas aportan

La documentación oficial enumera varios beneficios de los subagentes. En términos prácticos, los más importantes son estos:

  • Especialización: cada subagente puede estar optimizado para una familia de tareas.
  • Aislamiento de contexto: el trabajo especializado no ensucia innecesariamente la conversación principal.
  • Reutilización: una configuración de subagente puede usarse muchas veces.
  • Control de herramientas: se puede limitar qué tools tiene disponibles cada subagente.
  • Visibilidad: la documentación indica que se puede ver su progreso, uso de herramientas y estadísticas de ejecución.

Estas ventajas hacen que los subagentes resulten especialmente interesantes cuando el trabajo empieza a dividirse naturalmente en especialidades.

11.3 Cómo funciona la delegación

La documentación resume el flujo de subagentes en cuatro etapas:

  1. Configuración: se define el subagente con su nombre, descripción, prompt y herramientas.
  2. Delegación: el agente principal detecta que una tarea coincide con la especialización de un subagente.
  3. Ejecución: el subagente trabaja con su contexto separado.
  4. Resultado: devuelve resumen y resultados a la conversación principal.

Esta arquitectura es interesante porque combina dos cosas que normalmente compiten entre sí:

  • un flujo de trabajo unificado para el usuario
  • una estructura interna más modular y especializada

11.3.1 Delegación automática y delegación explícita

Qwen Code puede delegar de dos maneras. La primera es automática: el agente principal interpreta tu pedido, compara ese pedido con las descripciones de los subagentes disponibles y deriva la tarea al que mejor encaja. La segunda es explícita: vos mismo pedís que intervenga un subagente concreto.

La documentación oficial indica que la delegación automática se apoya sobre todo en tres señales:

  • la descripción de la tarea que escribís
  • el campo description de cada subagente
  • el contexto actual y las herramientas disponibles

También muestra que se puede solicitar un subagente en forma directa. En castellano, ejemplos razonables serían estos:

haz que el subagente testing-expert cree pruebas unitarias para el módulo de pagos
usa el subagente documentation-writer para actualizar la referencia de la API
pedile al subagente react-specialist que optimice el rendimiento de este componente

Esto conviene remarcarlo porque evita una confusión frecuente: los subagentes no son solo una automatización interna. También pueden formar parte de un flujo de trabajo deliberado, donde el usuario decide qué especialista quiere activar.

11.4 Diferencia entre subagentes, skills y custom commands

Como en el curso ya vimos skills y comandos personalizados, conviene dejar clara la diferencia.

Subagentes, skills y comandos personalizados
Mecanismo Para qué sirve Quién lo activa
Subagente Delegar trabajo especializado a otro agente. El agente principal o el flujo configurado.
Skill Aportar conocimiento o instrucciones especializadas. El modelo, automáticamente.
Custom command Crear atajos reutilizables para prompts o acciones frecuentes. El usuario, explícitamente.

Una forma simple de recordarlo es esta:

  • la skill especializa conocimiento
  • el custom command especializa un atajo
  • el subagente especializa la ejecución

11.5 Cómo se crean

La documentación oficial indica un camino guiado muy simple para crear el primer subagente:

/agents create

Este comando abre un asistente que permite definir los datos principales del agente especializado. También existe un comando de administración para ver los subagentes ya disponibles:

/agents manage

Esto es importante porque muestra que Qwen Code no trata a los subagentes como una función oculta o exclusivamente técnica. Están integrados directamente en la experiencia del CLI.

11.6 Dónde se guardan

La documentación indica que los subagentes pueden provenir de varias capas de configuración:

Ubicación de subagentes
Tipo Ruta Prioridad
Proyecto .qwen/agents/ Alta
Usuario ~/.qwen/agents/ Baja
Extensión .qwen/extensions/<extension>/agents/ Depende de la extensión

La documentación aclara que los subagentes de proyecto tienen precedencia sobre los de usuario. Eso permite que un repositorio defina agentes propios del dominio sin depender de la configuración personal de cada desarrollador. Además, las extensiones activas también pueden aportar subagentes listos para usar.

11.6.1 Subagentes provistos por extensiones

Este punto es importante porque amplía bastante el alcance del sistema. Qwen Code puede descubrir subagentes definidos por extensiones habilitadas. Esos agentes aparecen en /agents manage bajo la sección de agentes de extensión y siguen el mismo formato general que los agentes personales o de proyecto.

La consecuencia práctica es muy clara: un equipo puede instalar una extensión que ya venga con especialistas para un dominio concreto, por ejemplo despliegue en la nube, documentación interna, pipelines o revisión de infraestructura.

  • se descubren automáticamente cuando la extensión está habilitada
  • no se editan directamente desde el proyecto común, sino desde la fuente de la extensión
  • permiten distribución reutilizable de agentes especializados entre muchos proyectos

11.7 Formato de un subagente

Al igual que las skills, los subagentes se configuran como archivos Markdown con YAML frontmatter. La documentación da una estructura básica como esta:

---
name: agent-name
description: descripción breve de cuándo y cómo usar este agente
tools:
  - tool1
  - tool2
  - tool3
---

Aquí va el prompt del sistema.
Puede tener varios párrafos.
También puede usar variables como ${project_name} o ${timestamp}.

Esto significa que cada subagente define al menos tres cosas esenciales:

  • nombre
  • descripción
  • prompt del sistema

Opcionalmente también puede restringir o enumerar herramientas, lo que vuelve al subagente más controlado y más seguro. El uso de variables templadas es útil para inyectar contexto dinámico sin reescribir el agente cada vez.

11.8 Qué papel cumple la descripción

La descripción no es un adorno. La documentación insiste en que debe explicar cuándo usar el subagente y qué tipo de trabajo realiza. Eso le da al agente principal una señal para decidir si conviene delegar una tarea hacia ese especialista.

Ejemplo débil:

description: Helps with coding

Ejemplo mejor:

description: Writes and improves automated tests for JavaScript and TypeScript projects. Use when you need unit, integration or regression tests.

La diferencia es la misma que en skills: cuanto más específica es la descripción, mejor puede actuar el sistema.

11.9 Ejemplo conceptual de subagente

La documentación oficial muestra ejemplos de agentes como documentation writer, testing specialist o code reviewer. Adaptando esa lógica, un ejemplo razonable sería:

---
name: testing-expert
description: Crea y mejora pruebas automatizadas para módulos de backend. Úsalo cuando se necesiten tests unitarios, de integración o regresión.
tools: read_file, edit, shell_command
---

Eres un especialista en testing.
Tu responsabilidad es proponer y crear pruebas automatizadas claras,
mantener cobertura útil y evitar cambios innecesarios fuera del alcance.

Este ejemplo muestra muy bien la lógica del formato:

  • nombre corto y claro
  • descripción enfocada
  • prompt del sistema con responsabilidad delimitada

11.10 Casos de uso típicos

La documentación enumera varias familias de subagentes especialmente útiles. Entre los ejemplos más naturales están:

  • Testing specialist
  • Documentation writer
  • Code reviewer
  • React specialist
  • Python expert

En la práctica, esto se traduce en escenarios como:

  • delegar la creación de tests para un módulo concreto
  • pedir a un subagente que redacte documentación
  • derivar una revisión de seguridad o mantenibilidad
  • asignar a un especialista en framework la resolución de una tarea acotada

11.11 Especialización por workflow o por tecnología

La documentación sugiere dos grandes maneras de diseñar subagentes:

  • por flujo de trabajo: testing, documentación, revisión, despliegue
  • por tecnología: React, Python, backend, frontend, SQL, seguridad

Ambos enfoques son válidos. Lo importante es no mezclar demasiadas responsabilidades en el mismo agente, porque cuanto más amplio es el alcance, menos útil resulta la especialización.

El mejor subagente no es el más “inteligente”, sino el más claro en su responsabilidad.

11.12 Principios de diseño recomendados

La documentación oficial enumera varias buenas prácticas de diseño. Entre las más importantes:

  • Single responsibility principle: un subagente, una especialidad principal.
  • Clear specialization: describir con precisión cuándo usarlo.
  • Actionable descriptions: que la descripción sea operativa y no genérica.
  • Prompts acotados: evitar instrucciones demasiado abiertas o contradictorias.

Estas reglas son muy parecidas a las de skills, pero en subagentes importan todavía más, porque lo que está en juego no es solo conocimiento, sino ejecución delegada.

11.13 Herramientas y control de acceso

La documentación remarca que los subagentes pueden configurarse con acceso controlado a herramientas. Esto es importante por dos razones:

  • seguridad: no todos los especialistas necesitan acceso a todo
  • foco: limitar herramientas reduce dispersión y errores

Por ejemplo:

  • un subagente de documentación quizás solo necesite lectura y edición
  • un subagente de testing puede necesitar también shell para correr pruebas
  • un revisor puede necesitar lectura, pero no edición automática

Esto vuelve a los subagentes una pieza importante también desde el punto de vista de la seguridad operativa.

11.14 Contexto aislado y resultados

Uno de los puntos más interesantes de la documentación es que los subagentes mantienen historial separado respecto de la conversación principal. Eso significa que el trabajo especializado no arrastra todo su detalle al chat principal, aunque sí devuelve un resumen de resultados.

Este aislamiento de contexto tiene ventajas muy concretas:

  • reduce ruido en la conversación principal
  • hace más clara la separación de responsabilidades
  • permite que cada subagente trabaje con un prompt mejor enfocado

La documentación también menciona visibilidad de progreso y estadísticas de ejecución, lo que ayuda a seguir el trabajo sin perder control.

En la referencia del tool task aparece además un matiz muy importante: cuando un subagente se ejecuta como tarea delegada, su ejecución es sin estado y de un solo uso. Es decir, recibe un prompt completo, realiza el trabajo, devuelve un resultado final y termina.

Esto conviene entenderlo bien. Un subagente no funciona como un segundo chat permanente que queda abierto al costado. Opera más bien como un especialista temporal que entra, ejecuta una misión concreta y luego entrega su informe al agente principal.

11.15 Paralelismo y tool task

La documentación para desarrolladores explica que el tool task es la pieza que permite lanzar subagentes especializados para trabajos complejos y, cuando hace falta, en paralelo. Esto es útil cuando hay tareas independientes que no necesitan esperar una a la otra.

task(
  description="Revisión de código",
  prompt="Revisa los cambios recientes en el módulo de usuarios y detecta problemas de calidad o seguridad.",
  subagent_type="code-reviewer"
)

task(
  description="Ejecución de pruebas",
  prompt="Ejecuta la suite de pruebas y resume los fallos encontrados.",
  subagent_type="test-runner"
)

No hace falta que el alumno memorize esta sintaxis de inmediato. Lo importante en este punto es comprender la arquitectura: los subagentes no solo especializan trabajo, también permiten repartirlo.

11.16 Gestión de subagentes desde el CLI

Para administración práctica, la documentación destaca estos comandos:

/agents create
/agents manage

/agents create abre un asistente guiado para construir un nuevo subagente. /agents manage permite listar y gestionar los ya existentes. Esto hace que la función sea accesible también para usuarios que no quieran editar archivos Markdown a mano desde el principio.

11.17 Errores frecuentes al trabajar con subagentes

Los errores más comunes suelen estar relacionados con diseño demasiado amplio, metadatos débiles o expectativas equivocadas sobre automatización.

Problemas típicos y causa probable
Problema Causa probable Primer paso razonable
El subagente no se usa nunca Descripción demasiado vaga o especialización poco distinguible. Reescribir la descripción con un foco más concreto.
El subagente intenta hacer demasiado Su prompt mezcla varias responsabilidades. Separar en dos agentes más acotados.
El agente especializado ejecuta más de la cuenta Acceso a herramientas demasiado amplio. Reducir el conjunto de tools disponibles.
La configuración de proyecto no se aplica El archivo está en la carpeta equivocada o hay otra definición que toma precedencia. Verificar `.qwen/agents/` y `~/.qwen/agents/`.
Se espera una conversación continua con el especialista Se entendió mal el modelo de ejecución del subagente. Recordar que en el flujo task el subagente ejecuta, responde y termina.

11.18 Síntesis final

Los subagentes permiten convertir a Qwen Code en un sistema más modular y especializado. En lugar de concentrar todo en un único agente generalista, podés delegar partes del trabajo en asistentes configurados con responsabilidad, contexto y herramientas específicas.

En este tema vimos las ideas centrales:

  1. Un subagente es un asistente especializado con contexto separado.
  2. Se configura en Markdown con YAML frontmatter.
  3. Puede vivir a nivel de proyecto, usuario o extensión, con prioridad para el proyecto.
  4. Puede activarse por delegación automática o por pedido explícito del usuario.
  5. La especialización clara y el control de herramientas son claves para su diseño.
  6. Su verdadero valor está en delegar trabajo bien delimitado, no en multiplicar agentes sin criterio.

Con esta base, el siguiente paso natural es estudiar los servidores MCP y las herramientas externas, que permiten ampliar todavía más el alcance operativo del agente.