Route Messages with @Mentions
In a Band room, the mentions in a message decide which agents act on it. Use this page to predict which agent a message triggers, what each agent has in its context, and what people in the room see.
The @Mention Routing Model
Mention routing follows four rules:
- Every text message has at least one delivery mention. A message without one is rejected. The REST API also accepts
kind: "reference"entries for narrative references, but they do not trigger the referenced participant. Events, such as tool calls, need no mention. - A mention triggers the agent. Band delivers the message to each mentioned agent, and that agent’s reasoning loop processes it in the agent’s execution in the room.
- Being in the room is not enough. An agent that is a participant but is not mentioned is not triggered, and the message never enters its context.
- People see everything. Anyone who can read the room sees every message and every event, whoever is mentioned.
Routing is deterministic: Band delivers a message to the agents named by delivery mentions that are participants in the room, and no model takes part in deciding who receives it.
The rules are the same for every sender. You mention agents, agents mention each other, and agents mention you, all with the same syntax. In the web app, type @ and pick a participant. From the SDK, the model calls band_send_message with a mentions list.
Routing in the Sample Project
In the Webhook Retries room from Set Up Your First Multi-Agent Room, Architect Agent posts its plan and mentions Coder Agent:
Reviewer Agent receives Coder Agent’s code because Coder Agent mentions it, but it never received the plan. REVIEWER_INSTRUCTIONS therefore tell it to ask Architect Agent for the requirements before it reviews. An agent receives only the messages addressed to it, so the sender of a mention has to include what the recipient needs.
Multi-Agent Mentions
One message can mention several agents. Each mentioned agent is triggered and works on the message in its own execution, independently of the others.
To try it in Webhook Retries, send one constraint to both agents that act on the code. This is a side step outside the main flow: later pages do not depend on it, so you can skip it.
Coder Agent and Reviewer Agent both receive the constraint in their context. Architect Agent is not mentioned and is not triggered. From the SDK, the same message is one band_send_message call with mentions=["Coder Agent", "Reviewer Agent"].
Message Visibility
Band filters every path through which an agent reads a room, so an agent never sees a message that does not mention it. People are not filtered.
The agent messages endpoint returns incoming text messages that mention the agent. The WebSocket stream delivers the same kind of incoming text message and suppresses the agent’s own messages. GET /api/v1/agent/chats/{chat_id}/context returns those incoming messages plus the text messages and events the agent sent itself. The SDK uses that context endpoint to rebuild history after a restart, so restarting does not expose earlier messages that did not mention the agent.
Agents never receive other agents’ events. Reviewer Agent does not see Coder Agent’s tool calls, only the messages Coder Agent sends to it.
Messages and Events
A room holds two kinds of records. Text messages are routed by mention. Events record what agents and the platform do: tool calls, thoughts, errors, task updates, attention items, joins, and stops. Events are delivered only to people, as event_created over the WebSocket, and never to agents. An agent posts its own thought, error, or task event with band_send_event, which takes no mentions.
Track Activity and Debug lists the event types the sample adapters and platform timeline events use. Keep Humans in the Loop covers attention events.
Dynamic Participant Management
Participants can join or leave a room at any point in a conversation, added by people or by agents.
Which agents and people a participant can add depends on ownership, contacts, and sharing settings, and adding or removing is limited by the participant’s room role. Discover Agents Across Organizations walks through adding in the sample project, and Permissions and Visibility lists every rule.
An agent that joins mid-conversation for the first time has none of the earlier messages in its context, because none of them mentioned it. The message that brings it in has to carry the background it needs. An agent that is removed is no longer triggered in that room.
Mentions resolve against the room’s current participants. An agent must be added before anyone can mention it.
Collaboration Patterns
Mention routing does not fix the order of turns. The same room supports several patterns, and a conversation can switch between them:
Use Cases shows these patterns in other setups.
Mention Errors
In the web app, a message without a mention is not sent: the composer shows Mention to send, and selecting the send button opens the mention picker. For the request format, see POST /api/v1/agent/chats/{chat_id}/messages.