Skip to main content

Channels

MushroomAgent has two related integration layers:

  • Communication transports are runtime entrypoints exposed by mushroom-agent serve: http, websocket, and func.
  • Platform channels adapt external chat or media platforms into MushroomAgent messages, then route them through the communication layer.

Use transports when your own service or script calls MushroomAgent directly. Use platform channels when MushroomAgent should live inside an existing chat or realtime platform.

Communication transports

TransportEntryGood fit
httpPOST /v1/chat, GET /i/healthBackend services, scripts, curl tests, browser UI hosting
websocket/ws/v1/chat, /ws/v1/realtimePersistent bidirectional text chat and realtime voice
funcIn-process communicationTests and Python application embedding

Start selected transports with:

mushroom-agent serve --communications http,websocket,func

For local browser testing, add --ui to mount /web:

mushroom-agent serve --ui

Platform channels

ChannelConnectionPublic IP neededFeatures
FeishuWebSocket long connectionNoEvents, text replies
DiscordWebSocket + REST APINoMessages, text replies, slash commands
OpenIMWebSocket + APIDepends on deploymentMessage gateway and API integration
MagicCampusPearl APIDepends on deploymentMulti-platform message integration
LiveKitWebRTC / LiveKit APIsDepends on deploymentRealtime media and voice sessions

Feishu

Connects to Feishu servers via WebSocket long connection. No public IP required to receive bot events and send replies.

  • Connection: WebSocket long connection
  • Public IP: not required
  • Features: event receiving, text replies

See Feishu for detailed config.

Discord

Connects to Discord Gateway via WebSocket to receive messages, and sends replies through REST API.

  • Connection: WebSocket + REST API
  • Features: message receiving, text replies, slash commands

See Discord for detailed config.

OpenIM, MagicCampus, and LiveKit

The current config template includes disabled sections for openim, magiccampus, and livekit. Enable them only when you have the corresponding platform credentials and deployment details. Dedicated setup pages are still being expanded; use the configuration reference and generated template as the source of truth.

General config

The template generated by mushroom-agent init includes this config:

channels:
feishu:
enabled: false
app_id: ""
app_secret: ""
verification_token: ""
encrypt_key: ""
discord:
enabled: false
bot_token: ""
openim:
enabled: false
magiccampus:
enabled: false
livekit:
enabled: false

Notes

  • Channels can run simultaneously; when multiple channels are configured, MushroomAgent routes by conversation
  • Group behavior varies by channel
  • Refer to each channel page for detailed configuration and environment variables