workflowRoute()
AI SDK 形式を使用し、Workflow の実行をストリーミングするルートハンドラーを作成します。この関数は、入力データを受け取り、Workflow を実行し、レスポンスを AI SDK 互換形式でクライアントへストリーミングする HTTP POST エンドポイントを登録します。カスタム API ルート内で使用する必要があります。
フレームワークに依存しないハンドラーが必要な場合は、handleWorkflowStream() を使用してください。
workflowRoute() では、既存の AI SDK v5 のデフォルト動作が維持されます。アプリが AI SDK v6 に対して型付けされている場合は、version: 'v6' を渡してください。
Workflow のステップで Agent のストリームを Workflow の writer にパイプすると(例: await response.fullStream.pipeTo(writer))、Agent が Workflow のステップ内で実行される場合でも、Agent のテキストチャンクと Tool 呼び出しがリアルタイムで UI ストリームへ転送されます。
詳しくは、Workflow のストリーミングを参照してください。
使用例使用例への直接リンク
次の例では、ID が weatherWorkflow の Workflow を使用する Workflow ルートを、/workflow エンドポイントに設定する方法を示します。
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 に解決されます。
import { Mastra } from '@mastra/core'
import { workflowRoute } from '@mastra/ai-sdk'
export const mastra = new Mastra({
server: {
apiRoutes: [
workflowRoute({
path: '/workflow/:workflowId',
}),
],
},
})
パラメーターパラメーターへの直接リンク
version?:
'v5' を渡します。アプリが AI SDK v6 のレスポンスヘルパーに対して型付けされている場合は、'v6' を渡します。path?:
/workflow または /workflow/:workflowId)。Workflow を動的にルーティングするには :workflowId を含めます。workflow?:
includeTextStreamParts?:
追加設定追加設定への直接リンク
prepareSendMessagesRequest を使用すると、Workflow ルートへ送信するリクエストをカスタマイズできます。たとえば、Workflow に追加の設定を渡せます。
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,
},
},
}
},
}),
})