Skip to main content
LangChain agents are built on LangGraph, so they support the same Event Streaming model with agent-focused projections for messages, tool calls, state, and custom updates. For most application and frontend use cases, use Event Streaming through stream_events(..., version="v3"). Event Streaming returns a run object with typed projections, so you can choose the view you need instead of parsing stream-mode tuples.
Check out the streaming cookbook for runnable examples and links to detailed reference documentation.
Interested in streaming Pregel modes such as updates, messages, or custom directly? See the Streaming page.

What you can stream

run.messages yields ChatModelStream objects. Each message stream exposes .text, .reasoning, .tool_calls, and .output. Sync projections are iterable for live deltas and drainable for final values.

Stream agent messages

Use run.messages when you want model output from each LLM call.

Stream tool calls

There are two useful tool-call projections:
  • message.tool_calls streams tool-call argument chunks while the model is producing the tool call.
  • run.tool_calls streams the lifecycle of tool execution after the tool call starts.

Stream state and final output

Use run.values for state snapshots and run.output for the final agent state.