Phase 16 - Lesson 06
Arquitectura Jerárquica y su Modo de Falla
Jerárquica es supervisores aninados. Agentes gerentes sobre subgerentes sobre trabajadores. CrewAI
Process.hierarchicales la versión clásica: unmanager_llmdelega tareas dinámicamente y valida las salidas. El equivalente en LangGraph escreate_supervisor(create_supervisor(...)). Es el patrón natural cuando la tarea es un organigrama real. También es el patrón con mayor probabilidad de colapsar en bucles de gestión (managerial looping): los agentes gerentes asignan el trabajo de manera deficiente, malinterpretan las subsalidas o no logran llegar a un consenso. El enfoque secuencial a menudo lo supera.
Tipo: Aprender + Construir Lenguajes: Python (biblioteca estándar) Prerrequisitos: Fase 16 · 05 (Patrón Supervisor) Tiempo: ~60 minutos
Problema
Una vez que se comprende el patrón supervisor, el siguiente paso natural es "¿qué pasa si los propios trabajadores son supervisores?". Las empresas tienen subequipos; las compañías tienen departamentos de departamentos. Las arquitecturas jerárquicas reflejan esto.
El problema: los gerentes de LLM no son lo mismo que los gerentes humanos. Un gerente humano tiene conocimientos previos estables sobre lo que saben sus subordinados. Un gerente de LLM vuelve a razonar la organización en cada turno a partir de lo que sea que esté en su contexto. Una pequeña desviación en ese contexto y todo el árbol asigna el trabajo de manera incorrecta.
Concepto
La estructura
Manager
┌─────┐
└──┬──┘
┌────────┴────────┐
▼ ▼
Sub-Mgr A Sub-Mgr B
┌─────┐ ┌─────┐
└──┬──┘ └──┬──┘
┌┴──┬──┐ ┌┴──┐
▼ ▼ ▼ ▼ ▼
W1 W2 W3 W4 W5
Cada nodo interno planea, delega y sintetiza. Solo las hojas trabajan.
Dónde destaca
- Mapeo claro de la organización. Si la tarea real es departamental ("el área legal revisa el documento, finanzas revisa el documento, ingeniería revisa el documento, y luego se resume para la dirección"), la jerarquía es explícita.
- Resumen local. Cada subgerente sintetiza el resultado de su equipo antes de que lo vea el gerente general. El gerente general ve tres resúmenes de subgerentes en lugar de quince resultados de trabajadores.
Dónde falla
Tres modos de falla que los análisis post-mortem de 2026 siguen encontrando:
- Error en la asignación de tareas. El gerente lee el objetivo, alucina una descomposición y la delega al subgerente equivocado. Dado que el subgerente trabaja obedientemente en lo que se le asignó, el error solo sale a la luz en la síntesis final, a un nivel de distancia de donde un humano podría haberlo detectado.
- Malinterpretación de la salida. El subgerente devuelve "no se puede verificar la afirmación X". El gerente general resume "afirmación X no confirmada". El significado se desvía en cada nivel.
- Bucles de consenso. Dos subgerentes no están de acuerdo; el gerente general les pide que se reconcilien; ellos vuelven a delegar hacia abajo; los trabajadores vuelven a ejecutar; los subgerentes devuelven respuestas ligeramente diferentes; bucle. El
Process.hierarchicalde CrewAI protege contra esto con límites de pasos, pero el límite en sí es ahora un hiperparámetro.
La pregunta decisiva
Secuencial (flujo lineal) vs jerárquico: ¿su tarea realmente cuenta con subequipos independientes o es un flujo lineal que finge ser un árbol? Si es lo último, use secuencial. Si es lo primero, use jerárquico pero presupueste reglas explícitas de reconciliación.
Implementación de CrewAI
Process.hierarchical conecta un LLM gerente sobre equipos de especialistas. El gerente:
- recibe la tarea de nivel superior,
- asigna subtareas a los equipos (crews),
- evalúa los resultados de los equipos,
- decide si acepta, vuelve a delegar o itera.
Documentación: https://docs.crewai.com/en/introduction (busque "Hierarchical Process" bajo Core Concepts).
Implementación de LangGraph
LangGraph utiliza llamadas anidadas a create_supervisor. El supervisor interno tiene su propio grafo; el supervisor externo trata al grafo interno como un nodo opaco. Esto es más limpio que CrewAI para depurar (se puede avanzar paso a paso por cada grafo por separado), pero es más difícil de expresar la reestructuración dinámica del árbol.
Referencia: https://reference.langchain.com/python/langgraph-supervisor.
Constrúyalo
code/main.py ejecuta una jerarquía de 3 niveles:
- gerente general: divide una tarea en las ramas de "ingeniería" y "legal",
- subgerente de ingeniería: divide la tarea en trabajadores de "frontend" y "backend",
- subgerente legal: un trabajador.
La demostración contrasta el camino feliz (todos están de acuerdo) con un camino perturbado donde la descomposición del gerente general etiqueta erróneamente "legal" como "finanzas" y observa cómo se desencadena el error: el subgerente realiza obedientemente el trabajo financiero, el sintetizador superior reporta hallazgos financieros y la pregunta legal original queda sin responder.
Ejecute:
python3 code/main.py
La salida muestra ambos caminos con una comparación clara de "lo que se pidió" frente a "lo que se entregó".
Úselo
outputs/skill-hierarchy-fitness.md evalúa si una tarea determinada debe utilizar un supervisor jerárquico, secuencial o plano. Entradas: descripción de la tarea, estructura organizativa, presupuesto de reconciliación. Salida: recomendación de patrón con los modos de falla específicos de los que protegerse.
Envíelo a producción
Si implementa un diseño jerárquico en producción:
- Limite la profundidad del árbol a 2. Tres niveles ya ocultan la mayoría de los errores de la observabilidad.
- Presupuesto explícito de reconciliación. Defina el máximo de rondas antes de que el gerente general deba consolidar la decisión. Normalmente 2.
- Procedencia en cada síntesis. El resumen de cada nodo debe citar qué resultados de las hojas lo produjeron.
- Alerta sobre desviación de descomposición. Registre la desviación de la descomposición del gerente en cada paso; compare la diferencia (diff) con la consulta del usuario. Si la descomposición ya no cubre la consulta, active una alerta.
Ejercicios
- Ejecute
code/main.pyy compare el camino feliz frente al perturbado. ¿Cuántos niveles de traspaso entre gerentes se necesitan antes de que el resultado final difiera por completo de la pregunta del usuario? - Agregue un tercer nivel (general → sub → sub-sub → trabajador). Mida con qué frecuencia el camino perturbado se corrige frente a diferenciarse por completo a medida que crece la profundidad.
- Implemente un trabajador "canario" en cada nivel de subgerente al que siempre se le haga la pregunta original del usuario sin cambios. Utilice la respuesta del canario para detectar la desviación de descomposición. ¿Cómo debería reaccionar el gerente cuando el canario no esté de acuerdo con la respuesta sintetizada?
- Lea la documentación de
Process.hierarchicalde CrewAI. Identifique una medida de seguridad concreta que aplica CrewAI (límite de pasos, restricción de manager_llm) y describa a qué modo de falla se dirige. - Compare los supervisores anizados de LangGraph con el esquema jerárquico de CrewAI. ¿Cuál hace que los bucles de reconciliación sean más baratos de detectar?
Términos Clave
| Término | Lo que dice la gente | Lo que significa en realidad |
|---|---|---|
| Jerárquico | "Patrón de organigrama" | Supervisores sobre supervisores; solo las hojas trabajan. |
| LLM Gerente | "El jefe" | El LLM que descompone, asigna y valida en un nodo interno. |
| Desviación de descomposición | "El jefe perdió el hilo" | La división del gerente general ya no cubre la pregunta original. |
| Bucle de reconciliación | "Reuniones sin fin" | Los subgerentes no están de acuerdo; el gerente general vuelve a delegar; los trabajadores vuelven a ejecutar; bucle hasta agotar el presupuesto. |
| Límite de profundidad 2 | "No ir a más de 2 niveles de profundidad" | Medida de seguridad empírica: más de 3 niveles colapsa la observabilidad. |
| Pregunta canario | "Verdad fundamental en cada nivel" | Un trabajador al que siempre se le hace la consulta original sin cambios, para detectar desviación. |
| Cadena de procedencia | "¿Quién dijo qué?" | Rastreo desde cada síntesis hasta los resultados de las hojas que la produjeron. |
Lecturas adicionales
- CrewAI introduction — Process.hierarchical — jerárquico clásico con un LLM gerente
- LangGraph supervisor reference — supervisor aninado mediante
create_supervisor - Anthropic engineering — Research system — por que Anthropic eligió deliberadamente un supervisor plano en lugar de uno jerárquico
- Cemri et al. — Why Do Multi-Agent LLM Systems Fail? — taxonomía MAST; la sección sobre fallas de coordinación documenta la desviación de descomposición