umbot — это TypeScript-фреймворк для разработки голосовых навыков и чат-ботов. Он даёт единую бизнес-логику для всех
платформ — но одинаково эффективен, даже если вы работаете только с одной.
Поддерживаются: Яндекс.Алиса, Маруся, Сбер Салют, а также Telegram, VK, MAX и Viber из коробки.
В отличие от большинства решений, требующих отдельной реализации под каждую платформу, umbot абстрагирует различия в
форматах запросов и ответов, предоставляя разработчику единый, предсказуемый интерфейс. Это позволяет писать логику один
раз — и запускать её везде.
Фреймворк следует SemVer. Breaking changes возможны только в MAJOR-версиях.
umbot?Больше не нужно писать несколько версий одного приложения.
Больше не нужно разбираться в JSON-форматах Алисы, Сбера, Маруси, Telegram, Max и тд.
Бизнес-логика — одна. Платформа — любая.
Ключевые преимущества:
umbot предусмотрел это, и
рекомендует использовать предзагрузку необходимых ресурсов за счет использования класса Preload.umbot — пишешь один раз, запускаешь везде.
umbot предоставляет унифицированный интерфейс для работы с ответами, но при этом учитывает специфику каждой платформы:
Этот подход гарантирует, что ваш навык/бот будет вести себя предсказуемо и не потребует специальных обходных путей при переходе между платформами.
umbot отличается от других решений?Большинство фреймворков (например, telegraf, alice-sdk и тд) ориентированы только на одну платформу. Чтобы
запустить приложение и в Алисе, и в Telegram, приходится:
umbot решает эту проблему:
одна бизнес-логика для всех платформ,
единый API для кнопок, карточек, голоса и текста,
автоматическая адаптация под формат каждой платформы "под капотом".
Это особенно ценно, если вы уже поддерживаете навык на Алисе и хотите быстро выйти в Марусю, Max или VK — без переписывания или существенных доработок кода.
Даже если вы пока разрабатываете только под одну платформу, umbot избавляет от boilerplate, даёт единый API для работы
с состоянием, кнопками и медиа, а главное — не мешает, когда придёт время добавлять новые каналы.
umbot?umbot — это не просто обёртка под несколько платформ. Это архитектурное решение для проектов, где диалог инициирует
пользователь. Оно одинаково ценно как для одной платформы, так и для десятка.
Вы будете использовать umbot, если:
umbot делает расширение предсказуемым.umbot позволяет писать ядро один раз и забыть о boilerplate.Ключевая мысль:
umbot— это не «надстройка для мультиплатформенности», а базовый слой, который делает разработку под любую платформу (даже одну) быстрее, чище и готовой к масштабированию.
| Платформа | Идентификатор | Статус |
|---|---|---|
| Яндекс.Алиса | alisa |
✅ Полная поддержка |
| Маруся | marusia |
✅ Полная поддержка |
| Сбер Салют (SmartApp) | smart_app |
✅ Полная поддержка |
| Telegram | telegram |
✅ Полная поддержка |
| VK | vk |
✅ Полная поддержка |
| Max | max_app |
✅ Полная поддержка |
| Viber | viber |
✅ Полная поддержка |
| Ваша платформа | ... |
✅ За счет адаптеров |
💡 Нужна своя платформа?
Просто создайте свой адаптер согласно документации для нужной платформы и подключите его к приложению.
Это позволяет интегрироватьumbotв любую внутреннюю систему, корпоративный мессенджер или поддержать любую другую платформу, например
Установите фреймворк:
npm install umbot
Создайте и запустите проект за четыре команды:
npx umbot create echo
cd echo
npm i
npm run start
Поправьте файлы нужным вам образом. Например:
// index.ts
import { Bot } from 'umbot';
import { EchoController } from './EchoController';
const bot = new Bot()
.setAppConfig({ json: './data', isLocalStorage: true })
.initBotController(EchoController)
.start('localhost', 3000);
// EchoController.ts
import { BotController, WELCOME_INTENT_NAME } from 'umbot';
export class EchoController extends BotController {
public action(intentName: string): void {
if (intentName === WELCOME_INTENT_NAME) {
this.text = 'Привет! Я повторяю за вами.';
} else {
this.text = `Вы сказали: ${this.userCommand}`;
}
}
}
Протестируйте приложение, и в случае необходимости опубликуйте его.
👉 Подробное руководство по запуску
В стресс-тестах на стандартном оборудовании (AMD Ryzen 5 5600G, Windows 10) фреймворк при 1003 командах показывает:
Важно:
Длительное тестирование (48 часов) не выявило утечек памяти или снижения производительности: средняя пропускная способность в последовательном сценарии осталась на уровне 66 000 RPS, а потребление памяти стабильно.
Подробная документация доступна в следующих разделах:
MIT License. См. LICENSE для деталей.
Если у вас есть вопросы или предложения: