Aller au contenu principal

Mastra.addDynamicWorkflows()

beta

Les Workflows dynamiques sont en bêta. Des changements avec rupture de compatibilité peuvent survenir sans incrément de version majeure tant que l’API n’est pas stable.

La méthode .addDynamicWorkflows() ajoute un ensemble de définitions de Workflows dynamiques qui peuvent se référencer mutuellement. Le cas classique est un Workflow racine accompagné de Workflows auxiliaires qu’il imbrique, alors qu’aucune de ces définitions n’existe encore.

L’ensemble est intégralement validé au préalable. Ses éléments sont ensuite enregistrés selon l’ordre des dépendances, afin qu’un Workflow auxiliaire soit toujours en place avant le Workflow qui l’imbrique.

addDynamicWorkflow() correspond au cas d’un seul élément.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

await mastra.addDynamicWorkflows([
helperDefinition, // nested by the root — order in the array doesn't matter
rootDefinition, // graph contains { type: 'workflow', workflowId: helperDefinition.id }
])

Paramètres
Lien direct vers Paramètres

defs:

readonly DynamicWorkflowGraph[]
Définitions de Workflow à ajouter. Les références de Workflows imbriqués peuvent être résolues dans les registres actifs ou par rapport aux autres éléments du même ensemble.

Valeur renvoyée
Lien direct vers Valeur renvoyée

Promesse qui se résout une fois que chaque élément est validé, enregistré et persisté.

Comportement
Lien direct vers Comportement

  • Les références sont résolues par rapport à l’union des registres de l’instance et des ID propres à l’ensemble ; un Workflow racine peut donc imbriquer un auxiliaire introduit dans le même appel. L’ordre d’enregistrement est dérivé du graphe de dépendances, et non de l’ordre du tableau.
  • Un ensemble rejeté n’enregistre rien. Les ID en double, les éléments non valides et les cycles de dépendances sont détectés avant toute mutation. Si l’enregistrement ou la persistance échoue en cours de route, le registre en mémoire est restauré à son état antérieur.
  • Les écritures dans le stockage ont lieu en dernier. Une défaillance du stockage au milieu du traitement peut laisser certaines lignes écrites, mais le registre est tout de même annulé et les lignes orphelines restent inactives jusqu’au prochain démarrage.