This page covers streaming concerns specific to Deep Agents—most importantly, streaming from delegated subagents viaDocumentation Index
Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
Use this file to discover all available pages before exploring further.
stream.subagents. For general agent streaming (stream.messages, stream.values, tool calls, custom updates), see LangChain Event Streaming.
Stream subagents
Deep Agents add a subagent projection on top of LangGraph streaming. Usestream.subagents when you want one stream handle per delegated task call. The projection is lightweight: it discovers subagent tasks first, and message, tool-call, and value streams are opened only when you access them on a subagent handle.
Subagent stream fields
Each subagent stream exposes the same kinds of projections as the parent run, such as messages, tool calls, nested subagents, and final output. For the general parent-run streaming model, see LangChain Event Streaming. Python uses snake_case projection names such astool_calls. Each subagent stream can expose .messages, .tool_calls, .values, .subagents, and .output.
| Field | Description |
|---|---|
name | Subagent name. |
messages | Messages emitted by the subagent. |
subagents | Nested subagent invocations. |
output | Final subagent state, or completion signal for the delegated task. |
path | Namespace path for the subagent stream. |
status | Lifecycle status such as started, completed, failed, or interrupted. |
tool_calls | Tool calls scoped to the subagent. |
Track subagent lifecycle
Usestream.subagents when you only need to show which subagents started and finished. You do not need to subscribe to message or value streams unless you access those projections on an individual subagent.
Stream messages
Deep Agents can emit messages from the coordinator agent and from delegated subagents. Usestream.messages for top-level messages and subagent.messages for each delegated subagent.
Stream tool calls
Deep Agents expose tool calls at each level of the agent tree. Use the top-levelstream.tool_calls for coordinator tools and each subagent.tool_calls for delegated work.
Stream nested work
You can recurse into a subagent stream to observe nested subagents, messages, and tool calls.Consume concurrently
Coordinator and subagent output often interleave. Consume projections concurrently when you need live UI updates. Usestream.interleave(...) when you want one sync loop over multiple projections:
namespace to identify the source:
Subagents versus subgraphs
stream.subgraphs shows graph execution structure. stream.subagents shows product-level Deep Agents task delegations. Use stream.subagents for user-facing UI because it hides internal graph nodes and exposes the subagent concept directly.
Related
- LangChain Event Streaming covers general agent message and tool-call streaming concepts.
- Subagent frontend streaming shows UI patterns that separate coordinator messages from subagent cards.
- LangGraph Event Streaming covers the underlying graph streaming model.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

