Workflows
Mastra は、src/mastra/workflows/ 配下の .ts ファイルと .js ファイルから Project レベルの Workflow を検出します。この規約は単一の Agent を対象とするものではありません。default export を持つすべてのファイルが Workflow として登録され、そのファイル名が Workflow Key になります。
ファイルベースの規約については、このページを参照してください。Step、Schema、制御フロー、Streaming、State、Workflow の実行については、Workflow の概要を参照してください。
クイックスタートクイックスタートへの直接リンク
src/mastra/workflows/ 配下にファイルを作成し、createWorkflow() で Workflow を構築して default export します。
src/mastra/workflows/daily-report.ts
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 は、この Workflow を daily-report Key で登録します。
コードとの優先順位コードとの優先順位への直接リンク
ファイルベースの Workflow は、new Mastra() で登録された Workflow とマージされます。Key が重複した場合は、コードで登録された Workflow が優先されます。