Skip to content

Channels let an agent receive and send messages outside the web UI. Connect Telegram, SMS, or other supported providers, and the agent can reply to incoming messages just like it does in chat, with tools, memory, delegation, and signals all working the same way.

Spaces and agents

Each channel belongs to a space and is bound to a single agent. Conversations on the channel live inside that space, so the agent has access to the same memory and context it would have in the web UI for that space.

You can connect multiple channels to the same agent (for example, your personal assistant on both Telegram and SMS). You can also split channels by space: a finance space with its own SMS channel for bank alerts, a personal space with Telegram for everyday chat.

Dispatch modes

A channel can run in one of two modes:

ModeWhat it doesWhen to use
Message (default)Inbound messages run full inference. The agent reads, replies, and uses tools.Normal conversation channels.
SignalInbound messages do tag-only inference and feed the signal matcher. The agent doesn't reply.Channels for ingesting alerts, 2FA codes, or events that other agents are waiting on.

A channel can be flipped from one mode to the other in its settings. The two-tier authorization (see below) lets you mix the behaviors per sender.

Pairing and self-source

Some channels (notably SMS) require pairing before they accept inbound messages. The flow is:

  1. After connecting, the channel goes to Pairing state and shows a one-time code.
  2. You text the code from the address you want to use to the channel's number (or send the code from the linked account, depending on the provider).
  3. The platform records that address as a paired address on the channel.
  4. From then on, messages from any paired address are treated as you (self-source) and pass the default receive_message policy.

Messages from non-paired addresses are dropped by default. If you want the agent to talk to other people on the channel, you add a policy that allows specific contacts or addresses.

Authorization

Two policy actions gate every inbound:

ActionEffect
receive_messageAllows the agent to read and reply to the message
receive_signalAllows the message to be evaluated against active signal watches

The dispatcher evaluates both:

  • Both allowed → full inference. The agent replies and may use tools.
  • receive_signal allowed but receive_message denied → tag-only inference. The agent annotates the message for signal matching but cannot reply or use general tools.
  • Both denied → the message is discarded. No DB record, no broadcast.

This is how you get behaviors like "the finance agent never sees SMS at all" or "this channel is for ingesting bank 2FA codes only".

See Policies for the full action reference.

Available adapters

ChannelInboundOutboundBest for
TelegramWebhook from TelegramBot messagesPersonal assistants, group bots
SMSTwilio webhookTwilio messageMobile assistants, 2FA capture, notifications

More adapters are on the way.

Channel statuses

StatusMeaning
SetupThe channel is created but missing required configuration
PairingWaiting for the user to complete address pairing (e.g., text the pairing code to the bot)
ConnectingThe adapter is starting and registering with the provider
ConnectedThe channel is live and receiving messages
DisconnectedThe channel is stopped (you turned it off)
FailedThe adapter could not start. See the error message on the channel page.

Tips

  • Start in Message mode. Switch to Signal mode only when you specifically want passive watching, not conversation.
  • Pair from the address you'll use. The pairing code locks the channel to that wire address. If you want to add another, repeat pairing.
  • Use a separate agent per channel if the channels have different audiences. The agent's specialty is what people on the other end interact with.
  • Use spaces to scope memory. A channel for work and a channel for personal life should live in different spaces so memory doesn't leak between them.
  • Watch the status. A channel stuck in Failed won't receive anything. Check the error message before debugging at the provider.

Next steps

  • Telegram. Connect a bot.
  • SMS. Send and receive SMS via Twilio.
  • Signals. What channels in Signal mode feed.
  • Policies. Allowlists, blocks, quiet mode.