đŹđ§ English version
Guide comparatif des ProcessTypes
Prérequis : Vue d'ensemble et YAML et Builders
Vue d'ensemble
Orkeon propose 6 stratégies d'orchestration via le value object ProcessType (Domain layer). Chaque stratégie définit comment les agents se coordonnent pour exécuter les tùches d'une Crew. Le choix du ProcessType est le levier architectural le plus impactant sur le comportement d'un systÚme multi-agents.
// Orkeon.Domain.SharedKernel.ValueObjects.ProcessType (sealed record)
ProcessType.Sequential // Pipeline linéaire
ProcessType.Hierarchical // Manager + workers
ProcessType.Parallel // Exécution concurrente
ProcessType.Consensual // Vote et consensus
ProcessType.Graph // Graphe d'états avec cycles contrÎlés
ProcessType.Autonomous // Auto-organisation avec budget
Architecture d'implémentation
ProcessType (Domain â Value Object)
â
âŒ
IProcessStrategy (Domain â Interface)
â
âŒ
ProcessStrategyFactory (Infrastructure)
â
âââ SequentialProcessStrategy
âââ HierarchicalProcessStrategy
âââ ParallelProcessStrategy
âââ ConsensualProcessStrategy â IConsensualProcessStrategy
âââ GraphProcessStrategy
âââ AutonomousProcessStrategy
Le ProcessStrategyFactory résout la stratégie appropriée via un switch sur ProcessType.Value, injecté par DI.
Matrice de comparaison rapide
| CritĂšre | Sequential | Hierarchical | Parallel | Consensual | Graph | Autonomous |
|---|---|---|---|---|---|---|
| ModÚle d'exécution | Linéaire | Linéaire + revue | Concurrent | ParallÚle + vote | Machine à états | Auto-organisé |
| Coordination | Round-robin | Manager LLM | Round-robin | Consensus LLM | Round-robin + routing | LLM + canal A2A |
| Dépendances entre tùches | Oui (chaßnées) | Oui (via manager) | Oui (vagues) | Non | Oui (edges) | Oui (délégation) |
| Circuit breaker | â | â | â | â | â 4 mĂ©canismes | â |
| Budget d'exĂ©cution | â | â | â | â | â | â 5 dimensions |
| Retry automatique | â | RĂ©visions (max 3) | â | Rounds de vote | â configurable | Via dĂ©lĂ©gation |
| Spawn dynamique | â | â | â | â | â | â SpawnAgentTool |
| ComplexitĂ© | â | ââ | â | âââ | âââ | ââââ |
| CoĂ»t LLM relatif | Bas | Moyen | Bas | ĂlevĂ© | Moyen | Variable |
| Cas d'usage principal | Pipelines ETL | QA, revue de code | Tùches indépendantes | Décisions critiques | Workflows complexes | Exploration, R&D |
1. Sequential â Pipeline linĂ©aire
Principe
Les tùches s'exécutent une par une, dans l'ordre défini par l'ExecutionPlan. Chaque tùche reçoit en contexte les résultats des tùches précédentes. L'assignation agent se fait en round-robin (sauf assignation explicite via task.AssignedAgent).
Ordre d'exĂ©cution sans plan (planning: false, le dĂ©faut) : les tĂąches s'exĂ©cutent dans un ordre topologique stable sur leurs dependencies dĂ©clarĂ©es â une tĂąche s'exĂ©cute aprĂšs chaque tĂąche dont elle dĂ©pend, et partout oĂč les dĂ©pendances le permettent l'ordre dĂ©clarĂ© est conservĂ©, si bien qu'une crew sans aucune dĂ©pendance s'exĂ©cute exactement comme elle est Ă©crite. Cela vaut dans tous les layouts : le layout multi-fichiers (tasks/*.yaml) liste les tĂąches dans l'ordre ordinal de leurs noms de fichiers, donc sans ce tri consolider.yaml s'exĂ©cutait avant l'extraire.yaml dont il dĂ©pend. Une dĂ©pendance qui nomme un id de tĂąche inconnu est ignorĂ©e ; un cycle ne fait jamais Ă©chouer la crew â l'ordre dĂ©clarĂ© est conservĂ© pour les tĂąches prises dans le cycle et un avertissement les nomme. La mĂȘme rĂšgle ordonne les modes hiĂ©rarchique, consensuel, graphe et autonome, qui distribuent eux aussi leurs tĂąches une par une ; le mode parallĂšle garde sa propre sĂ©mantique (des vagues de dĂ©pendances, et un cycle est refusĂ©). Avec planning: true, l'ordre du planificateur est pris tel quel. Une tĂąche dont une dĂ©pendance dĂ©clarĂ©e n'a pas abouti â Ă©chouĂ©e, ou ignorĂ©e Ă son tour â est ignorĂ©e, jamais exĂ©cutĂ©e sur un contexte qui dit Task failed: ⊠à la place de l'entrĂ©e qu'elle attendait : elle apparaĂźt en â skipped dans AUTO_SUMMARY.md et comme Ă©vĂ©nement task.completed avec skipped: true, les tĂąches qui n'en dĂ©pendent pas s'exĂ©cutent quand mĂȘme, et la crew Ă©choue en nommant chaque tĂąche Ă©chouĂ©e et ignorĂ©e (LLM-11).
Mécanisme interne
Task 1 â Agent A â outputâ
â (contexte enrichi)
Task 2 â Agent B â outputâ
â
Task 3 â Agent C â outputâ â rĂ©sultat final
Classes clés : SequentialProcessStrategy, ExecutionPlan, AgentDelegationToolsProvider
Configuration YAML
# Racine plate â il n'existe pas de clĂ© enveloppe crew:, et agents:/tasks: sont
# des mappings indexés par id (un fichier enveloppé de crew: se charge
# SILENCIEUSEMENT comme une crew vide).
name: "pipeline"
goal: "Démo séquentielle"
process: sequential
tasks:
collecte:
description: "Collecter les données"
expectedOutput: "Données brutes"
analyse:
description: "Analyser les données"
expectedOutput: "Rapport d'analyse"
dependencies: [collecte]
recommandations:
description: "Générer les recommandations"
expectedOutput: "Plan d'action"
dependencies: [analyse]
Configuration Fluent Builder
var crew = new CrewBuilder()
.Sequential()
.WithAgent(a => a.Role("Collector").Goal("Gather data"))
.WithAgent(a => a.Role("Analyst").Goal("Analyze data"))
.WithTask(t => t.Description("Collect").ExpectedOutput("Raw data"))
.WithTask(t => t.Description("Analyze").ExpectedOutput("Report"))
.Build();
Avantages
- Simplicité maximale : aucune configuration complexe, comportement prévisible
- Traçabilité : chaque étape est clairement identifiable dans les logs
- Contexte cumulatif : chaque tùche bénéficie des résultats précédents
- DĂ©terminisme : mĂȘme entrĂ©e â mĂȘme parcours d'exĂ©cution
Inconvénients
- Pas de parallélisme : le temps total est la somme de toutes les tùches
- Point de dĂ©faillance unique : un Ă©chec bloque la suite de la chaĂźne â ses dĂ©pendantes sont ignorĂ©es, seules les tĂąches indĂ©pendantes s'exĂ©cutent encore
- Pas de retry : aucune reprise automatique en cas d'erreur
- Rigide : l'ordre est fixe, pas de branchement conditionnel
Quand l'utiliser
- Pipelines ETL (extraction â transformation â chargement)
- RĂ©daction sĂ©quentielle (recherche â rĂ©daction â relecture)
- Workflows oĂč chaque Ă©tape dĂ©pend strictement de la prĂ©cĂ©dente
- Prototypage rapide et POC
Quand ne pas l'utiliser
- Tùches indépendantes pouvant s'exécuter en parallÚle
- Workflows nécessitant des branches conditionnelles
- Scénarios exigeant de la résilience (retry, fallback)
2. Hierarchical â Manager + Workers
Principe
Un agent manager (piloté par LLM) coordonne une équipe de workers. Pour chaque tùche, le manager sélectionne l'agent le plus approprié via AssignTaskAsync(), puis revoit la sortie et peut demander jusqu'à 3 révisions.
Mécanisme interne
ââââ Manager Agent ââââ
â AssignTask() â
â ReviewOutput() â
ââââââââââŹâââââââââââââ
â
ââââââââââââââââŒâââââââââââââââ
⌠⌠âŒ
Agent A Agent B Agent C
(choisi) (en attente) (en attente)
â
âŒ
Output â Review â OK? â oui â tĂąche suivante
â non â rĂ©vision (max 3)
Classes clés : HierarchicalProcessStrategy, IManagerAgent, LlmBasedManager, TaskAssignment
Interface IManagerAgent :
AssignTaskAsync(task, agents, context)âTaskAssignment(agent sĂ©lectionnĂ© + justification)ReviewOutputAsync(output, task)âbool(approuvĂ© ou non)
Configuration YAML
name: "delivery-team"
goal: "Démo hiérarchique"
process: hierarchical
managerAgent: lead # l'id de l'agent manager (il n'existe pas de clé manager_llm)
llm: # LLM par défaut de la crew, appliqué aux agents sans le leur
model: gpt-4o
agents:
lead:
role: "Tech Lead"
goal: "Coordonner la livraison"
dev:
role: "Senior Developer"
goal: "Ăcrire le code de production"
qa:
role: "QA Engineer"
goal: "Tester et valider"
Avantages
- Allocation intelligente : le manager choisit l'agent le plus adapté à chaque tùche
- ContrÎle qualité intégré : boucle de révision automatique
- Flexibilité : le manager peut adapter la stratégie en cours d'exécution
- Traçabilité : chaque assignation est justifiée
Inconvénients
- Coût LLM supplémentaire : le manager consomme des tokens pour chaque décision + revue
- Goulot d'étranglement : tout passe par le manager (pas de parallélisme)
- Révisions limitées : max 3 révisions (hardcodé), pas de retry structurel
- Dépendance à la qualité du manager : un mauvais prompt manager dégrade tout le workflow
Quand l'utiliser
- Revue de code (le manager assigne le reviewer le plus compétent)
- Projets avec des spécialistes hétérogÚnes (dev, QA, design, rédaction)
- Workflows nécessitant une validation humaine simulée
- Situations oĂč la qualitĂ© prime sur la vitesse
Quand ne pas l'utiliser
- TĂąches homogĂšnes (round-robin suffit)
- Contraintes de coût LLM strictes
- Workflows à haute fréquence (le manager est un goulot)
3. Parallel â ExĂ©cution concurrente
Principe
Toutes les tùches s'exécutent simultanément via Task.WhenAll(). Chaque tùche dispose d'un contexte d'exécution indépendant (pas de résultats partagés entre tùches). Les résultats sont agrégés à la fin.
Mécanisme interne
âââ Task 1 â Agent A â outputâ âââ
â â
Start âââŒââ Task 2 â Agent B â outputâ âââŒââ AgrĂ©gation â RĂ©sultat
â â
âââ Task 3 â Agent C â outputâ âââ
Classes clés : ParallelProcessStrategy
Configuration YAML
name: "market-scan"
goal: "Démo parallÚle"
process: parallel
tasks:
france:
description: "Analyser le marché français"
expectedOutput: "Rapport France"
allemagne:
description: "Analyser le marché allemand"
expectedOutput: "Rapport Allemagne"
espagne:
description: "Analyser le marché espagnol"
expectedOutput: "Rapport Espagne"
Avantages
- Vitesse maximale : temps total = durée de la tùche la plus longue
- Simplicité : pas de coordination complexe
- Scalabilité : ajout de tùches sans impact sur le temps total
- Isolation : un Ă©chec d'une tĂąche n'impacte pas ses sĆurs de vague
Inconvénients
- Ordonnancement grossier : les dĂ©pendances sont honorĂ©es par vagues, pas tĂąche par tĂąche â une tĂąche attend toute sa vague, pas seulement ce qu'elle a dĂ©clarĂ©
- Consommation API en pic : toutes les requĂȘtes LLM partent en mĂȘme temps (rate limiting)
- Agrégation basique : les résultats sont simplement concaténés
- Pas de retry : aucune reprise automatique
Quand l'utiliser
- Analyses multi-marchés ou multi-sources indépendantes
- Génération de contenu en batch (un article par marché, par langue)
- TĂąches de classification parallĂšles
- Un fan-out suivi d'une synthĂšse : les collecteurs tournent ensemble, la synthĂšse les lit
Quand ne pas l'utiliser
- Routage conditionnel ou cycles entre tĂąches (utiliser Graph)
- APIs avec rate limiting strict (les appels simultanĂ©s peuvent ĂȘtre throttled)
- Scénarios nécessitant une synthÚse progressive
4. Consensual â Vote et consensus
Principe
Pour chaque tùche, tous les agents l'exécutent indépendamment, puis un vote détermine le meilleur résultat. Si aucun consensus n'est atteint, des rounds de discussion permettent aux agents de reconsidérer leur position en voyant les résultats des autres. Un mécanisme de fallback tranche en dernier recours.
Mécanisme interne
Task N âââŹââ Agent A â rĂ©sultat A âââ
âââ Agent B â rĂ©sultat B âââŒââ Vote ââ Consensus? ââ oui â AcceptĂ©
âââ Agent C â rĂ©sultat C âââ â
non
â
Discussion (round 2)
Agents voient les autres résultats
â
Re-vote
â
Ăchec â Fallback
Classes clés : ConsensualProcessStrategy, IVotingStrategy, IVotingStrategyFactory, Vote, VoteResult, VotingOptions, ConsensualProcessOptions
Types de consensus disponibles
Le mécanisme de vote est sélectionnable par configuration : la valeur de
Orkeon:Consensus:VotingOptions:ConsensusType (section .NET appsettings.json)
choisit la stratégie dédiée via IVotingStrategyFactory. Sans configuration,
le défaut reste Majority (rétro-compatible).
| Type | Stratégie résolue | Description | Seuil par défaut |
|---|---|---|---|
Majority |
MajorityVotingStrategy |
Plus de 50% des votes | 50% |
SuperMajority |
SuperMajorityVotingStrategy |
Seuil configurable (défaut 2/3) | 66.7% |
Unanimity |
UnanimityVotingStrategy |
Tous les agents doivent s'accorder | 100% |
WeightedConsensus |
WeightedConsensusStrategy |
Votes pondérés par rÎle (RoleWeights) |
Configurable |
BordaCount |
BordaCountStrategy |
Classement par score Borda | N/A |
Configuration (.NET, section Orkeon:Consensus)
{
"Orkeon": {
"Consensus": {
"MaxVotingRounds": 3,
"VotingOptions": {
"ConsensusType": "SuperMajority",
"ConsensusThreshold": 75,
"QuorumPercent": 60,
"UseWeightedVotes": true,
"AllowAbstention": false
},
"EnableDiscussion": true,
"FallbackStrategy": "AcceptBestScore",
"RoleWeights": {
"Senior Analyst": 2.0,
"Junior Analyst": 1.0
}
}
}
}
Note :
ConsensusThresholdetQuorumPercents'expriment en pourcentage (0â100), pas en fraction. Un seuil de super-majoritĂ© de 75 % s'Ă©crit75.
Avantages
- Robustesse : réduit les hallucinations et biais individuels
- Qualité : la "sagesse collective" produit souvent de meilleurs résultats
- Flexibilité du vote : 5 stratégies de consensus, pondération par rÎle
- Discussion : les agents peuvent s'améliorer mutuellement entre les rounds
- Fallback : 3 stratégies de repli (meilleur score, échec, décision manager)
Inconvénients
- Coût LLM élevé : chaque tùche est exécutée N fois (N = nombre d'agents) à rounds
- Lenteur : multiplication des appels LLM, surtout avec discussion activée
- Complexité de configuration : nombreux paramÚtres (seuil, quorum, pondération, rounds)
- Résultat incertain : le fallback peut produire un résultat insatisfaisant
Quand l'utiliser
- Décisions critiques (diagnostic médical, évaluation de risque, audit)
- Situations oĂč la fiabilitĂ© prime sur le coĂ»t
- Ăvaluations subjectives nĂ©cessitant plusieurs perspectives
- Scénarios de "red team" (plusieurs agents tentent de trouver des failles)
Quand ne pas l'utiliser
- Tùches factuelles avec une seule réponse correcte
- Contraintes de budget LLM (multiplication par N agents Ă R rounds)
- Workflows à haute fréquence (trop lent)
5. Graph â Graphe d'Ă©tats avec cycles contrĂŽlĂ©s
Principe
Les tĂąches sont organisĂ©es dans un graphe d'Ă©tats typĂ© inspirĂ© de LangGraph. Le graphe supporte des edges conditionnels (routing dynamique) et des cycles contrĂŽlĂ©s (retry automatique). Un circuit breaker Ă 4 mĂ©canismes empĂȘche les boucles infinies.
Mécanisme interne
START âââ execute_task âââ route âââŹââ succĂšs âââ execute_task (suivante)
â â
â ... (loop) ...
â â
âââ Ă©chec âââ execute_task (retry)
â
âââ terminĂ© âââ END
Classes clés :
StateGraph<TState>â DĂ©finition du graphe (nodes + edges)GraphRunner<TState>â Moteur d'exĂ©cutionGraphProcessStrategyâ ImplĂ©mentationIProcessStrategyCircuitBreakerPolicyâ Protection anti-boucleCrewGraphStateâ Ătat typĂ© circulant dans le graphe
CrewGraphState â PropriĂ©tĂ©s de l'Ă©tat
| Propriété | Type | Description |
|---|---|---|
PendingTaskIds |
Queue<TaskId> |
Tùches restantes à exécuter |
FailedTaskIds |
Queue<TaskId> |
Tùches éligibles au retry |
RetryCounts |
Dict<string, int> |
Compteur de retries par tĂąche |
MaxRetryCycles |
int |
Nombre max de retries (défaut: 2) |
ApplicationOutputs |
IReadOnlyList<ApplicationTaskOutput> |
Sorties accumulées |
TotalTokensUsed |
int |
Compteur de tokens consommés (propagé aux métadonnées du CrewOutput sous totalTokens) |
PromptTokensUsed |
int |
Compteur de tokens cÎté prompt (0 si le provider ne fournit pas le split) |
CompletionTokensUsed |
int |
Compteur de tokens cÎté completion (0 si le provider ne fournit pas le split) |
Circuit Breaker â 4 mĂ©canismes de protection
| Mécanisme | Strict | Default | Permissive |
|---|---|---|---|
MaxTransitions |
50 | 100 | 1000 |
StateTimeout |
2 min | 5 min | 30 min |
MaxStateVisits |
5 | 10 | 50 |
MaxTotalDuration |
10 min | 30 min | 2 h |
Configuration YAML
name: "review-loop"
goal: "Démo graphe"
process: graph
graphConfig:
circuitBreakerPreset: "strict" # ou "default", "permissive"
maxRetryCycles: 3
# Surcharges individuelles possibles :
maxTransitions: 75
maxStateVisits: 10
maxTotalDurationSeconds: 180
Avantages
- Branchement conditionnel : routing dynamique selon le rĂ©sultat de chaque nĆud
- Retry intégré : les tùches échouées sont automatiquement re-tentées
- SĂ©curitĂ© : circuit breaker Ă 4 niveaux empĂȘche les exĂ©cutions infinies
- Observabilité : événements
OnNodeCompleted,OnCircuitBroken - Cycles utiles : boucle feedback â correction â validation
- Presets : Strict (production) vs Permissive (développement)
Inconvénients
- Complexité de conception : définir un graphe correct demande de la réflexion
- Debugging : tracer un parcours dans un graphe cyclique est plus difficile
- Overhead : le moteur de graphe ajoute une couche de complexité
- Circuit breaker : peut couper l'exécution prématurément si mal configuré
Quand l'utiliser
- Workflows avec branchements conditionnels (validation â OK/KO â chemins diffĂ©rents)
- Pipelines nécessitant du retry avec backoff
- ScĂ©narios de correction itĂ©rative (rĂ©daction â revue â correction â re-revue)
- Workflows réglementaires avec des chemins d'exception
Quand ne pas l'utiliser
- Pipelines linéaires simples (Sequential suffit)
- Tùches indépendantes (Parallel suffit)
- Ăquipes qui ne sont pas Ă l'aise avec la modĂ©lisation par graphe
Voir aussi : Orchestration FSM pour le détail complet.
6. Autonomous â Auto-organisation avec budget
Principe
Les agents s'auto-organisent : ils revendiquent des tùches, délÚguent récursivement à leurs pairs, et peuvent spawner dynamiquement de nouveaux agents. Un budget multi-dimensionnel (5 axes) garantit la terminaison. La communication inter-agents se fait via un canal bidirectionnel (IAgentChannel).
Mécanisme interne
ââââ Budget (5 dimensions) ââââ
â tool calls · depth · time â
â tokens · spawned agents â
ââââââââââââââââŹâââââââââââââââââ
â
Manager (LLM) ââ assigne âââ Agent A
â
ââââââââââââââââŒâââââââââââââââ
⌠⌠âŒ
DelegateWork SpawnAgent Exécution
(child budget) (via factory) directe
â â
⌠âŒ
Agent B Agent D (nouveau)
â â
⌠âŒ
RĂ©sultat âââ canal A2A âââ RĂ©sultat
Classes clés :
AutonomousProcessStrategyâ StratĂ©gie d'orchestrationAgentExecutionBudgetâ Budget multi-dimensionnel (Domain)IAgentChannel/InMemoryAgentChannelâ Communication A2A (lock-free)SpawnAgentToolâ CrĂ©ation dynamique d'agentsDelegateWorkToolâ DĂ©lĂ©gation avec budget hĂ©ritĂ©BudgetExhaustedExceptionâ Exception levĂ©e quand un axe est Ă©puisĂ©
Budget multi-dimensionnel â 5 axes
| Dimension | Strict | Default | Permissive | Description |
|---|---|---|---|---|
MaxToolCalls |
8 | 15 | 50 | Nombre max d'appels d'outils |
MaxDelegationDepth |
1 | 2 | 4 | Profondeur de dĂ©lĂ©gation (AâBâC = 2) |
MaxTokensConsumed |
8 000 | 16 000 | 64 000 | Tokens LLM consommés |
MaxSpawnedAgents |
1 | 3 | 10 | Agents créés dynamiquement |
MaxWallTime |
2 min | 5 min | 15 min | Durée maximale d'exécution |
Child budgets : quand un agent délÚgue, il crée un budget enfant dérivé de ses propres ressources restantes (via CreateChildBudget()). Le budget enfant est toujours inférieur ou égal au budget parent restant.
Communication A2A
// Request/Response
var request = AgentChannelRequest.Create(
from: analyst.Id,
to: researcher.Id,
intent: "find_data",
payload: "Statistiques marché 2025");
var response = await channel.RequestAsync(request, timeout);
// Broadcast (fire-and-forget)
await channel.BroadcastAsync(analyst.Id, crew.Id, "Résultats disponibles", ct);
Configuration YAML
name: "research-team"
goal: "Démo autonome"
process: autonomous
# Il n'existe AUCUNE clé de budget autonome en YAML : une crew autonome YAML
# tourne toujours sous AgentExecutionBudget.Permissive (50 appels d'outils,
# profondeur 4, 15 min, 64 000 tokens, 10 spawns). Le budget ne se configure
# que par l'API C# â voir le guide Autonomous et yaml-schema.md.
Avantages
- Adaptabilité maximale : les agents réagissent au contexte en temps réel
- Spawn dynamique : capacité à créer des spécialistes à la demande
- Terminaison garantie : budget multi-dimensionnel empĂȘche les exĂ©cutions infinies
- Communication riche : A2A request/response avec corrélation
- Presets : configuration rapide (Strict/Default/Permissive)
- Scalabilité : les agents se répartissent le travail organiquement
Inconvénients
- Complexité élevée : mode le plus difficile à configurer et débugger
- Coût imprévisible : la consommation de tokens dépend des décisions des agents
- Non-déterministe : deux exécutions identiques peuvent suivre des chemins différents
- Budget trop strict : peut couper l'exécution avant d'obtenir un résultat complet
- Observabilité : nécessite un bon logging (BudgetSnapshot) pour comprendre le comportement
Quand l'utiliser
- Exploration (recherche, R&D, analyse exploratoire)
- ProblĂšmes mal dĂ©finis oĂč la stratĂ©gie optimale n'est pas connue Ă l'avance
- SystĂšmes nĂ©cessitant de l'auto-rĂ©paration (un agent dĂ©tecte un problĂšme â dĂ©lĂšgue la correction)
- ScĂ©narios multi-Ă©tapes oĂč chaque Ă©tape peut rĂ©vĂ©ler de nouvelles sous-tĂąches
Quand ne pas l'utiliser
- Workflows déterministes et bien définis (Sequential ou Graph)
- Environnements Ă budget LLM contraint sans marge
- Scénarios réglementaires nécessitant une traçabilité complÚte du parcours
Voir aussi : Orchestration Autonome pour le détail complet.
Arbre de décision
Tes tùches ont-elles des dépendances entre elles ?
â
âââ NON
â âââ As-tu besoin de fiabilitĂ© maximale (multi-perspectives) ?
â âââ OUI â Consensual
â âââ NON â Parallel
â
âââ OUI
âââ Le workflow a-t-il des branches conditionnelles ou des boucles ?
â
âââ NON
â âââ As-tu besoin de contrĂŽle qualitĂ© (revue manager) ?
â âââ OUI â Hierarchical
â âââ NON â Sequential
â
âââ OUI
âââ La stratĂ©gie optimale est-elle connue Ă l'avance ?
âââ OUI â Graph (workflow modĂ©lisable)
âââ NON â Autonomous (exploration)
Combinaisons et complémentarité
Les ProcessTypes ne sont pas mutuellement exclusifs à l'échelle d'un systÚme. Il est courant de combiner plusieurs stratégies :
Graph + FSM : Le Graph orchestre la Crew (niveau inter-tĂąches), tandis que la FSM gĂšre l'exĂ©cution interne de chaque tĂąche (niveau intra-tĂąche). Les deux utilisent CircuitBreakerPolicy avec les mĂȘmes presets.
Sequential + Hierarchical : Une Crew séquentielle peut contenir des tùches dont les agents utilisent DelegateWorkTool pour simuler un comportement hiérarchique local.
Autonomous + Graph : Un agent autonome peut décider de créer un sous-workflow Graph pour structurer une sous-tùche complexe qu'il a découverte dynamiquement.
Résumé des coûts et performances
| ProcessType | Appels LLM (N tùches, M agents) | Latence | Prévisibilité |
|---|---|---|---|
| Sequential | N | ÎŁ(durĂ©es) | âââââ |
| Hierarchical | N Ă (1 assign + 1-3 reviews) | ÎŁ(durĂ©es) Ă 1.5-3 | ââââ |
| Parallel | N | max(durĂ©es) | ââââ |
| Consensual | N Ă M Ă rounds | ÎŁ(max(durĂ©es) Ă rounds) | âââ |
| Graph | N Ă (1 + retries) | Variable | âââ |
| Autonomous | ImprĂ©visible (budget-bounded) | Variable (wall-time bounded) | ââ |
Références croisées
| Sujet | Document |
|---|---|
| Architecture et concepts de base | Vue d'ensemble |
| Fonctionnalités détaillées | YAML et Builders |
| Orchestration FSM (intra-tĂąche) | ./fsm.md |
| Orchestration Graph (inter-tĂąches) | ./graph.md |
| Orchestration Autonomous | ./autonomous.md |
| Blueprint pour nouveau ProcessType | ../../guides/blueprint.md |