Skip to main content
对于新应用,我们推荐 事件流——Deep Agents v0.6 中引入的 typed-projection API。事件流为每个投影(子智能体、消息、工具调用、值)提供独立的迭代器,因此您可以独立消费它们,而不是在 stream_mode 块上分支。
Deep Agents 基于 LangGraph 的流式基础设施构建,并针对子智能体流提供了一流支持。当深度智能体将工作委托给子智能体时,您可以从每个子智能体独立地流式传输更新——实时跟踪进度、LLM Token 和工具调用。 深度智能体流式传输可以实现的功能:

启用子图流式传输

Deep Agents 使用 LangGraph 的子图流式传输来暴露子智能体执行中的事件。要接收子智能体事件,在流式传输时启用 stream_subgraphs。 :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

命名空间

当 subgraphs 启用时,每个流式传输事件都包含一个 命名空间,用于标识哪个智能体生成了它。命名空间是节点名称和任务 ID 的路径,表示智能体层次结构。 使用命名空间将事件路由到正确的 UI 组件: :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

子智能体进度

使用 stream_mode="updates" 跟踪子智能体进度,每当一个步骤完成时。这对于显示哪些子智能体处于活动状态以及它们已完成的工作很有用。 :::python
Output
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
Output
:::

LLM Token

使用 stream_mode="messages" 从主智能体和子智能体流式传输单个 Token。每个消息事件都包含标识源智能体的元数据。 :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

工具调用

当子智能体使用工具时,您可以将工具调用事件流式传输出来以显示每个子智能体正在做什么。工具调用块出现在 messages 流式传输模式中。 :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

自定义更新

:::python 在您的子智能体工具内部使用 @[get_stream_writer] 发出自定义进度事件: ::: :::js 在您的子智能体工具内部使用 config.writer 发出自定义进度事件: ::: :::python
Output
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
Output
:::

流式传输多种模式

组合多种流式传输模式以获取智能体执行的完整视图: :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

常见模式

跟踪子智能体生命周期

监控子智能体启动、运行和完成的时间: :::python
::: :::js

View example trace

为此示例打开一个公开的 LangSmith 运行。
:::

处理人机交互中断

当 interrupt_on 配置时,updates 流中可能包含 __interrupt__ 条目,用于暂停执行以供人工批准。通过检查更新块中的 __interrupt__ 键来检测它们。使用与 .invoke() 相同的扁平 {"decisions": [...]} 负载继续: :::python
::: :::js
::: 参见 人机交互:使用流式传输处理中断,了解完整的流式恢复循环模式。

流式传输块形状

使用 subgraphs=True 时,块形状取决于您是否传递了一个流式传输模式或多个: 没有 subgraphs,单一模式直接生成 data,多种模式生成 (mode, data)。
:::python LangGraph 1.1 及更高版本还支持统一的 version="v2" StreamPart 字典格式。参见 流式输出格式 (v2)。本页上的深度智能体示例使用元组格式,该格式与深度智能体当前依赖的 LangGraph 版本匹配。 :::

相关


官方原文:src/oss/deepagents/streaming.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026