Workflows
Mastra découvre les Workflows au niveau du projet à partir des fichiers .ts et .js situés dans src/mastra/workflows/. Cette convention n’est pas limitée à un seul Agent : chaque fichier avec un export par défaut devient un Workflow enregistré et le nom du fichier devient la clé du Workflow.
Utilisez cette page pour la convention basée sur les fichiers. Pour les étapes, les schémas, le contrôle de flux, le streaming, l’état et l’exécution de Workflows, consultez la présentation des Workflows.
Démarrage rapideLien direct vers Démarrage rapide
Créez un fichier dans src/mastra/workflows/, construisez le Workflow avec createWorkflow(), puis exportez-le par défaut.
import { createStep, createWorkflow } from '@mastra/core/workflows'
import { z } from 'zod'
const collectInputs = createStep({
id: 'collect-inputs',
inputSchema: z.object({ topic: z.string() }),
outputSchema: z.object({ topic: z.string(), audience: z.string() }),
execute: async ({ inputData }) => ({
topic: inputData.topic,
audience: 'engineering',
}),
})
const writeSummary = createStep({
id: 'write-summary',
inputSchema: z.object({ topic: z.string(), audience: z.string() }),
outputSchema: z.object({ report: z.string() }),
execute: async ({ inputData }) => ({
report: `Daily report about ${inputData.topic} for ${inputData.audience}.`,
}),
})
const dailyReport = createWorkflow({
id: 'daily-report',
inputSchema: z.object({ topic: z.string() }),
outputSchema: z.object({ report: z.string() }),
})
.then(collectInputs)
.then(writeSummary)
.commit()
export default dailyReport
Mastra enregistre ce Workflow sous la clé daily-report.
Priorité par rapport au codeLien direct vers Priorité par rapport au code
Les Workflows basés sur des fichiers sont fusionnés avec ceux enregistrés dans new Mastra(). En cas de conflit de clé, le Workflow enregistré dans le code est prioritaire.