- Utilise un système de file de tâches dynamique au lieu des workflows traditionnels basés sur des nœuds et des arêtes, en privilégiant la simplicité et la flexibilité
- 3 principes
- Exécution simultanée : les tâches s’exécutent automatiquement en parallèle
- Planification dynamique : il est possible d’ajouter de nouvelles tâches pendant l’exécution
- Dépendances intelligentes : le traitement attend les résultats des tâches précédentes
- Les résultats de toutes les tâches sont stockés dans un
Context thread-safe
- Cette architecture basée sur les tâches simplifie fortement les workflows complexes
- Exécution de tâches en parallèle sans code de threading explicite
- Workflows dynamiques auto-modifiables et cycles
- Branches conditionnelles et contrôle du flux
- Streaming de l’exécution des tâches
- Gestion d’état, chargement de l’état précédent et sauvegarde de l’état actuel
- Possibilité de démarrer l’exécution à partir d’une tâche spécifique
- Transmission dynamique des données d’entrée pour exécuter la tâche suivante
- Traitement parallèle de type MapReduce et collecte des résultats
- Utilise une planification dynamique sans définition préalable des connexions entre les nœuds
- Permet d’écrire un code propre en simplifiant les workflows complexes
- Conception légère, sans dépendances externes
- Auto-Instrumentation
- Inclut une fonction d’auto-instrumentation pour le traçage avec Laminar
- Pour activer le traçage basé sur OpenTelemetry, il faut initialiser le SDK Laminar avant d’utiliser Flow
- Fonctionnalités avancées
- Partage du contexte : toutes les tâches partagent le même contexte pour gérer le flux de données
- Gestion des erreurs : propagation appropriée des exceptions dans les tâches
- Sécurité des threads : toutes les tâches sont thread-safe
- Dépendances minimales : fonctionne sans bibliothèques externes
- Feuille de route
- Ajout du support asynchrone
- Ajout d’options de déploiement serverless
1 commentaires
Je ne comprends pas bien la description du projet. Est-ce que ce n’est pas réservé aux agents IA, et que l’IA n’est donnée que comme exemple de cas d’usage ? J’ai l’impression que ce n’est pas très différent d’un moteur de tâches généraliste.