> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # Workflows Mastra 从 `src/mastra/workflows/` 下的 `.ts` 和 `.js` 文件中发现项目级 Workflow。此约定并不局限于某个 Agent:每个包含默认导出的文件都会成为已注册的 Workflow,文件名则成为 Workflow 键。 本页介绍基于文件的约定。有关步骤、schema、控制流、流式传输、状态和 Workflow 执行,请参阅 [Workflow 概览](https://mastra.zisheng.pro/docs/workflows/overview)。 ## 快速开始 在 `src/mastra/workflows/` 下创建文件,使用 [`createWorkflow()`](https://mastra.zisheng.pro/reference/workflows/workflow) 构建 Workflow,然后将其默认导出。 ```typescript 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 会以 `daily-report` 键注册此 Workflow。 ## 与代码配置的优先级 基于文件的 Workflow 会与在 [`new Mastra()`](https://mastra.zisheng.pro/reference/core/mastra-class) 中注册的 Workflow 合并。如果键冲突,代码中注册的 Workflow 优先。