Descomposición jerárquica de tareas
Objetivo de alto nivel -> subobjetivos -> subsubobjetivos: la única forma en que las personas (y los agentes) abordan tareas grandes.
Descomposición jerárquica de tareas es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Cuando las tareas se vuelven grandes
"Refactorizar el módulo de autenticación" es demasiado para un solo prompt. El agente debe dividirlo en partes más pequeñas y manejables.
La descomposición jerárquica de tareas (HTD) es la forma en que las personas y los agentes abordan este problema.
La jerarquía
- Objetivo — el propósito de alto nivel
- Subobjetivos — las fases principales
- Tareas — los pasos concretos
- Acciones — las llamadas individuales a herramientas
Example Decomposition
Goal: Refactor authentication module to use OAuth.
Sub-goal 1: Set up OAuth dependencies
Task: Add dependency to requirements.txt
Task: Configure OAuth client
Sub-goal 2: Replace existing auth flow
Task: Replace login endpoint
Task: Replace session middleware
Task: Update tests
Sub-goal 3: Migration and rollout
Task: Write migration script
Task: Update documentationLLM-Driven Decomposition
DECOMPOSE_PROMPT = '''
Decompose this goal into 3-6 sub-goals. For each sub-goal, list 2-5 concrete tasks.
Return JSON: {sub_goals: [{name, tasks: [str]}]}
Goal: {goal}
'''Descomposición recursiva
Si una tarea sigue siendo demasiado grande, descompóngala aún más. Deténgase cuando una tarea quepa en un único paso del LLM (~3-5 llamadas a herramientas).
Cuándo dejar de descomponer
Heurísticas:
- La descripción de la tarea cabe en una sola frase
- La tarea tiene criterios de aceptación claros
- La tarea afecta a un número reducido de archivos
- La tarea se puede verificar mediante una prueba específica
Estructuras de árbol
Represente la descomposición como un árbol. Cada nodo es una tarea con: descripción, estado (pending/running/done/failed) e hijos:
@dataclass
class TaskNode:
description: str
status: Literal['pending', 'running', 'done', 'failed']
children: list['TaskNode']
result: str | None = NoneEjecute en profundidad
Recorra el árbol en profundidad. Complete cada hoja antes de continuar:
def execute(node):
if node.children:
for child in node.children:
execute(child)
else:
node.status = 'running'
try:
node.result = run_leaf(node)
node.status = 'done'
except Exception as e:
node.status = 'failed'Agregación de resultados
Cuando los nodos hijos terminen, agregue sus resultados en el nodo padre:
def aggregate(parent):
summaries = [c.result for c in parent.children if c.status == 'done']
parent.result = llm.invoke(f'Summarise these sub-task results: {summaries}').contentMuestre el árbol a los usuarios
En el caso de agentes de larga duración, muestre a los usuarios el árbol con actualizaciones de estado en tiempo real. Confianza y transparencia:
[x] Add OAuth dependency
[x] Configure OAuth client
[~] Replace login endpoint <-- in progress
[ ] Replace session middleware
[ ] Update testsPermita editar el árbol
Los usuarios avanzados pueden querer omitir, añadir o reordenar tareas. Permita editar manualmente el árbol del plan.
Vuelva a planificar cuando haya fallos
Si una subtarea falla repetidamente, vuelva al nodo padre y descomponga de nuevo:
if failed_count(node) > 2:
parent = node.parent
parent.children = llm_replan(parent, failure_context=node.last_error)Coste de la descomposición
Cada descomposición es una llamada al LLM. El almacenamiento en caché ayuda: el mismo objetivo produce la misma descomposición inicial.
Cuándo dejar de dividir
¿Cuándo debe dejar el agente de descomponer las tareas?
Repaso
Objetivos -> subobjetivos -> tareas -> acciones. Construya un árbol, ejecútelo en profundidad, agregue los resultados y vuelva a planificar cuando haya fallos. Es el patrón estándar para el trabajo de horizonte largo.
Preguntas frecuentes
¿La lección «Descomposición jerárquica de tareas» es gratis?
Sí — el texto completo de «Descomposición jerárquica de tareas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Descomposición jerárquica de tareas»?
Objetivo de alto nivel -> subobjetivos -> subsubobjetivos: la única forma en que las personas (y los agentes) abordan tareas grandes. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Descomposición jerárquica de tareas»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Descomposición jerárquica de tareas
- Pilas de objetivos y retroceso
- Modelos del mundo y anticipación
- Bucles de reflexión y autocrítica