CrewAI — Bases du Flow : orchestrer plusieurs crews dans un workflow maîtrisé
2 min read
Quand votre processus devient « recherche → rédaction → relecture → publication », un seul crew ne suffit plus.
Le Flow joue le rôle de tour de contrôle qui coordonne plusieurs crews.
Quels problèmes le Flow résout-il ?
- Gérer l'état multi-étapes
- Gérer la logique de branchement (publier si OK, relancer si échec)
- Améliorer l'observabilité et la maintenabilité
Exemple minimal de Flow
from pydantic import BaseModel
from crewai.flow.flow import Flow, start, listen, router
class BlogState(BaseModel):
topic: str = ""
draft: str = ""
word_count: int = 0
class BlogFlow(Flow[BlogState]):
@start()
def init_topic(self) -> str:
self.state.topic = "CrewAI for beginners"
return self.state.topic
@listen(init_topic)
def write_draft(self, topic: str) -> str:
result = "draft content..."
self.state.draft = result
self.state.word_count = len(result.split())
return result
@router(write_draft)
def quality_gate(self) -> str:
return "ok" if self.state.word_count > 100 else "retry"Suggestions de conception du Flow
- Gardez chaque méthode
@listenfocalisée sur un seul job - Concentrez les branchements dans
@router, évitez les gros blocs if/else partout - Utilisez un état typé
BaseModel, pas un dict brut
Avec ce style, vous pourrez relire le code dans six mois sans vous sentir archéologue.
Quand utiliser le Flow ?
- Le workflow a plus de 3 étapes
- Il existe des conditions de branchement claires
- Plusieurs crews doivent être coordonnés
Si votre workflow se limite à « recherche + rédaction de rapport », un seul crew suffit.
Prochaine étape
Après l'orchestration des workflows, la question suivante est souvent : « Les agents gardent-ils le contexte ? »
L'article suivant traite de la mémoire et des sources de connaissances :
👉 Mémoire et connaissances