| name | multi-channel |
| description | Setting up multiple platforms (Telegram + Discord) with proper general routing |
| roles | ["general"] |
Multi-Channel Setup
When using multiple platforms (e.g. Telegram + Discord), use channels: array instead of single channel::
channels:
- id: discord
type: discord
mode: topic
bot_token_env: AGEND_DISCORD_TOKEN
group_id: "123456789"
options:
general_channel_id: "987654321"
- id: telegram
type: telegram
mode: topic
bot_token_env: AGEND_BOT_TOKEN
group_id: "-1001234567890"
Critical: each adapter needs its own general instance.
instances:
general:
working_directory: ~/.agend/general
topic_id: "987654321"
general_topic: true
channel_id: discord
general-telegram:
working_directory: ~/.agend/general-telegram
topic_id: 1
general_topic: true
channel_id: telegram
Auto-Detection
On startup, AgEnD checks each adapter has a bound general. If missing, it auto-creates one with a warning log:
WARN: No general instance for adapter — auto-creating
The channel_id field explicitly binds a general to an adapter. Without it, matching falls back to instance name containing the adapter id (e.g. general-telegram matches telegram).
Common Mistakes
| Mistake | Symptom | Fix |
|---|
| One general for two platforms | TG messages reply in DC | Add a second general with channel_id |
channels: without unique id per entry | Adapter collision | Set id: discord / id: telegram |
Using channel: (singular) for multi-platform | Second platform ignored | Switch to channels: array |
Single → Multi Migration
- Change
channel: to channels: array, add id to existing entry
- Add new platform entry with its own
id
- Add a general instance for the new platform with
channel_id: <new-adapter-id>
- Restart fleet:
agend fleet restart