Skip to main content
routes: is the preferred field name for gateway routing configuration — gateway runtime accepts both routing: and routes: interchangeably in YAML. Message routing lets you send different types of messages to different AI agents. For example, direct messages go to your personal assistant, while group messages go to a support agent.

How Routing Works

1

Message Arrives

A user sends a message on Telegram, Discord, or Slack.
2

Context Detection

The gateway detects where the message came from — a DM, group, or channel.
3

Route Lookup

The gateway checks the routes table in gateway.yaml for that context.
4

Agent Handles Message

The matched agent receives the message and responds.

Route Contexts

ContextDescriptionExample
dmDirect / private messageUser sends a DM to your bot
groupGroup chat messageMessage in a Telegram group or Discord server
channelChannel messageMessage in a Slack channel
defaultFallback for any unmatched contextAny message that doesn’t match above
Always define a default route. It acts as a safety net — if a message comes from an unexpected context, the default agent handles it.

Configuration

Define routes in the channels section of gateway.yaml:
channels:
  telegram:
    token: ${TELEGRAM_BOT_TOKEN}
    routes:
      dm: personal        # DMs → personal agent
      group: support      # Groups → support agent
      default: personal   # Everything else → personal agent

  discord:
    token: ${DISCORD_BOT_TOKEN}
    routes:
      dm: personal
      group: support
      default: personal

  slack:
    token: ${SLACK_BOT_TOKEN}
    app_token: ${SLACK_APP_TOKEN}
    routes:
      dm: support
      channel: support
      default: support

  whatsapp:
    mode: web             # or: token: ${WHATSAPP_ACCESS_TOKEN}
    routes:
      dm: personal
      group: support
      default: personal

Routing Examples

Route DMs to a personal assistant and group messages to support:
agents:
  personal:
    instructions: "You are a helpful personal assistant"
    model: gpt-4o-mini
  support:
    instructions: "You are a customer support agent"
    model: gpt-4o

channels:
  telegram:
    token: ${TELEGRAM_BOT_TOKEN}
    routes:
      dm: personal
      group: support
      default: personal

Routing Flow Diagram

Routing is configured per channel. Each platform can have completely different routing rules — Telegram DMs can go to one agent while Discord DMs go to another.