Overview
Bus messages are the communication primitives for the multi-agent framework. They are organized into two priority levels:- Data messages (
BusDataMessage): Normal-priority messages for routine communication. - System messages (
BusSystemMessage): High-priority messages that preempt normal messages in subscriber queues (e.g. cancel, errors).
BusLocalMessage, meaning they stay on the local bus and are never forwarded to remote buses.
Base Types
| Type | Parent | Description |
|---|---|---|
BusMessage | - | Mixin carrying source and target metadata |
BusLocalMessage | - | Mixin: message stays on the local bus only |
BusDataMessage | BusMessage, DataFrame | Normal-priority bus message |
BusSystemMessage | BusMessage, SystemFrame | High-priority bus message |
Common Fields
All messages inherit these fields fromBusDataMessage or BusSystemMessage:
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Name of the agent or component that sent this message | |
target | Optional[str] | None | Name of the intended recipient, or None for broadcast |
Frame Transport
| Type | Priority | Description |
|---|---|---|
BusFrameMessage | Data | Wraps a Pipecat Frame for transport over the bus |
BusFrameMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Sending agent name | |
target | Optional[str] | None | Recipient agent name |
frame | Frame | The Pipecat frame to transport | |
direction | FrameDirection | Direction the frame should travel in the recipient’s pipeline | |
bridge | Optional[str] | None | Bridge name for routing in multi-bridge setups |
Agent Lifecycle
| Type | Priority | Local | Description |
|---|---|---|---|
BusActivateAgentMessage | Data | No | Tells a targeted agent to become active |
BusDeactivateAgentMessage | Data | No | Tells a targeted agent to become inactive |
BusEndMessage | Data | No | Request a graceful end of the session |
BusEndAgentMessage | Data | No | Tells a targeted agent to end its pipeline |
BusCancelMessage | System | No | Request a hard cancel of the session |
BusCancelAgentMessage | System | No | Tells a targeted agent to cancel its pipeline |
BusActivateAgentMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Sending agent name | |
target | Optional[str] | None | Agent to activate |
args | Optional[dict] | None | Activation arguments forwarded to on_activated |
BusEndMessage / BusEndAgentMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Sending agent name | |
target | Optional[str] | None | Recipient agent name |
reason | Optional[str] | None | Human-readable reason for ending |
BusCancelMessage / BusCancelAgentMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Sending agent name | |
target | Optional[str] | None | Recipient agent name |
reason | Optional[str] | None | Human-readable reason for cancellation |
Registry & Errors
| Type | Priority | Local | Description |
|---|---|---|---|
BusAddAgentMessage | System | Yes | Request to add an agent to the local runner |
BusAgentRegistryMessage | System | No | Snapshot of agents managed by a runner |
BusAgentReadyMessage | Data | No | Announces that an agent is ready |
BusAgentErrorMessage | System | No | Reports an error from a root agent |
BusAgentLocalErrorMessage | System | Yes | Reports an error from a child agent to its parent |
BusAgentRegistryMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Sending runner name | |
runner | str | Name of the runner that owns these agents | |
agents | list[AgentRegistryEntry] | List of agent entries with their state |
BusAgentReadyMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Agent name | |
runner | str | Name of the runner managing this agent | |
parent | Optional[str] | None | Name of the parent agent, or None for root agents |
active | bool | False | Whether the agent started active |
bridged | bool | False | Whether the agent is bridged |
started_at | Optional[float] | None | Unix timestamp when the agent became ready |
BusAgentErrorMessage / BusAgentLocalErrorMessage
| Field | Type | Description |
|---|---|---|
source | str | Agent name |
error | str | Description of the error |
Task Messages
| Type | Priority | Description |
|---|---|---|
BusTaskRequestMessage | Data | Requests a task agent to start work |
BusTaskResponseMessage | Data | Response from a task agent |
BusTaskResponseUrgentMessage | System | High-priority response from a task agent |
BusTaskUpdateMessage | Data | Progress update from a task agent |
BusTaskUpdateUrgentMessage | System | High-priority progress update |
BusTaskUpdateRequestMessage | Data | Request a progress update from a task agent |
BusTaskCancelMessage | System | Cancel a running task |
BusTaskRequestMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Requester agent name | |
target | Optional[str] | None | Worker agent name |
task_id | str | Unique task identifier | |
task_name | Optional[str] | None | Task name for routing to named handlers |
payload | Optional[dict] | None | Structured data describing the work |
BusTaskResponseMessage / BusTaskResponseUrgentMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Worker agent name | |
target | Optional[str] | None | Requester agent name |
task_id | str | The task identifier | |
status | TaskStatus | Completion status | |
response | Optional[dict] | None | Result data |
BusTaskUpdateMessage / BusTaskUpdateUrgentMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Worker agent name | |
target | Optional[str] | None | Requester agent name |
task_id | str | The task identifier | |
update | Optional[dict] | None | Progress data |
BusTaskCancelMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Requester agent name | |
target | Optional[str] | None | Worker agent name |
task_id | str | The task identifier | |
reason | Optional[str] | None | Human-readable reason for cancellation |
Task Streaming
| Type | Priority | Description |
|---|---|---|
BusTaskStreamStartMessage | Data | Signals the start of a streaming task response |
BusTaskStreamDataMessage | Data | A chunk of streaming task data |
BusTaskStreamEndMessage | Data | Signals the end of a streaming task response |
BusTaskStreamStartMessage / BusTaskStreamDataMessage / BusTaskStreamEndMessage
| Field | Type | Default | Description |
|---|---|---|---|
source | str | Worker agent name | |
target | Optional[str] | None | Requester agent name |
task_id | str | The task identifier | |
data | Optional[dict] | None | Stream metadata (start), chunk payload (data), or final metadata (end) |