Skip to main content
Alpha 版本提示: 本文档涵盖的是 v1-alpha 版本。内容尚不完整,且可能随时变更。如需查阅最新稳定版本,请参阅 v0 版本的 LangChain Python 文档LangChain JavaScript 文档
LangChain 实现了一套流式传输系统,用于实时推送更新。 流式传输对于提升基于大语言模型(LLM)构建的应用程序的响应速度至关重要。通过在完整响应尚未生成完毕时就逐步显示输出内容,流式传输显著改善了用户体验(UX),尤其在应对 LLM 的延迟时效果尤为明显。

从智能体进行流式传输

LangChain 的流式传输系统允许你将智能体运行过程中的实时反馈推送到你的应用程序中。 使用 LangChain 流式传输可以实现的功能包括:

智能体进度

要流式传输智能体进度,请使用 stream()astream() 方法,并设置 stream_mode="updates"。此设置将在每个智能体步骤后发出一个事件。 例如,如果你有一个仅调用一次工具的智能体,你应看到如下更新:
  • LLM 节点:包含工具调用请求的 AI 消息
  • 工具节点:包含执行结果的工具消息
  • LLM 节点:最终的 AI 响应
流式传输智能体进度
输出

LLM 令牌

要流式传输 LLM 生成的令牌,请使用 stream_mode="messages"。下面你可以看到智能体流式传输工具调用和最终响应的输出。
流式传输 LLM 令牌
输出

自定义更新

要在工具执行时流式传输更新,你可以使用 get_stream_writer
流式传输自定义更新
输出
如果你在工具内部添加了 get_stream_writer,则无法在 LangGraph 执行上下文之外调用该工具。

同时流式传输多种模式

你可以通过将流模式作为列表传递来指定多个流模式:stream_mode=["updates", "custom"]
同时流式传输多种模式
输出

禁用流式传输

在某些应用程序中,你可能需要为特定模型禁用单个令牌的流式传输。 这在多智能体系统中非常有用,可以控制哪些智能体流式传输其输出。 请参阅模型指南,了解如何禁用流式传输。