Phase 14 - Lesson 15
CrewAI: Crews y Flows Basados en Roles
CrewAI es el framework multiagente basado en roles de 2026 — Agentes, Tareas, Crews y Procesos como las cuatro primitivas. Orientación de producción de la documentación: "para cualquier aplicación lista para producción, comience con un Flow."
Tipo: Learn + Build Idiomas: Python (stdlib) Prerrequisitos: Phase 14 · 12 (Workflow Patterns), Phase 14 · 14 (Actor Model) Tiempo: ~60 minutos
Objetivos de Aprendizaje
- Nombrar las cuatro primitivas de CrewAI — Agent, Task, Crew, Process — y el rol de cada una.
- Distinguir Crews (colaboración autónoma basada en roles) de Flows (flujos de trabajo deterministas basados en eventos).
- Explicar por qué la documentación recomienda comenzar con Flows para producción y Crews para exploración.
- Implementar un ejecutor de Crew de la biblioteca estándar (stdlib) y un ejecutor de Flow de la biblioteca estándar; mostrar cuándo brilla cada uno.
El Problema
Los equipos que adoptan frameworks multiagente se enfrentan a la misma barrera: la "colaboración autónoma" suena genial, pero cuando los clientes reportan un error, se necesita una reproducción determinista. CrewAI divide esto explícitamente — Crews para colaboración creativa, Flows para flujos de trabajo basados en eventos, auditables y listos para producción.
El Concepto
Cuatro primitivas
- Agent. Rol + objetivo + backstory + herramientas. El backstory es fundamental — moldea el tono y el juicio.
- Task. Descripción + expected_output + agente asignado. Unidad de trabajo reutilizable.
- Crew. Contenedor que secuencia Agentes y Tareas. Posee el Process de ejecución.
- Process. Secuencial, Jerárquico (con un Agente gerente) o Consensual.
Crews vs Flows
- Crew. Autónomo, impulsado por LLM. Bueno para tareas abiertas: investigación, lluvia de ideas, primeros borradores. El framework elige la forma en tiempo de ejecución.
- Flow. Grafo basado en eventos y propiedad del código. Cada paso se ejecuta con base en un disparador (decorador de función, coincidencia de evento). Bueno para producción: observable, ejecutable con pruebas, determinista.
La documentación de 2026 de CrewAI dice: comience las aplicaciones de producción con Flows; incorpore Crews como subpasos cuando la autonomía compense su costo.
Sistema de memoria
CrewAI incluye cuatro tipos de memoria listos para usar: corto plazo (dentro de la ejecución), largo plazo (entre ejecuciones), entidad (hechos por entidad), contextual (ensamblaje en tiempo de recuperación). Las integraciones con bases de datos vectoriales son nativas.
Integración con AWS Bedrock
CrewAI tiene integración documentada con AWS Bedrock con ganchos de observabilidad de CloudWatch, AgentOps y Langfuse. La documentación de AWS cita una velocidad 5.76x mayor en comparación con LangGraph en tareas de control de calidad en sus benchmarks — considere los números específicos de cada framework como orientativos, no absolutos.
Estructura de dependencias
Independente de LangChain. Python 3.10–3.13. Usa uv para la gestión de dependencias. Más de 30k estrellas en GitHub a principios de 2026.
Dónde falla este patrón
- Crew como producción. Usar una Crew libre en producción sin un wrapper de Flow. La variabilidad del output es alta; la depuración es dolorosa.
- Backstory inflado. Los backstories de 2000 palabras consumen el presupuesto de contexto. Manténgalos concisos.
- Confusión de Procesos. El proceso jerárquico agrega un Agente gerente que realiza el enrutamiento; úselo solo cuando tenga 4+ especialistas.
Construya
code/main.py implementa versiones stdlib de ambos:
Agent,Task,Crew,SequentialCrew(una tarea a la vez),HierarchicalCrew(enrutamiento por gerente).Flowcon decoradores@start()y@listen()(sustitutos de funciones simples) que se activan ante eventos con nombre.- La misma tarea de tres pasos (investigación, esquema, borrador) implementada de ambas formas.
Ejecute:
python3 code/main.py
El rastreo de la Crew es fluido y variable; el rastreo del Flow es fijo y observable. Esa es la elección.
Use
- CrewAI Flow para producción.
- CrewAI Crew para exploración, emparejamiento, primeros borradores.
- LangGraph (Lesson 13) si desea una máquina de estados más explícita.
- AutoGen v0.4 (Lesson 14) si desea concurrencia basada en el modelo de actores.
Envíe
outputs/skill-crew-or-flow.md elige Crew vs Flow para una tarea y estructura la implementación mínima.
Ejercicios
- Convierta una demostración basada en Crew a un Flow. Cuente los puntos de contacto donde disminuye la variabilidad.
- Agregue memoria de entidad a la Crew: los hechos sobre un cliente persisten entre tareas.
- Implemente un proceso Jerárquico: un Agente gerente elige qué especialista se ejecuta a continuación con base en el output anterior.
- Lea la introducción de la documentación de CrewAI. Port su juguete a la API real de
crewai. ¿Qué cambia respecto a la capacidad de prueba? - Conecte AgentOps o Langfuse a una de sus ejecuciones. ¿Qué trazas se perdió en la versión stdlib?
Términos Clave
| Término | Lo que la gente dice | Lo que realmente significa |
|---|---|---|
| Agent | "Persona" | Rol + objetivo + backstory + herramientas |
| Task | "Unidad de trabajo" | Descripción + output esperado + responsable |
| Crew | "Equipo de agentes" | Contenedor para Agentes + Tareas + Proceso |
| Process | "Estrategia de ejecución" | Secuencial / Jerárquico / Consensual |
| Flow | "Flujo de trabajo determinista" | Basado en eventos, controlado por código, con capacidad de prueba |
| Backstory | "Prompt de persona" | Moldeador de tono y juicio para el Agente |
| Entity memory | "Hechos por entidad" | Memoria con alcance para un cliente/cuenta/problema |
Lecturas Adicionales
- Introducción de la documentación de CrewAI — conceptos y ruta de producción recomendada
- Anthropic, Building Effective Agents — cuándo ayuda la arquitectura multiagente y cuándo no
- Visión general de LangGraph — la alternativa de máquina de estados