workflowSnapshotToStream()
将 WorkflowState 对象(由 workflow.getWorkflowRunById() 返回)转换为由 AI SDK UIMessage data part 组成的 ReadableStream。该 stream 包含与实时 workflowRoute() 相同的 WorkflowDataPart 和 WorkflowStepDataPart chunk。
如果要使用渲染实时 Workflow stream 的同一组 UI 组件来显示已完成或已暂停的 Workflow run,请使用此函数。
使用示例使用示例的直接链接
将过去的 Workflow run 作为 stream 重放的 Next.js App Router endpoint:
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 run 状态对象,由
getWorkflowRunById() 或 Workflow runs API 返回。包含 runId、workflowName、status 和 steps。返回值返回值的直接链接
ReadableStream:由 AI SDK UIMessage data part 组成的 stream,包含:
- 一个
start标记 - 一个包含 Workflow 状态和所有 step 摘要的
WorkflowDataPart - 每个 step 对应一个包含完整输出的
WorkflowStepDataPart - 一个
finish标记
将此 stream 传递给 AI SDK 的 createUIMessageStreamResponse() 或 createUIMessageStream()。
相关内容相关内容的直接链接
workflowRoute(): 流式传输实时 Workflow runhandleWorkflowStream(): 用于实时 Workflow 流式传输、与框架无关的处理程序toAISdkStream(): 将实时 Mastra stream 转换为 AI SDK 格式toAISdkMessages(): 将已存储的 Agent 消息转换为 AI SDK 格式