> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # workflowSnapshotToStream() 將 `WorkflowState` 物件(由 `workflow.getWorkflowRunById()` 傳回)轉換成 AI SDK UIMessage 資料部分的 `ReadableStream`。此串流包含與即時 [`workflowRoute()`](https://mastra.zisheng.pro/zh-HK/reference/ai-sdk/workflow-route) 所產生相同的 `WorkflowDataPart` 及 `WorkflowStepDataPart` 區塊。 如要使用呈現即時 Workflow 串流的相同 UI 元件,顯示已完成或已暫停的 Workflow 執行,便可使用此函數。 ## 使用範例 以下 Next.js App Router 端點會以串流方式重播過往的 Workflow 執行: ```typescript 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()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream-response),或 AI SDK 的 `createUIMessageStream()`。 ## 相關內容 - [`workflowRoute()`](https://mastra.zisheng.pro/zh-HK/reference/ai-sdk/workflow-route):串流即時 Workflow 執行 - [`handleWorkflowStream()`](https://mastra.zisheng.pro/zh-HK/reference/ai-sdk/handle-workflow-stream):用於即時 Workflow 串流、與框架無關的處理器 - [`toAISdkStream()`](https://mastra.zisheng.pro/zh-HK/reference/ai-sdk/to-ai-sdk-stream):將即時 Mastra 串流轉換成 AI SDK 格式 - [`toAISdkMessages()`](https://mastra.zisheng.pro/zh-HK/reference/ai-sdk/to-ai-sdk-messages):將已儲存的 Agent 訊息轉換成 AI SDK 格式