Hierarchical Crew
Hierarchical Crew es un componente que permite organizar a varios agentes de IA en una estructura jerárquica.
Con él, puedes definir un manager que supervise a los demás agentes y asignarles tareas específicas.
El resultado es un flujo de trabajo donde cada agente trabaja de forma independiente, pero bajo la supervisión de un líder que coordina y asegura que todo el proceso se complete correctamente.
¿Cómo funciona?
El componente crea internamente un objeto Crew de la librería CrewAI.
- Agents: Lista de agentes que ejecutarán las tareas.
- Tasks: Lista de tareas jerárquicas que cada agente debe realizar.
- Process: Se establece en
Process.hierarchical
, lo que significa que el manager supervisa a los agentes y distribuye las tareas. - Manager (opcional): Un agente que actúa como líder.
- Manager LLM (opcional): Modelo de lenguaje que ayuda al manager a tomar decisiones.
- Otros parámetros (Max RPM, Memory, Cache, Share Crew, Verbose) controlan el rendimiento, la memoria, el almacenamiento en caché y la verbosidad de los logs.
El flujo interno es el siguiente:
- Se recogen los agentes y tareas.
- Se crea el objeto
Crew
con el proceso jerárquico. - Cuando se ejecuta el flujo, el manager asigna tareas a los agentes y supervisa su progreso.
- Los resultados se envían como un mensaje de salida que puede ser usado por otros componentes del dashboard.
Entradas
Campo | Explicación |
---|---|
Agents | Lista de agentes que participarán en el trabajo. Cada agente debe estar previamente configurado. |
Function Calling LLM | Permite convertir al agente ReAct en un agente que llama a funciones. Se usa cuando el agente necesita ejecutar funciones externas. |
Manager | Agente que supervisa y coordina a los demás. Si no se especifica, CrewAI crea uno automáticamente. |
Model | Modelo de lenguaje que el manager puede usar para generar decisiones o respuestas. |
Tasks | Lista de tareas jerárquicas que los agentes deben completar. Cada tarea puede tener subtareas. |
Max RPM | Máximo número de peticiones por minuto que el sistema puede enviar al LLM. Controla la velocidad de procesamiento. |
Memory | Configuración de memoria para que los agentes recuerden información entre tareas. |
Share Crew | Si se activa, permite que el mismo crew sea compartido entre diferentes flujos de trabajo. |
Cache | Habilita el almacenamiento en caché de resultados para evitar llamadas repetidas al LLM. |
Verbose | Si se activa, muestra logs detallados del proceso para depuración. |
Salidas
Campo | Tipo | Explicación |
---|---|---|
Output | Message | Contiene el resultado final del crew, incluyendo los outputs de cada agente y cualquier comentario del manager. Este mensaje puede ser conectado a otros componentes para continuar el flujo de trabajo. |
Ejemplo de Uso
- Objetivo: Automatizar el proceso de atención al cliente.
- Configuración:
- Agents:
CustomerSupportAgent
(responde preguntas básicas).EscalationAgent
(maneja casos complejos).
- Manager:
SupportManager
(coordina y decide cuándo escalar). - Tasks:
HandleInquiry
(paraCustomerSupportAgent
).EscalateIssue
(paraEscalationAgent
).
- Agents:
- Resultado:
- El manager recibe la consulta del cliente, asigna
HandleInquiry
alCustomerSupportAgent
. - Si el agente determina que la pregunta es compleja, el manager la reenvía a
EscalationAgent
con la tareaEscalateIssue
. - El mensaje final incluye la respuesta al cliente y cualquier nota del manager.
- El manager recibe la consulta del cliente, asigna
Componentes Relacionados
- Crew – Clase base que gestiona la ejecución de agentes.
- Agent – Entidad que ejecuta tareas.
- HierarchicalTask – Tipo de tarea que puede contener subtareas.
- LanguageModel – Modelo de lenguaje que alimenta a los agentes.
- Process – Enum que define el tipo de proceso (hierarchical, sequential, etc.).
Consejos y Mejores Prácticas
- Define claramente las tareas: Cada tarea debe tener una descripción precisa para evitar ambigüedades.
- Usa un manager robusto: Un manager con un buen modelo de lenguaje reduce errores de asignación.
- Controla el Max RPM: Ajusta el límite según la capacidad de tu API para evitar bloqueos.
- Habilita Cache cuando sea posible: Evita llamadas redundantes al LLM y acelera el flujo.
- Revisa los logs Verbose: Útil para depurar problemas de coordinación entre agentes.
Consideraciones de Seguridad
- Protege los datos sensibles: Si los agentes manejan información confidencial, asegúrate de que el modelo de lenguaje esté configurado con políticas de privacidad.
- Limita el acceso a la API: Usa claves seguras y controla quién puede ejecutar el flujo.
- Monitorea el uso de recursos: El proceso jerárquico puede generar muchas llamadas al LLM; vigila el consumo para evitar costos inesperados.