version="v3" 标志目前是临时必需的,用于启用此流行为。新行为将在下一个 LangGraph 主要版本中成为默认流版本。事件流提供的功能
运行流在一个底层事件流上暴露类型化投影:
多个消费者可以并发读取这些投影。读取
run.messages 不会消耗 run.values、run.subgraphs 或 run.output 所需的事件。
流协议事件
当你需要原始协议事件流时,使用运行对象本身:method、一个单调递增的 seq 编号,以及包含 namespace、timestamp、可选的 node 和通道特定 data 的 params。
messages 通道将输出建模为内容块。这使得 Token 流式输出、推理块、工具调用块和多模态内容变得明确,无需在应用代码中使用特定提供商的格式。
添加自定义转换器
流转换器是事件流中的投影层。它们观察协议事件,维护自己的状态,并暴露运行的派生视图,如进度事件、产物、Token 总数、工具活动或第三方协议消息。 转换器在init() 中创建投影,在 process() 中观察每个事件,并在运行完成时完成或使投影失败。
使用 StreamChannel
StreamChannel 是自定义流式数据的投影原语。它为进程内消费者提供可迭代的流,当通道具有协议名称时,还可以将推送的值转发给远程 SDK 客户端。
命名通道的载荷必须可序列化,因为它们也会作为
custom:<name> 协议事件发出。请将 promise、异步可迭代对象、类实例和其他进程内句柄保持为本地的。
相关内容
- 流式输出示例集展示了可运行的事件流示例。
- LangGraph 流式输出涵盖了底层流模式。
- LangChain 事件流涵盖了基于 LangGraph 构建的智能体流式输出接口。
- Deep Agents 事件流涵盖了委托子智能体流。
将这些文档连接到 Claude、VSCode 等工具,通过 MCP 获取实时答案。

