概述
LangChain 的流式系统允许您将智能体运行的实时反馈展示到您的应用程序中。 使用 LangChain 流式传输可以实现:- 流式传输智能体进度—在每次智能体步骤后获取状态更新。
- 流式传输 LLM 令牌—流式传输正在生成的语言模型令牌。
- 流式传输思考/推理令牌—展示正在生成的模型推理过程。
- 流式传输自定义更新—发射用户定义的信号(例如,
"Fetched 10/100 records")。 - 流式传输多种模式—从
updates(智能体进度)、messages(LLM 令牌 + 元数据)或custom(任意用户数据)中选择。
支持的流模式
将以下一个或多个流模式作为列表传递给stream 方法:
智能体进度
要流式传输智能体进度,请使用stream 方法并设置 streamMode: "updates"。这会在每个智能体步骤后发射一个事件。
例如,如果您有一个调用一次工具的代理,您应该看到以下更新:
- LLM 节点:带有工具调用请求的
AIMessage - 工具节点:带有执行结果的
ToolMessage - LLM 节点:最终 AI 响应
LLM 令牌
要流式传输由 LLM 产生的令牌,请使用streamMode: "messages":
自定义更新
要流式传输工具执行时的更新,您可以使用配置中的writer 参数。
Output
如果您将
writer 参数添加到工具中,您将无法在没有提供 writer 函数的情况下在 LangGraph 执行上下文之外调用该工具。流式传输多种模式
您可以通过传递流模式数组来指定多个流模式:streamMode: ["updates", "messages", "custom"]。
流式传输的输出将是 [mode, chunk] 元组,其中 mode 是流模式的名称,chunk 是该模式流式传输的数据。
常见模式
以下是展示流式传输常见用例的示例。流式传输思考/推理令牌
某些模型在生成最终答案之前会进行内部推理。您可以通过过滤 标准内容块 的type 为 "reasoning" 来流式传输这些正在生成的思考/推理令牌。
要从智能体流式传输思考令牌,请使用
streamMode: "messages" 并过滤推理内容块。当模型支持时,使用具有扩展思考功能的模型实例(例如 ChatAnthropic):
Output
thinking 块、OpenAI reasoning 摘要等)通过 content_blocks 属性标准化为标准的 "reasoning" 内容块类型。
要从聊天模型直接流式传输推理令牌(不使用智能体),请参阅 与聊天模型流式传输。
禁用流式传输
在某些应用程序中,您可能需要禁用给定模型的单个令牌的流式传输。这在以下情况下很有用: 初始化模型时设置streaming: false。
并非所有聊天模型集成都支持
streaming 参数。如果您的模型不支持它,请使用 disableStreaming: true。此参数通过基类在所有聊天模型上可用。相关资源
- 前端流式传输—使用
useStream构建 React UI 以实现实时智能体交互 - 与聊天模型流式传输—直接从聊天模型流式传输令牌,无需使用智能体或图
- 与聊天模型推理—配置和访问聊天模型的推理输出
- 标准内容块—了解用于推理、文本和其他内容类型的标准化内容块格式
- 人机回环流式传输—在处理人类审查的中断时流式传输智能体进度
- LangGraph 流式传输—高级流式传输选项,包括
values、debug模式和子图流式传输
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

