メインコンテンツへ移動

workflowSnapshotToStream()

WorkflowState オブジェクト(workflow.getWorkflowRunById() が返す形式)を、AI SDK UIMessage データパーツの ReadableStream に変換します。このストリームには、実行中の workflowRoute() が生成するものと同じ WorkflowDataPart および WorkflowStepDataPart チャンクが含まれます。

完了または一時停止した Workflow の実行を、実行中の Workflow ストリームをレンダリングするものと同じ UI コンポーネントで表示する場合に使用します。

使用例
使用例への直接リンク

過去の Workflow の実行をストリームとして再生する Next.js App Router エンドポイントの例です。

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
getWorkflowRunById() または Workflow Runs API が返す Workflow の実行状態オブジェクト。runIdworkflowNamestatussteps が含まれます。

戻り値
戻り値への直接リンク

ReadableStream: 次の AI SDK UIMessage データパーツを含むストリーム。

  • start マーカー
  • Workflow のステータスと全ステップの概要を持つ WorkflowDataPart
  • 各ステップの完全な出力を持つ WorkflowStepDataPart
  • finish マーカー

このストリームを、AI SDK の createUIMessageStreamResponse() または createUIMessageStream() に渡します。

  • workflowRoute(): 実行中の Workflow をストリーミング
  • handleWorkflowStream(): 実行中の Workflow をストリーミングする、フレームワークに依存しないハンドラー
  • toAISdkStream(): 実行中の Mastra ストリームを AI SDK 形式に変換
  • toAISdkMessages(): 保存済みの Agent メッセージを AI SDK 形式に変換