Run.stream()
.stream() 方法支持从 Workflow 实时流式传输响应。它会直接返回事件的 ReadableStream。
用法示例用法示例的直接链接
const run = await workflow.createRun()
const stream = await run.stream({
inputData: {
value: 'initial data',
},
})
for await (const chunk of stream) {
console.log(chunk)
}
参数参数的直接链接
inputData?:
z.infer<TInput>
与 Workflow 输入 schema 匹配的输入数据
requestContext?:
RequestContext
Workflow 执行期间使用的 Request Context 数据
tracingContext?:
TracingContext
用于创建子 span 和添加元数据的 Tracing 上下文。
currentSpan?:
Span
用于创建子 span 和添加元数据的当前 span。
tracingOptions?:
TracingOptions
Tracing 配置选项。
metadata?:
Record<string, any>
要添加到根 Trace span 的元数据。
requestContextKeys?:
string[]
要作为此 Trace 的元数据提取的其他 RequestContext 键。支持使用点号表示法访问嵌套值(例如 'user.id')。
traceId?:
string
本次执行使用的 Trace ID(1–32 个十六进制字符)。如果提供,该 Trace 将成为指定 Trace 的一部分。
parentSpanId?:
string
本次执行使用的父 span ID(1–16 个十六进制字符)。如果提供,将创建根 span 作为该 span 的子 span。
tags?:
string[]
要应用到此 Trace 的标签。用于对 Trace 进行分类和筛选的字符串标签。
closeOnSuspend?:
boolean
是要在 Workflow 暂停时关闭 Stream,还是保持 Stream 打开直至 Workflow 完成(成功或出错)。默认值为 true。
返回值返回值的直接链接
返回一个实现异步可迭代接口(可直接用于 for await...of 循环)的 WorkflowRunOutput 对象,并可通过该对象访问 Stream 和 Workflow 执行结果。
fullStream:
ReadableStream<WorkflowStreamEvent>
可供迭代的 Workflow 事件 ReadableStream,用于实时跟踪进度。也可以直接迭代 WorkflowRunOutput 对象。
result:
Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>
解析为最终 Workflow 结果的 Promise
status:
WorkflowRunStatus
当前 Workflow 运行状态('running'、'suspended'、'success'、'failed'、'canceled' 或 'tripwire')
usage:
Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cachedInputTokens?: number }>
解析为 token 用量统计信息的 Promise
扩展用法示例扩展用法示例的直接链接
const run = await workflow.createRun()
const stream = run.stream({
inputData: {
value: 'initial data',
},
})
// Iterate over stream events (you can iterate over stream directly or use stream.fullStream)
for await (const chunk of stream) {
console.log(chunk)
}
// Access the final result
const result = await stream.result
console.log('Final result:', result)
// Access token usage
const usage = await stream.usage
console.log('Token usage:', usage)
// Check current status
console.log('Status:', stream.status)
Stream 事件Stream 事件的直接链接
Stream 会在 Workflow 执行期间发出不同类型的事件。每个事件都有一个 type 字段,以及一个包含相关数据的 payload:
workflow-start:Workflow 开始执行workflow-step-start:步骤开始执行workflow-step-output:步骤的自定义输出workflow-step-progress:foreach 步骤报告每次迭代的进度(包括completedCount、totalCount、currentIndex、iterationStatus以及可选的iterationOutput)workflow-step-result:步骤完成并产生结果workflow-finish:Workflow 执行完成,并附带用量统计信息。对于成功的运行,payload.finalWorkflowResult包含 Workflow 的最终结果,因此 Stream 使用方无需后续获取