workflowSnapshotToStream()
將 WorkflowState 物件(由 workflow.getWorkflowRunById() 傳回)轉換成 AI SDK UIMessage 資料部分的 ReadableStream。此串流包含與即時 workflowRoute() 所產生相同的 WorkflowDataPart 及 WorkflowStepDataPart 區塊。
如要使用呈現即時 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標記 - 一個包含 Workflow 狀態及所有步驟摘要的
WorkflowDataPart - 每個步驟各有一個包含完整輸出的
WorkflowStepDataPart - 一個
finish標記
將此串流傳給 createUIMessageStreamResponse(),或 AI SDK 的 createUIMessageStream()。
相關內容相關內容 的直接連結
workflowRoute():串流即時 Workflow 執行handleWorkflowStream():用於即時 Workflow 串流、與框架無關的處理器toAISdkStream():將即時 Mastra 串流轉換成 AI SDK 格式toAISdkMessages():將已儲存的 Agent 訊息轉換成 AI SDK 格式