Перейти к основному содержимому

Обзор мультиплатформенных Channel

Система Channel превращает Elftia в кроссплатформенного AI-бота. Вы можете одновременно подключить Agent к Discord, Telegram, Slack и другим платформам — получать сообщения, вызывать инструменты и генерировать ответы откуда угодно.

Когда использовать

  • Вы хотите развернуть бота AI-ассистента на сервере Discord
  • Вам нужны приватные разговоры с Agent через Telegram
  • Вы хотите интегрировать AI-сотрудника в рабочее пространство Slack
  • Вы хотите, чтобы один и тот же Agent одновременно обслуживал пользователей на нескольких платформах

Поддерживаемые платформы

ПлатформаType IDСпособ подключенияМаксимальная длина сообщенияКатегория
DiscorddiscordBot Token2 000 символовCore
TelegramtelegramBot Token4 096 символовCore
SlackslackBot Token + App Token4 000 символовCore
QQ BotqqbotBot Token1 500 символовChina
LINElineChannel Access Token + Secret5 000 символовCore
EmailemailУчетные данные SMTP + IMAP100 000 символовCore
WhatsAppwhatsappНомер телефона65 000 символовCore
WeChatwechatWechaty Token2 000 символовChina
MatrixmatrixAccess Token65 536 символовExtended
Microsoft TeamsmsteamsApp ID + Password28 000 символовExtended
MattermostmattermostBot Token16 383 символаExtended
WeCom (Enterprise WeChat)wecomWebhook Key4 000 символовChina
WeCom (App)wecom-appCorp ID + Secret4 000 символовChina

:::tip Платформы — это плагины Все платформы реализованы через плагины Channel. Встроенные плагины поставляются вместе с приложением; дополнительные плагины можно скачать и установить через Marketplace. :::

Ключевые понятия

Экземпляр Channel

Каждый экземпляр Channel представляет подключение к внешней платформе. Вы можете создать несколько экземпляров для одной и той же платформы (например, подключить двух разных Discord-ботов). Каждый экземпляр независимо управляет собственными:

  • Учетными данными: token/key, необходимые для подключения
  • Правилами срабатывания: определяют, когда Agent должен отвечать (см. Правила срабатывания и безопасность)
  • Состоянием подключения: disconnected / connecting / connected / error

Правила срабатывания

Правила срабатывания определяют, на какие сообщения отвечает Agent:

РежимОписаниеЛучше всего подходит для
allОтвечать на все сообщенияЛичные боты, тестовые окружения
mentionОтвечать только при @упоминанииМногопользовательские группы, общие серверы
keywordОтвечать при совпадении с заданным ключевым словомТематические триггеры
dm_onlyОтвечать только на direct messagesПубличные группы, где принимается только приватный чат

Конвейер безопасности

Каждое сообщение проходит несколько проверок безопасности, прежде чем попасть к Agent:

  1. InputSanitizer — удаляет невидимые управляющие символы
  2. RateLimiter — ограничение скорости (предотвращает спам-флуд)
  3. PromptGuardian — обнаружение prompt injection на основе AI
  4. UserPermissionService — управление доступом на основе ролей
  5. 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, объявляющий тип плагина, входной файл, необходимые учетные данные и другую информацию.

Быстрый старт

  1. Откройте Settings → Channel
  2. Нажмите Add Channel и выберите платформу (например, Discord)
  3. Если плагин не установлен, система автоматически скачает его из Marketplace
  4. Введите учетные данные платформы (например, Discord Bot Token)
  5. Настройте правила срабатывания (рекомендуется начать с режима mention для тестирования)
  6. Нажмите Connect, чтобы запустить экземпляр
  7. Отправьте сообщение боту на соответствующей платформе, чтобы проверить подключение

Следующие шаги