botruntime

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

Создайте TypeScript-бота, проверьте его в dev и задеплойте в production.

В этом руководстве вы создадите минимального бота и запустите его через отдельный dev target. Production изменится только после явного deploy.

Что понадобится

  • Bun 1.3.14 или новее;
  • аккаунт и воркспейс botruntime;
  • токен Telegram-бота для проверки канала.

Для dev и production используйте разные Telegram Bot API tokens. Один токен может иметь только один активный webhook.

1. Установите CLI

bun add -g @holocronlab/brt
brt --help

Пакет публикуется в npm. Доступ к GitHub Packages не требуется.

2. Войдите в платформу

brt login
brt profiles active

brt login откроет подтверждение в браузере и сохранит выбранный воркспейс в ~/.brt/profiles.json. Для CI передавайте PAT и workspace ID через секреты системы сборки.

3. Создайте проект

mkdir support-bot
cd support-bot
brt init --type bot --template hello-world --name support-bot
brt check

brt check загружает конфигурацию, находит примитивы и проверяет проект без сетевых запросов.

Минимальная конфигурация выглядит так:

agent.config.ts
import { defineConfig } from '@holocronlab/botruntime-runtime'

export default defineConfig({
  name: 'support-bot',
  description: 'Помощник службы поддержки',
})

Обработчик отвечает на сообщения из любого подключённого канала:

src/conversations/index.ts
import { Conversation } from '@holocronlab/botruntime-runtime'

export default new Conversation({
  channel: '*',
  handler: async ({ execute }) => {
    await execute({
      instructions: 'Помогай пользователю проверить статус заказа.',
    })
  },
})

Не коммитьте .adk/, .brt/, agent.local.json, .env и node_modules/. Эти файлы содержат локальное или сгенерированное состояние.

4. Запустите dev target

brt dev

Команда создаёт отдельного dev-бота, собирает проект и открывает tunnel к локальному процессу. Оставьте её запущенной.

5. Подключите Telegram к dev

Во втором терминале установите интеграцию для dev target:

printf '{"botToken":"%s"}' "$DEV_TELEGRAM_TOKEN" \
  | brt integrations install botruntime/telegram@1.1.3 --config-stdin --dev

Скопируйте webhookId из ответа и зарегистрируйте webhook:

brt integrations register "$DEV_WEBHOOK_ID" --dev

Напишите боту в Telegram. Измените instructions, сохраните файл и отправьте ещё одно сообщение. Dev-процесс пересоберёт проект.

6. Задеплойте в production

Создайте production target и загрузите проверенный код:

brt deploy --adk --name "support-bot"

Подключите production-интеграцию без --dev и с отдельным токеном:

printf '{"botToken":"%s"}' "$PROD_TELEGRAM_TOKEN" \
  | brt integrations install botruntime/telegram@1.1.3 --config-stdin
brt integrations register "$PROD_WEBHOOK_ID"

После изменения production-зависимостей выполните deploy ещё раз. Команда зафиксирует точное состояние интеграций в новом бандле.

brt deploy --adk

Проверка результата

  • brt check завершается без ошибок;
  • brt dev принимает сообщения dev-бота;
  • production-бот отвечает только после явного deploy;
  • dev и production используют разные настройки и токены.

Дальше

On this page