- Usa un sistema Dynamic Task Queue en lugar de los flujos de trabajo tradicionales basados en Node-Edge, priorizando la simplicidad y la flexibilidad
- 3 principios
- Ejecución concurrente: las tareas se ejecutan automáticamente en paralelo
- Programación dinámica: se pueden agregar nuevas tareas durante la ejecución
- Dependencias inteligentes: procesa esperando los resultados de tareas anteriores
- Los resultados de todas las tareas se almacenan en un
Context thread-safe
- Esta arquitectura basada en tareas hace que los flujos de trabajo complejos sean muy simples
- Ejecución de tareas en paralelo sin código explícito de threading
- Flujos de trabajo dinámicos autocorregibles y ciclos
- Ramificación condicional y control de flujo
- Streaming de ejecución de tareas
- Gestión de estado, cargando el estado previo y guardando el estado actual
- Posibilidad de iniciar la ejecución desde una tarea específica
- Ejecución de la siguiente tarea pasando datos de entrada dinámicamente
- Procesamiento paralelo y recolección de resultados al estilo MapReduce
- Usa programación dinámica sin predefinir conexiones entre nodos
- Simplifica flujos de trabajo complejos para permitir escribir código limpio
- Diseño ligero, sin dependencias externas
- Auto-Instrumentation
- Incluye función de Auto-Instrumentation para trazabilidad usando Laminar
- Para activar el tracing basado en OpenTelemetry, es necesario inicializar el SDK de Laminar antes de usar Flow
- Funciones avanzadas
- Contexto compartido: todas las tareas comparten el mismo contexto para gestionar el flujo de datos
- Manejo de errores: propaga adecuadamente las excepciones dentro de las tareas
- Seguridad de hilos: todas las tareas son thread-safe
- Dependencias mínimas: funciona sin librerías externas
- Planes de desarrollo futuro
- Agregar soporte asíncrono
- Agregar opciones de despliegue serverless
1 comentarios
No termino de entender bien la descripción del proyecto. ¿No es algo exclusivo para agentes de IA, sino solo un ejemplo de caso de uso? Porque no parece muy distinto de un motor de tareas general de propósito amplio.