> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # workflowRoute() AI SDK 形式を使用し、Workflow の実行をストリーミングするルートハンドラーを作成します。この関数は、入力データを受け取り、Workflow を実行し、レスポンスを AI SDK 互換形式でクライアントへストリーミングする HTTP `POST` エンドポイントを登録します。[カスタム API ルート](https://mastra.zisheng.pro/ja/docs/server/custom-api-routes)内で使用する必要があります。 フレームワークに依存しないハンドラーが必要な場合は、[`handleWorkflowStream()`](https://mastra.zisheng.pro/ja/reference/ai-sdk/handle-workflow-stream) を使用してください。 `workflowRoute()` では、既存の AI SDK v5 のデフォルト動作が維持されます。アプリが AI SDK v6 に対して型付けされている場合は、`version: 'v6'` を渡してください。 > **Workflow での Agent ストリーミング:** Workflow のステップで Agent のストリームを Workflow の writer にパイプすると(例: `await response.fullStream.pipeTo(writer)`)、Agent が Workflow のステップ内で実行される場合でも、Agent のテキストチャンクと Tool 呼び出しがリアルタイムで UI ストリームへ転送されます。 > > 詳しくは、[Workflow のストリーミング](https://mastra.zisheng.pro/ja/docs/workflows/overview)を参照してください。 ## 使用例 次の例では、ID が `weatherWorkflow` の Workflow を使用する Workflow ルートを、`/workflow` エンドポイントに設定する方法を示します。 ```typescript import { Mastra } from '@mastra/core' import { workflowRoute } from '@mastra/ai-sdk' export const mastra = new Mastra({ server: { apiRoutes: [ workflowRoute({ path: '/workflow', workflow: 'weatherWorkflow', }), ], }, }) ``` `workflowId` に基づく、実行時に定義される Workflow ルーティングも使用できます。URL `/workflow/weatherWorkflow` は、ID が `weatherWorkflow` の Workflow に解決されます。 ```typescript import { Mastra } from '@mastra/core' import { workflowRoute } from '@mastra/ai-sdk' export const mastra = new Mastra({ server: { apiRoutes: [ workflowRoute({ path: '/workflow/:workflowId', }), ], }, }) ``` ## パラメーター **version** (`'v5' | 'v6'`): 出力する AI SDK ストリームのコントラクトを選択します。既存のデフォルト動作を使用するには、省略するか 'v5' を渡します。アプリが AI SDK v6 のレスポンスヘルパーに対して型付けされている場合は、'v6' を渡します。 (Default: `'v5'`) **path** (`string`): ルートのパス(例: /workflow または /workflow/:workflowId)。Workflow を動的にルーティングするには :workflowId を含めます。 (Default: `'/api/workflows/:workflowId/stream'`) **workflow** (`string`): 動的ルーティングを使用しない場合の固定 Workflow ID。 (Default: `undefined`) **includeTextStreamParts** (`boolean`): 出力にテキストストリームのパーツを含めるかどうか。 (Default: `true`) ## 追加設定 [`prepareSendMessagesRequest`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/use-chat#transport.default-chat-transport.prepare-send-messages-request) を使用すると、Workflow ルートへ送信するリクエストをカスタマイズできます。たとえば、Workflow に追加の設定を渡せます。 ```typescript const { error, status, sendMessage, messages, regenerate, stop } = useChat({ transport: new DefaultChatTransport({ api: 'http://localhost:4111/workflow', prepareSendMessagesRequest({ messages }) { return { body: { inputData: { city: messages[messages.length - 1].parts[0].text, }, // Or resumeData for resuming a suspended workflow resumeData: { confirmation: messages[messages.length - 1].parts[0].text, }, }, } }, }), }) ```