概述
LangChain 的流式处理系统让您可以将智能体运行的实时反馈呈现在您的应用中。 LangChain 流式处理可以实现以下功能:- 流式传输智能体进度—在每个智能体步骤后获取状态更新。
- 流式传输大语言模型 token—在语言模型生成 token 时进行流式传输。
- 流式传输思考/推理 token—实时呈现模型推理过程。
- 流式传输自定义更新—发出用户定义的信号(例如,
"Fetched 10/100 records")。 - 多模式流式传输—可选择
updates(智能体进度)、messages(大语言模型 token + 元数据)或custom(任意用户数据)。
支持的流模式
将以下一个或多个流模式作为列表传递给stream 方法:
智能体进度
要流式传输智能体进度,请使用带streamMode: "updates" 的 stream 方法。这会在每个智能体步骤后发出一个事件。
例如,如果您有一个调用一次工具的智能体,您应该会看到以下更新:
- LLM 节点:
AIMessage带有工具调用请求 - 工具节点:
ToolMessage带有执行结果 - LLM 节点:最终的 AI 响应
configurable 传递一个 thread_id,以便对会话进行检查点保存,后续轮次可以恢复相同的对话历史。thread_id 独立于 streamMode;您也可以在传递 thread_id 的同时传递 context,用于工具从 runtime.context 读取的每次运行数据。
使用
thread_id 持久化会话历史需要为智能体配置一个 检查点存储器。在 LangSmith 部署上,检查点存储器是自动配置的。在本地运行时,需要显式传递一个,例如 createAgent({ ..., checkpointer: new MemorySaver() })。为简洁起见,本页剩余的代码片段省略了 thread_id,但在生产环境中您应该传递它。大语言模型 token
要流式传输大语言模型生成时的 token,请使用streamMode: "messages":
将智能体作为节点封装在父
StateGraph 中? createAgent 返回一个 ReactAgent 包装器;添加为节点时请使用 agent.graph。使用 subgraphs: true,以便消息块包含子图命名空间。参见 子图输出。自定义更新
要在工具执行时流式传输其更新,您可以使用配置中的writer 参数。
Output
如果您为工具添加了
writer 参数,在 LangGraph 执行上下文之外,如果不提供写入器函数,您将无法调用该工具。多模式流式传输
您可以通过将 streamMode 作为数组传递来指定多个流模式:streamMode: ["updates", "messages", "custom"]。
流式输出将是 [mode, chunk] 元组,其中 mode 是流模式的名称,chunk 是该模式流式传输的数据。
常见模式
以下是展示流式处理常见用法的示例。流式传输思考/推理 token
一些模型在生成最终答案前会进行内部推理。您可以通过过滤type 为 "reasoning" 的标准内容块来流式传输这些思考/推理 token。
要从智能体流式传输思考 token,请使用
streamMode: "messages" 并过滤推理内容块。当模型支持时,使用启用了扩展思考的模型实例(例如 ChatAnthropic):
Output
content_blocks 属性将特定于提供商的格式(Anthropic thinking 块、OpenAI reasoning 摘要等)标准化为标准的 "reasoning" 内容块类型。
要直接从聊天模型(不使用智能体)流式传输推理 token,请参阅使用聊天模型进行流式传输。
禁用流式传输
在某些应用中,您可能需要禁用特定模型的单个 token 流式传输。这在以下情况下很有用: 在初始化模型时设置streaming: false。
并非所有聊天模型集成都支持
streaming 参数。如果您的模型不支持,请改用 disableStreaming: true。此参数通过基类在所有聊天模型上可用。相关内容
- 前端流式传输—使用
useStream构建支持实时智能体交互的 React UI - 使用聊天模型进行流式传输—直接从聊天模型流式传输 token,无需使用智能体或图
- 使用聊天模型进行推理—配置和访问聊天模型的推理输出
- 标准内容块—了解用于推理、文本和其他内容类型的标准化内容块格式
- 支持人工介入的流式传输—在流式传输智能体进度的同时处理人工审核的中断
- LangGraph 流式传输—高级流式传输选项,包括
values、debug模式和子图流式传输
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

