跳至主要內容

workflowSnapshotToStream()

WorkflowState 物件(由 workflow.getWorkflowRunById() 傳回)轉換為 AI SDK UIMessage 資料部分的 ReadableStream。此串流所包含的 WorkflowDataPartWorkflowStepDataPart 區塊,和即時 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 傳回。包含 runIdworkflowNamestatussteps

傳回值
「傳回值」的直接連結

ReadableStream:AI SDK UIMessage 資料部分的串流,其中包含:

  • 一個 start 標記
  • 一個 WorkflowDataPart,包含 Workflow 狀態及所有步驟摘要
  • 每個步驟各有一個 WorkflowStepDataPart,包含其完整輸出
  • 一個 finish 標記

將此串流傳遞至 createUIMessageStreamResponse() 或 AI SDK 的 createUIMessageStream()