workflowSnapshotToStream()
將 WorkflowState 物件(由 workflow.getWorkflowRunById() 傳回)轉換為 AI SDK UIMessage 資料部分的 ReadableStream。此串流所包含的 WorkflowDataPart 與 WorkflowStepDataPart 區塊,和即時 workflowRoute() 產生的內容相同。
當你想使用呈現即時 Workflow 串流的相同 UI 元件,顯示已完成或已暫停的 Workflow 執行時,請使用此函式。
使用範例「使用範例」的直接連結
以下 Next.js App Router 端點會以串流形式重新播放過去的 Workflow 執行:
app/api/workflow-replay/route.ts
import { workflowSnapshotToStream } from '@mastra/ai-sdk'
import { createUIMessageStreamResponse } from 'ai'
import { mastra } from '@/src/mastra'
export async function GET(req: Request) {
const { searchParams } = new URL(req.url)
const runId = searchParams.get('runId')!
const workflowRun = await mastra.getWorkflow('myWorkflow').getWorkflowRunById(runId)
if (!workflowRun) {
return new Response('Not found', { status: 404 })
}
const stream = workflowSnapshotToStream(workflowRun)
return createUIMessageStreamResponse({ stream })
}
參數「參數」的直接連結
workflowRun:
WorkflowState
Workflow 執行狀態物件,由
getWorkflowRunById() 或 Workflow 執行 API 傳回。包含 runId、workflowName、status 及 steps。傳回值「傳回值」的直接連結
ReadableStream:AI SDK UIMessage 資料部分的串流,其中包含:
- 一個
start標記 - 一個
WorkflowDataPart,包含 Workflow 狀態及所有步驟摘要 - 每個步驟各有一個
WorkflowStepDataPart,包含其完整輸出 - 一個
finish標記
將此串流傳遞至 createUIMessageStreamResponse() 或 AI SDK 的 createUIMessageStream()。
相關內容「相關內容」的直接連結
workflowRoute():串流即時 Workflow 執行handleWorkflowStream():處理即時 Workflow 串流且與框架無關的處理器toAISdkStream():將即時 Mastra 串流轉換為 AI SDK 格式toAISdkMessages():將已儲存的 Agent 訊息轉換為 AI SDK 格式