Skip to main content
事件流式输出是大多数 LangGraph 应用代码推荐的进程内流式输出模型。它返回一个运行流对象,可以同时以多种方式消费。
查看流式输出食谱获取可运行的示例和详细参考文档的链接。
version="v3" 标志暂时需要用于选择此流式行为。新行为将在下一个 LangGraph 主版本中成为默认流版本。

事件流式输出提供什么

运行流在一个底层事件流上暴露类型化投影: 多个消费者可以并发读取这些投影。读取 run.messages 不会消费 run.valuesrun.subgraphsrun.output 所需的事件。

流协议事件

当你需要原始协议事件流时,使用运行对象本身:
每个协议事件都有一个类似通道的 method、一个单调递增的 seq 编号,以及包含 namespacetimestamp、可选的 node 和通道特定 dataparams
核心通道包括: messages 通道将输出建模为内容块。这使得 Token 流式输出、推理块、工具调用块和多模态内容在应用代码中无需提供商特定格式即可显式化。

添加自定义转换器

流转换器是事件流式输出中的投影层。它们观察协议事件,维护自己的状态,并暴露运行的派生视图,如进度事件、工件、Token 总数、工具活动或第三方协议消息。 转换器在 init() 中创建投影,在 process() 中观察每个事件,并在运行完成时最终化或使投影失败。
启动事件流时传入转换器:

使用 StreamChannel

StreamChannel 是自定义流式数据的投影原语。它为进程内消费者提供可迭代流,当通道有协议名称时,还可以将推送的值转发给远程 SDK 客户端。 命名通道的负载必须可序列化,因为它们也作为 custom:<name> 协议事件发出。将 Promise、异步可迭代对象、类实例和其他进程内句柄保持在本地。

相关