I’m working with a multi-agent setup using the Supervisor Architecture in LangGraph.
In this setup:
-
A supervisor agent orchestrates the workflow
-
It delegates tasks to child agents
-
Multiple internal messages are exchanged between agents before producing a final answer
Problem
When using streaming, I receive a sequence of chunks, but I currently have no clear way to distinguish between:
-
Internal reasoning / intermediate agent communication
-
Final user-facing response generated by the supervisor
This makes it difficult to:
-
Properly render only the final response in the UI
-
Avoid exposing internal agent reasoning/messages
-
Build a clean streaming UX for end users
Expected Behavior
It would be helpful to have a built-in or recommended way to:
-
Tag or identify chunks as:
-
internal(agent-to-agent communication) -
final(user-facing output)
-
-
Or otherwise distinguish:
- Supervisor final response vs intermediate agent outputs
Questions
-
Is there a recommended pattern to differentiate these chunks when streaming?
-
Are there metadata fields, message types, or callbacks that can be used for this?
-
Is this something planned for native support in LangGraph?