Aller au contenu principal

workflowSnapshotToStream()

Convertit un objet WorkflowState (renvoyé par workflow.getWorkflowRunById()) en ReadableStream de parties de données UIMessage de l’AI SDK. Le flux contient les mêmes fragments WorkflowDataPart et WorkflowStepDataPart que produit workflowRoute() en direct.

Utilisez cette fonction pour afficher une exécution de Workflow terminée ou suspendue avec les mêmes composants d’interface qui affichent les flux de Workflow en direct.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

Point de terminaison Next.js App Router qui rejoue une exécution antérieure de Workflow sous forme de flux :

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 })
}

Paramètres
Lien direct vers Paramètres

workflowRun:

WorkflowState
Objet d’état de l’exécution de Workflow, renvoyé par getWorkflowRunById() ou l’API d’exécutions de Workflow. Contient runId, workflowName, status et steps.

Valeur renvoyée
Lien direct vers Valeur renvoyée

ReadableStream : flux de parties de données UIMessage de l’AI SDK contenant :

  • Un marqueur start
  • Un WorkflowDataPart avec le statut du Workflow et les résumés de toutes les étapes
  • Un WorkflowStepDataPart pour chaque étape avec sa sortie complète
  • Un marqueur finish

Transmettez ce flux à createUIMessageStreamResponse() ou à createUIMessageStream() de l’AI SDK.