Saltearse al contenido

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:

  1. Se recogen los agentes y tareas.
  2. Se crea el objeto Crew con el proceso jerárquico.
  3. Cuando se ejecuta el flujo, el manager asigna tareas a los agentes y supervisa su progreso.
  4. Los resultados se envían como un mensaje de salida que puede ser usado por otros componentes del dashboard.

Entradas

CampoExplicación
AgentsLista de agentes que participarán en el trabajo. Cada agente debe estar previamente configurado.
Function Calling LLMPermite convertir al agente ReAct en un agente que llama a funciones. Se usa cuando el agente necesita ejecutar funciones externas.
ManagerAgente que supervisa y coordina a los demás. Si no se especifica, CrewAI crea uno automáticamente.
ModelModelo de lenguaje que el manager puede usar para generar decisiones o respuestas.
TasksLista de tareas jerárquicas que los agentes deben completar. Cada tarea puede tener subtareas.
Max RPMMáximo número de peticiones por minuto que el sistema puede enviar al LLM. Controla la velocidad de procesamiento.
MemoryConfiguración de memoria para que los agentes recuerden información entre tareas.
Share CrewSi se activa, permite que el mismo crew sea compartido entre diferentes flujos de trabajo.
CacheHabilita el almacenamiento en caché de resultados para evitar llamadas repetidas al LLM.
VerboseSi se activa, muestra logs detallados del proceso para depuración.

Salidas

CampoTipoExplicación
OutputMessageContiene 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

  1. Objetivo: Automatizar el proceso de atención al cliente.
  2. Configuración:
    • Agents:
      • CustomerSupportAgent (responde preguntas básicas).
      • EscalationAgent (maneja casos complejos).
    • Manager: SupportManager (coordina y decide cuándo escalar).
    • Tasks:
      • HandleInquiry (para CustomerSupportAgent).
      • EscalateIssue (para EscalationAgent).
  3. Resultado:
    • El manager recibe la consulta del cliente, asigna HandleInquiry al CustomerSupportAgent.
    • Si el agente determina que la pregunta es compleja, el manager la reenvía a EscalationAgent con la tarea EscalateIssue.
    • El mensaje final incluye la respuesta al cliente y cualquier nota del manager.

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.