跳到主要内容

handleWorkflowStream()

与框架无关的处理程序,用于以 AI SDK 兼容格式流式传输 Workflow 执行。当需要在 Hono 或 Mastra 自有的 apiRoutes 功能之外处理 Workflow stream 时,请直接使用此函数。

handleWorkflowStream() 返回一个 ReadableStream,可使用 createUIMessageStreamResponse() 对其进行封装。

handleWorkflowStream() 保留现有的 AI SDK v5 默认行为。如果应用使用 AI SDK v6 类型,请传入 version: 'v6'

如果要在 Mastra server 中创建 Workflow 路由,请使用 workflowRoute()

Workflow 中的 Agent 流式传输

当 Workflow step 将 Agent stream pipe 到 Workflow writer(例如 await response.fullStream.pipeTo(writer))时,即使 Agent 在 Workflow step 内运行,其文本 chunk 和 Tool 调用也会实时转发到 UI stream。

详情请参阅 Workflow 流式传输

使用示例
使用示例的直接链接

Next.js App Router 示例:

app/api/workflow/route.ts
import { handleWorkflowStream } from '@mastra/ai-sdk'
import { createUIMessageStreamResponse } from 'ai'
import { mastra } from '@/src/mastra'

export async function POST(req: Request) {
const params = await req.json()
const stream = await handleWorkflowStream({
mastra,
workflowId: 'weatherWorkflow',
params,
})
return createUIMessageStreamResponse({ stream })
}

参数
参数的直接链接

version?:

'v5' | 'v6'
= 'v5'
选择要输出的 AI SDK stream 协议。省略此项或传入 'v5' 可使用现有默认行为;当应用使用 AI SDK v6 response helper 的类型时,传入 'v6'

mastra:

Mastra
包含已注册 Workflow 的 Mastra 实例。

workflowId:

string
要执行的 Workflow ID。

params:

WorkflowStreamHandlerParams
Workflow stream 的参数。

params.runId?:

string
Workflow 执行的可选 run ID。

params.resourceId?:

string
Workflow run 的可选 resource ID。

params.inputData?:

Record<string, any>
用于启动新 Workflow 执行的输入数据。

params.resumeData?:

Record<string, any>
用于恢复已暂停 Workflow 执行的数据。

params.requestContext?:

RequestContext
传递给 Workflow 执行的 request context。

params.tracingOptions?:

TracingOptions
用于 tracing 和可观测性的选项。

params.step?:

string
Workflow 中要指定的具体 step。

includeTextStreamParts?:

boolean
= true
是否在输出中包含文本 stream part。
On this page