Обзор мультиплатформенных Channel
Система Channel превращает Elftia в кроссплатформенного AI-бота. Вы можете одновременно подключить Agent к Discord, Telegram, Slack и другим платформам — получать сообщения, вызывать инструменты и генерировать ответы откуда угодно.
Когда использовать
- Вы хотите развернуть бота AI-ассистента на сервере Discord
- Вам нужны приватные разговоры с Agent через Telegram
- Вы хотите интегрировать AI-сотрудника в рабочее пространство Slack
- Вы хотите, чтобы один и тот же Agent одновременно обслуживал пользователей на нескольких платформах
Поддерживаемые платформы
| Платформа | Type ID | Способ подключения | Максимальная длина сообщения | Категория |
|---|---|---|---|---|
| Discord | discord | Bot Token | 2 000 символов | Core |
| Telegram | telegram | Bot Token | 4 096 символов | Core |
| Slack | slack | Bot Token + App Token | 4 000 символов | Core |
| QQ Bot | qqbot | Bot Token | 1 500 символов | China |
| LINE | line | Channel Access Token + Secret | 5 000 символов | Core |
email | Учетные данные SMTP + IMAP | 100 000 символов | Core | |
whatsapp | Номер телефона | 65 000 символов | Core | |
wechat | Wechaty Token | 2 000 символов | China | |
| Matrix | matrix | Access Token | 65 536 символов | Extended |
| Microsoft Teams | msteams | App ID + Password | 28 000 символов | Extended |
| Mattermost | mattermost | Bot Token | 16 383 символа | Extended |
| WeCom (Enterprise WeChat) | wecom | Webhook Key | 4 000 символов | China |
| WeCom (App) | wecom-app | Corp ID + Secret | 4 000 символов | China |
:::tip Платформы — это плагины Все платформы реализованы через плагины Channel. Встроенные плагины поставляются вместе с приложением; дополнительные плагины можно скачать и установить через Marketplace. :::
Ключевые понятия
Экземпляр Channel
Каждый экземпляр Channel представляет подключение к внешней платформе. Вы можете создать несколько экземпляров для одной и той же платформы (например, подключить двух разных Discord-ботов). Каждый экземпляр независимо управляет собственными:
- Учетными данными: token/key, необходимые для подключения
- Правилами срабатывания: определяют, когда Agent должен отвечать (см. Правила срабатывания и безопасность)
- Состоянием подключения: disconnected / connecting / connected / error
Правила срабатывания
Правила срабатывания определяют, на какие сообщения отвечает Agent:
| Режим | Описание | Лучше всего подходит для |
|---|---|---|
all | Отвечать на все сообщения | Личные боты, тестовые окружения |
mention | Отвечать только при @упоминании | Многопользовательские группы, общие серверы |
keyword | Отвечать при совпадении с заданным ключевым словом | Тематические триггеры |
dm_only | Отвечать только на direct messages | Публичные группы, где принимается только приватный чат |
Конвейер безопасности
Каждое сообщение проходит несколько проверок безопасности, прежде чем попасть к Agent:
- InputSanitizer — удаляет невидимые управляющие символы
- RateLimiter — ограничение скорости (предотвращает спам-флуд)
- PromptGuardian — обнаружение prompt injection на основе AI
- UserPermissionService — управление доступом на основе ролей
- ChannelPermissionGate — механизм подтверждения чувствительных операций
Рабочий процесс
External platform message (Discord/Telegram/...)
│
▼
Channel Plugin ─── receive and parse message
│
▼
ChannelPluginRegistry ─── convert to unified ChannelMessage format
│
▼
ChannelMessageRouter ─── security pipeline checks + trigger rule matching
│
▼
ChannelMagiBridge ─── convert to MagiIncomingMessage
│
▼
MagiService (Agent) ─── process and generate reply
│
▼
ChannelMessageRouter ─── format + message splitting
│
▼
Channel Plugin ─── send reply back to the original platform
Архитектура плагинов
Система Channel использует архитектуру на основе плагинов и поддерживает два источника плагинов:
| Источник | Каталог | Описание | Приоритет |
|---|---|---|---|
| Встроенный (Bundled) | resources/bundled-channel-plugins/ | Поставляется с установщиком приложения; только чтение | Ниже |
| Пользовательский (Marketplace) | {userData}/channel-plugins/ | Скачан из Marketplace или установлен вручную; чтение/запись | Выше |
Когда один и тот же тип плагина существует в обоих каталогах, приоритет имеет версия из пользовательского каталога (потенциально более новая версия из Marketplace).
Каждый плагин должен включать файл манифеста elftia-channel.json, объявляющий тип плагина, входной файл, необходимые учетные данные и другую информацию.
Быстрый старт
- Откройте Settings → Channel
- Нажмите Add Channel и выберите платформу (например, Discord)
- Если плагин не установлен, система автоматически скачает его из Marketplace
- Введите учетные данные платформы (например, Discord Bot Token)
- Настройте правила срабатывания (рекомендуется начать с режима
mentionдля тестирования) - Нажмите Connect, чтобы запустить экземпляр
- Отправьте сообщение боту на соответствующей платформе, чтобы проверить подключение
Следующие шаги
- Руководство по настройке Discord — подробные шаги по настройке Discord-бота
- Правила срабатывания и безопасность — настройка режима срабатывания и подробности конвейера безопасности