> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # handleWorkflowStream() 与框架无关的处理程序,用于以 AI SDK 兼容格式流式传输 Workflow 执行。当需要在 Hono 或 Mastra 自有的 [apiRoutes](https://mastra.zisheng.pro/docs/server/custom-api-routes) 功能之外处理 Workflow stream 时,请直接使用此函数。 `handleWorkflowStream()` 返回一个 `ReadableStream`,可使用 [`createUIMessageStreamResponse()`](https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream-response) 对其进行封装。 `handleWorkflowStream()` 保留现有的 AI SDK v5 默认行为。如果应用使用 AI SDK v6 类型,请传入 `version: 'v6'`。 如果要在 Mastra server 中创建 Workflow 路由,请使用 [`workflowRoute()`](https://mastra.zisheng.pro/reference/ai-sdk/workflow-route)。 > **Workflow 中的 Agent 流式传输:** 当 Workflow step 将 Agent stream pipe 到 Workflow writer(例如 `await response.fullStream.pipeTo(writer)`)时,即使 Agent 在 Workflow step 内运行,其文本 chunk 和 Tool 调用也会实时转发到 UI stream。 > > 详情请参阅 [Workflow 流式传输](https://mastra.zisheng.pro/docs/workflows/overview)。 ## 使用示例 Next.js App Router 示例: ```typescript 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'`): 选择要输出的 AI SDK stream 协议。省略此项或传入 'v5' 可使用现有默认行为;当应用使用 AI SDK v6 response helper 的类型时,传入 'v6'。 (Default: `'v5'`) **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`): 用于启动新 Workflow 执行的输入数据。 **params.resumeData** (`Record`): 用于恢复已暂停 Workflow 执行的数据。 **params.requestContext** (`RequestContext`): 传递给 Workflow 执行的 request context。 **params.tracingOptions** (`TracingOptions`): 用于 tracing 和可观测性的选项。 **params.step** (`string`): Workflow 中要指定的具体 step。 **includeTextStreamParts** (`boolean`): 是否在输出中包含文本 stream part。 (Default: `true`)