handleWorkflowStream()
這是與框架無關的處理器,可用於以 AI SDK 相容格式串流 Workflow 執行作業。當你需要在 Hono 或 Mastra 本身的 apiRoutes 功能之外處理 Workflow 串流時,請直接使用此函式。
handleWorkflowStream() 會傳回 ReadableStream,你可以使用 createUIMessageStreamResponse() 將其包裝。
handleWorkflowStream() 會保留現有的 AI SDK v5/預設行為。如果你的應用程式使用 AI SDK v6 型別,請傳入 version: 'v6'。
如果想在 Mastra 伺服器內建立 Workflow 路由,請使用 workflowRoute()。
Workflow 中的 Agent 串流
當 Workflow 步驟將 Agent 的串流管線傳送至 Workflow 寫入器(例如 await response.fullStream.pipeTo(writer))時,即使 Agent 在 Workflow 步驟內執行,其文字區塊與 Tool 呼叫也會即時轉送至 UI 串流。
詳情請參閱 Workflow 串流。
使用範例「使用範例」的直接連結
Next.js App Router 範例:
app/api/workflow/route.ts
import { handleWorkflowStream } from '@mastra/ai-sdk'
import { createUIMessageStreamResponse } from 'ai'
import { mastra } from '@/src/mastra'
export async function POST(req: Request) {
const params = await req.json()
const stream = await handleWorkflowStream({
mastra,
workflowId: 'weatherWorkflow',
params,
})
return createUIMessageStreamResponse({ stream })
}
參數「參數」的直接連結
version?:
'v5' | 'v6'
= 'v5'
選擇要輸出的 AI SDK 串流契約。省略此參數或傳入
'v5',即可使用現有的預設行為。當你的應用程式使用 AI SDK v6 回應輔助函式的型別時,請傳入 'v6'。mastra:
Mastra
包含已註冊 Workflow 的 Mastra 執行個體。
workflowId:
string
要執行的 Workflow ID。
params:
WorkflowStreamHandlerParams
Workflow 串流的參數。
params.runId?:
string
Workflow 執行作業的選用執行 ID。
params.resourceId?:
string
Workflow 執行的選用資源 ID。
params.inputData?:
Record<string, any>
用於開始新 Workflow 執行作業的輸入資料。
params.resumeData?:
Record<string, any>
用於繼續已暫停 Workflow 執行作業的資料。
params.requestContext?:
RequestContext
要傳遞至 Workflow 執行作業的請求內容。
params.tracingOptions?:
TracingOptions
追蹤與可觀測性的選項。
params.step?:
string
Workflow 中要指定的特定步驟。
includeTextStreamParts?:
boolean
= true
是否在輸出中包含文字串流部分。