预览中: 尝试事件流式类型化智能体投影,涵盖消息、工具调用、状态和最终输出。从 LangChain 事件流开始,或探索流式输出 cookbook 中的可运行示例。
概述
LangChain 的流式系统让你可以将智能体运行的实时反馈展示到你的应用中。 LangChain 流式输出的功能:- 流式智能体进度——在每个智能体步骤后获取状态更新。
- 流式 LLM Token——在语言模型 Token 生成时进行流式传输。
- 流式思考/推理 Token——在模型推理生成时展示。
- 流式自定义更新——发送用户定义的信号(例如
"已获取 10/100 条记录")。 - 流式多模式——从
updates(智能体进度)、messages(LLM Token + 元数据)或custom(任意用户数据)中选择。
支持的流式模式
将以下一种或多种流式模式作为列表传递给stream 方法:
智能体进度
要流式传输智能体进度,使用stream 方法并设置 streamMode: "updates"。这会在每个智能体步骤后发出事件。
例如,如果你有一个调用一次工具的智能体,你应该看到以下更新:
- LLM 节点:包含工具调用请求的
AIMessage - 工具节点:包含执行结果的
ToolMessage - LLM 节点:最终 AI 响应
LLM Token
要在 LLM 生成 Token 时进行流式传输,使用streamMode: "messages":
自定义更新
要在工具执行时流式传输更新,你可以使用配置中的writer 参数。
输出
如果你向工具添加了
writer 参数,在没有提供 writer 函数的情况下,你将无法在 LangGraph 执行上下文之外调用该工具。流式多模式
你可以通过将 streamMode 作为数组传递来指定多种流式模式:streamMode: ["updates", "messages", "custom"]。
流式输出将是 [mode, chunk] 的元组,其中 mode 是流式模式的名称,chunk 是该模式流式传输的数据。
常见模式
以下是展示流式输出常见用例的示例。流式思考/推理 Token
某些模型在生成最终答案之前会执行内部推理。你可以通过过滤标准内容块中type 为 "reasoning" 的块来流式传输这些思考/推理 Token。
要从智能体流式传输思考 Token,使用
streamMode: "messages" 并过滤推理内容块。当模型支持时,使用启用了扩展思考的模型实例(例如 ChatAnthropic):
输出
content_blocks 属性将提供商特定的格式(Anthropic thinking 块、OpenAI reasoning 摘要等)规范化为标准的 "reasoning" 内容块类型。
要直接从聊天模型(不使用智能体)流式传输推理 Token,请参阅使用聊天模型流式输出。
禁用流式输出
在某些应用中,你可能需要为给定模型禁用单个 Token 的流式输出。这在以下情况下很有用: 在初始化模型时设置streaming: false。
并非所有聊天模型集成都支持
streaming 参数。如果你的模型不支持,改用 disableStreaming: true。此参数通过基类在所有聊天模型上可用。相关内容
- 前端流式输出——使用
useStream构建 React UI 进行实时智能体交互 - 使用聊天模型流式输出——直接从聊天模型流式传输 Token,不使用智能体或图
- 使用聊天模型推理——配置和访问聊天模型的推理输出
- 标准内容块——了解用于推理、文本和其他内容类型的规范化内容块格式
- 使用人机协作流式输出——在处理人工审核中断时流式传输智能体进度
- LangGraph 流式输出——高级流式输出选项,包括
values、debug模式和子图流式输出
连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。

