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。