umbot — это TypeScript-фреймворк для разработки голосовых навыков и чат-ботов. Он даёт единую бизнес-логику для всех
платформ — но одинаково эффективен, даже если вы работаете только с одной.
Поддерживаются: Яндекс.Алиса, Маруся, Сбер SmartApp, а также 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в любую внутреннюю систему, корпоративный мессенджер или поддержать любую другую платформу, например WhatsApp.
Установите фреймворк:
npm install umbot
Создайте и запустите проект за пять команд:
npx umbot create echo
cd echo
npm i
npm run build
npm start
Поправьте файлы нужным вам образом. Например:
// index.ts
import { Bot } from 'umbot';
import { fullPlatforms } from 'umbot/plugins';
import { EchoController } from './controller/EchoController';
const bot = new Bot()
.use(fullPlatforms)
.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 | null): void {
if (intentName === WELCOME_INTENT_NAME) {
this.text = 'Привет! Я повторяю за вами.';
} else {
this.text = `Вы сказали: ${this.userCommand}`;
}
}
}
Протестируйте приложение, и в случае необходимости опубликуйте его.
👉 Подробное руководство по запуску
В стресс-тестах на стандартном оборудовании (AMD Ryzen 5 5600G, Windows 10) фреймворк при 1003 командах показывает:
Важно:
Длительное тестирование (48 часов) не выявило утечек памяти или снижения производительности: средняя пропускная способность в последовательном сценарии осталась на уровне ~67 000 RPS, а потребление памяти стабильно.
Подробная документация доступна в следующих разделах:
Umbot Flow Editor — визуальный редактор для создания ботов на фреймворке umbot. Собирайте логику на холсте, экспортируйте JSON-конфигурацию и генерируйте TypeScript-проект через CLI.
Цепочка:
Визуальный редактор → JSON-конфигурация → npx umbot create from-flow → TypeScript-проект → Ваш сервер
Быстрый старт с редактором:
flow.jsonnpx umbot create from-flow flow.json --output ./my-bot
my-botОписание JSON-формата — полная спецификация всех типов узлов, связей и правил генерации кода.
MIT License. См. LICENSE для деталей.
Если у вас есть вопросы или предложения: