

Wake, Notify, and Steer Long-Running Agents with Signals
Calling agent.stream() gets you a single response. But real agent applications need more — follow-up messages mid-run, background notifications from GitHub or CI, state updates from a browser or editor, and a way to wake an idle agent when something changes. That's what signals solve.
Signals are Mastra's primitive for interacting with agents through threads. Instead of starting a new stream() call every time, you subscribe to a thread and send messages, state updates, or notification signals into it. Mastra handles the hard part: delivering input to an active run, queuing it for the next turn, or waking an idle agent — depending on what's happening when the signal arrives.
The system goes deep. sendMessage() and queueMessage() handle user input. sendSignal() delivers system-level context like policy reminders or processor-generated instructions. sendStateSignal() manages durable, thread-scoped context lanes for things like browser or editor state. And sendNotificationSignal() creates inbox records from external events — with priority-aware delivery, deduplication, and summary rollups built in. Signal providers take it further: they monitor external sources like GitHub, Slack, or CI pipelines and push notification signals into subscribed threads automatically, via polling or webhooks.
You'll learn how to:
Subscribe to a thread and send messages into active or idle agent runs
Use
sendSignal()for system-level context andsendStateSignal()for durable state lanesSend notification signals with priority, deduplication, and inbox storage
Build a signal provider that monitors an external source and notifies agent threads
Use the built-in
WebhookSignalProviderfor generic webhook sourcesUnderstand how signals, signal providers, and notification delivery policies fit together
Q&A throughout and at the end.
Hosted by
Alex Booker, Developer Experience, Mastra
Tyler Barnes, Mastra
Recording and code examples will be available to everyone who registers.