Streaming Responses
Streaming enables real-time token-by-token responses from agents, providing immediate feedback to users and better UX for long-running operations.Why Stream?
Benefits of streaming:- Immediate feedback - Users see responses as they’re generated
- Better UX - Perceived performance improvement
- Progress visibility - See tool calls and reasoning in real-time
- Cancellation - Abort long-running operations
- Lower latency - First token arrives faster
Basic Streaming
From:packages/core/src/agent/agent.test.ts
Text Streaming
Stream plain text responses:Full Stream Events
Access all stream events including tool calls:Stream Options
Basic Options
Callbacks
React to stream events:Streaming with Tools
From:examples/agent/src/mastra/agents/model-v2-agent.ts
Stream Abort
Cancel streaming operations:Streaming with Memory
Advanced Patterns
Progress Tracking
From:examples/agent/src/mastra/agents/model-v2-agent.ts
Tool Approval
Require approval for sensitive tools:Multi-Step Operations
Server-Sent Events (SSE)
Stream responses to web clients:WebSocket Streaming
React Integration
Best Practices
Handle errors gracefully
Handle errors gracefully
Always wrap streaming in try-catch:
Use abort signals for cancellation
Use abort signals for cancellation
Allow users to cancel long operations:
Buffer partial tokens for better UX
Buffer partial tokens for better UX
Accumulate tokens before displaying:
Provide visual feedback
Provide visual feedback
Show streaming indicators:
Next Steps
Structured Output
Get typed, validated responses from agents
Memory
Add conversation persistence
Network
Orchestrate multi-agent workflows
Stream API Reference
Complete streaming API documentation