对于新应用,我们推荐使用事件流—这是 Deep Agents v0.6 中引入的类型化投影 API。事件流为每个投影(子代理、消息、工具调用、值)提供独立的迭代器,因此您可以独立消费它们,而不是基于 stream_mode 块进行分支处理。
Deep Agents 建立在 LangGraph 的流式基础设施之上,并对子代理流提供一流的支持。当深度代理将工作委派给子代理时,您可以独立地从每个子代理流式获取更新—实时跟踪进度、LLM 令牌和工具调用。 深度代理流式传输可以实现:

启用子图流式传输

Deep Agents 使用 LangGraph 的子图流式传输来呈现子代理执行过程中的事件。要接收子代理事件,请在流式传输时启用 stream_subgraphs。

命名空间

当启用 subgraphs 时,每个流式事件都包含一个命名空间,用于标识产生它的代理。命名空间是节点名称和任务 ID 的路径,代表了代理的层级结构。 使用命名空间将事件路由到正确的 UI 组件:

子代理进度

使用 stream_mode="updates" 在每一步完成时跟踪子代理进度。这对于显示哪些子代理处于活动状态以及它们已完成的工作非常有用。
Output

LLM 令牌

使用 stream_mode="messages" 流式传输来自主代理和各个子代理的单独令牌。每个消息事件都包含标识源代理的元数据。

工具调用

当子代理使用工具时,您可以流式传输工具调用事件以显示每个子代理正在执行的操作。工具调用块会出现在 messages 流模式中。

自定义更新

在子代理工具内部使用 config.writer 来发出自定义进度事件:
Output

流式传输多种模式

组合多种流模式以获得代理执行的完整视图:

常见模式

跟踪子代理生命周期

监控子代理何时启动、运行和完成:

相关内容