> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # workflowSnapshotToStream() 將 `WorkflowState` 物件(由 `workflow.getWorkflowRunById()` 傳回)轉換為 AI SDK UIMessage 資料部分的 `ReadableStream`。此串流所包含的 `WorkflowDataPart` 與 `WorkflowStepDataPart` 區塊,和即時 [`workflowRoute()`](https://mastra.zisheng.pro/zh-TW/reference/ai-sdk/workflow-route) 產生的內容相同。 當你想使用呈現即時 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` 標記 - 一個 `WorkflowDataPart`,包含 Workflow 狀態及所有步驟摘要 - 每個步驟各有一個 `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-TW/reference/ai-sdk/workflow-route):串流即時 Workflow 執行 - [`handleWorkflowStream()`](https://mastra.zisheng.pro/zh-TW/reference/ai-sdk/handle-workflow-stream):處理即時 Workflow 串流且與框架無關的處理器 - [`toAISdkStream()`](https://mastra.zisheng.pro/zh-TW/reference/ai-sdk/to-ai-sdk-stream):將即時 Mastra 串流轉換為 AI SDK 格式 - [`toAISdkMessages()`](https://mastra.zisheng.pro/zh-TW/reference/ai-sdk/to-ai-sdk-messages):將已儲存的 Agent 訊息轉換為 AI SDK 格式