> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # Workflow Mastra 會從 `src/mastra/workflows/` 下的 `.ts` 和 `.js` 檔案探索專案層級的 Workflow。此慣例不限於單一 Agent:每個具有 default export 的檔案都會成為已註冊的 Workflow,而檔名會成為 Workflow key。 本頁說明檔案式慣例。若要了解 step、schema、控制流程、串流、state 與 Workflow 執行,請參閱 [Workflow 概觀](https://mastra.zisheng.pro/zh-TW/docs/workflows/overview)。 ## 快速開始 在 `src/mastra/workflows/` 下建立檔案,使用 [`createWorkflow()`](https://mastra.zisheng.pro/zh-TW/reference/workflows/workflow) 建立 Workflow,並將它 default export。 ```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` key 註冊此 Workflow。 ## 與程式碼設定的優先順序 檔案式 Workflow 會與透過 [`new Mastra()`](https://mastra.zisheng.pro/zh-TW/reference/core/mastra-class) 註冊的 Workflow 合併。若 key 發生衝突,以程式碼註冊的 Workflow 優先。