Esencia del patron
Task Decomposition es un patron que permite que un agente divida una tarea compleja en subtareas mas pequenas antes de la ejecucion.
Cuando usarlo: cuando una tarea compleja no puede completarse de forma fiable en un solo paso y hay que dividirla en subtareas.
En lugar de resolver todo de una vez, el agente:
- analiza la tarea
- define pasos
- los ejecuta en secuencia
Cada paso es una subtarea separada.

Problema
Imagina que el agente recibe una tarea:
"Prepara un reporte mensual de ventas."
En la practica, no es un solo paso, sino una secuencia de subtareas:
- recopilar datos
- limpiarlos y validarlos
- calcular metricas
- redactar la conclusion
Sin un plan explicito, una tarea compleja se vuelve opaca rapidamente: se pierden pasos y la logica se rompe.
Si el agente intenta hacerlo todo "en una sola pasada", normalmente aparece caos:
- faltan pasos intermedios
- orden de ejecucion incorrecto
- mezcla entre planificacion y ejecucion
- control de errores debil
Ese es el problema: sin estructura, es facil ejecutar una tarea compleja de forma inestable y con errores.
Solucion
Task Decomposition agrega una etapa separada de planificacion antes de ejecutar.
Analogia: es como armar muebles con instrucciones. Sin instrucciones, es facil confundir el orden o saltarse una pieza. Con instrucciones, cada paso es transparente y el error es mas facil de encontrar.
Principio clave: primero plan, luego acciones. Eso hace que el proceso sea controlable.
Para evitar que el agente salte directo a la respuesta final, decomposition-policy fija:
- que subtareas son obligatorias
- en que orden deben ejecutarse
- cuando hay que hacer
re-plan
El proceso controlado se ve asi (como en el diagrama):
- Goal: aclarar objetivo y restricciones
- Plan: dividir la tarea en subtareas y dependencias
- Ejecucion de pasos (Step 1..N / Execute): ejecutar subtareas segun el plan
- Combine Results: unir resultados de los pasos en uno solo
- Done: producir el resultado final
El guardado intermedio de resultados (checkpoint) ocurre dentro de la etapa de ejecucion.
Task Decomposition ayuda a:
- aumentar la previsibilidad
- no perder etapas importantes
- localizar errores en un paso concreto
- obtener resultados mas estables en tareas largas
Funciona mejor si:
- hay limites claros de pasos y dependencias
- cada paso tiene un criterio de finalizacion
- hay reglas de re-plan cuando cambian las condiciones
- la etapa de ejecucion no salta el plan aprobado
Incluso si el modelo "quiere" dar una respuesta final de inmediato, decomposition-policy devuelve el proceso a pasos estructurados.
Como funciona
Task Decomposition no ejecuta los pasos por si mismo.
Solo define que subtareas hay que ejecutar, y cada una puede ejecutarse mediante un bucle ReAct separado.
Es decir, el agente primero construye un plan y luego normalmente resuelve las subtareas de forma secuencial, paso a paso.
Descripcion del flujo completo: Plan → Execute
Planificacion (Plan)
El agente determina que pasos se necesitan para completar la tarea.
Ejecucion (Execute)
El sistema ejecuta cada paso segun el plan del agente, a menudo mediante un bucle ReAct separado, y despues combina el resultado.
En codigo se ve asi
steps = plan(goal)
for step_no, step in enumerate(steps, start=1):
result = execute(step, context=context) # cada paso ve resultados de pasos anteriores
if not result.ok:
return stop_or_replan(step_no=step_no, reason=result.error)
context.append(result.data)
return build_final_output(context)
El agente divide la tarea en subtareas y las ejecuta en secuencia.
Como se ve durante la ejecucion
Goal: preparar un reporte mensual de ventas
Plan:
1. recopilar datos de ventas
2. limpiar datos
3. calcular metricas clave
4. construir graficos
5. escribir conclusion
Execute step 1: el sistema llama fetch_sales_data(month)
Observe: datos en bruto recibidos
Entre pasos: raw_data se vuelve entrada para la limpieza
Execute step 2: el sistema llama clean_sales_data(raw_data)
Observe: datos limpios y validados
Entre pasos: clean_data se vuelve entrada para calcular metricas
Execute step 3: el sistema llama calculate_metrics(clean_data)
Observe: metricas calculadas
Execute step 4: el sistema llama build_charts(metrics)
Observe: graficos construidos
Execute step 5: el sistema compone resumen
Observe: reporte final listo
Stop: despues del paso final, el ciclo termina
Cada paso se ejecuta por separado, y el resultado intermedio se vuelve entrada para la siguiente etapa.
Ejemplo completo de agente Task Decomposition
Cuando encaja - y cuando no
Encaja
| Situacion | Por que Task Decomposition encaja | |
|---|---|---|
| ✅ | La tarea tiene varias etapas | El patron divide un gran objetivo en subtareas claras que se pueden ejecutar en secuencia. |
| ✅ | El orden de acciones es importante | El plan fija la secuencia de pasos y reduce el riesgo de omitir una etapa critica. |
| ✅ | El resultado depende de pasos intermedios | Cada subtarea tiene su propio resultado, que se vuelve entrada para la siguiente. |
No encaja
| Situacion | Por que Task Decomposition no encaja | |
|---|---|---|
| ❌ | La tarea es simple | La descomposicion agrega pasos extra donde la tarea puede resolverse directo. |
| ❌ | Se necesita una respuesta rapida | Construir y ejecutar un plan aumenta la latencia frente a una ejecucion de una sola vez. |
| ❌ | No se puede construir el plan por adelantado | Si la estructura de la tarea cambia constantemente, un plan rigido pierde relevancia rapido. |
Porque el plan puede ser inexacto o innecesario.
Cuando usar Task Decomposition (vs otros patrones)
Usa Task Decomposition cuando primero necesites dividir un objetivo grande en subtareas mas pequenas y ejecutables.
Prueba rapida:
- si necesitas "primero dividir una tarea compleja en subtareas" -> Task Decomposition
- si necesitas "despues de cada paso decidir que hacer luego" -> ReAct Agent
Comparacion con otros patrones y ejemplos
Chuleta rapida:
| Si la tarea se ve asi... | Usa |
|---|---|
| Despues de cada paso, hay que decidir que hacer despues | ReAct Agent |
| Primero hay que dividir un objetivo grande en tareas mas pequenas y ejecutables | Task Decomposition Agent |
| Hay que ejecutar codigo, verificar resultados e iterar de forma segura | Code Execution Agent |
| Hay que analizar datos y devolver conclusiones basadas en ese analisis | Data Analysis Agent |
| Se necesita investigacion desde multiples fuentes con evidencia estructurada | Research Agent |
Ejemplos:
ReAct: "Encuentra la causa de la caida de la API: revisa logs -> mira errores -> ejecuta la siguiente verificacion segun el resultado".
Task Decomposition: "Prepara el lanzamiento de una nueva tarifa: divide la tarea en subtareas para contenido, ingenieria, QA y soporte".
Code Execution: "Calcula la retencion de 12 meses en Python y verifica que las formulas sean correctas con datos reales".
Data Analysis: "Analiza un CSV de ventas: encuentra tendencias, anomalias y da conclusiones cortas".
Research: "Recoge datos sobre 5 competidores desde varias fuentes y genera un resumen comparativo".
Como combinar con otros patrones
- Task Decomposition + ReAct - cada subtarea se ejecuta paso a paso para controlar mejor los errores.
- Task Decomposition + Routing - para cada subtarea se selecciona automaticamente el ejecutor mas adecuado.
- Task Decomposition + Orchestrator - el Orchestrator gestiona dependencias y paralelismo para que el plan se ejecute sin bloqueos.
Diferencia con ReAct
| ReAct | Task Decomposition | |
|---|---|---|
| Que decide | Que hacer despues | Que pasos se necesitan |
| Nivel | Ejecucion | Planificacion |
| Como funciona | Ejecuta un paso | Divide una tarea en subtareas |
| Usa | Herramientas para ejecutar | Bucles ReAct para ejecutar subtareas |
ReAct ayuda a ejecutar un paso.
Task Decomposition define que pasos hay que ejecutar en absoluto.
Resumen
Agente Task Decomposition:
- analiza la tarea
- la divide en pasos
- ejecuta en secuencia
Ventajas y desventajas
Ventajas
divide una tarea grande en pasos claros
es mas facil estimar tiempos y riesgos
es mas facil delegar y testear subtareas
reduce el caos durante la ejecucion
Desventajas
la descomposicion tambien requiere tiempo
el plan puede quedar demasiado detallado
si el plan inicial es incorrecto, luego es mas dificil recuperarse
FAQ
Q: Siempre se necesita un plan?
A: No. Para tareas simples, puede ser innecesario.
Q: El agente puede cambiar el plan?
A: Si. Si aparecen datos nuevos durante la ejecucion o falla uno de los pasos, el agente puede revisar el plan inicial: agregar nuevas subtareas, cambiar el orden o crear un plan nuevo antes de las siguientes acciones.
Q: Task Decomposition funciona sin ReAct?
A: Si. La planificacion de subtareas puede hacerse por separado, por ejemplo si cada paso tiene un Workflow fijo. Pero en tareas mas complejas, cada subtarea suele ejecutarse con un bucle ReAct.
Que sigue
Task Decomposition permite dividir una tarea en pasos.
Pero que hacer si hay que elegir entre varios agentes?