Визуальный редактор
Pipeline в betool — это граф узлов, который вы собираете в визуальном редакторе. Каждый узел объявляет, что он потребляет и что производит; редактор отклоняет несовместимые соединения ещё до запуска pipeline.
Анатомия pipeline
[Start]──▶[agent]──▶[condition]──┬──▶[agent]
└──▶[operator HTTP]
- Узел Start объявляет, какой входной канал запускает pipeline.
- Каждый нижестоящий узел получает контекст от вышестоящих узлов (слоты производителя / потребителя).
- Условие создаёт ветви; все ветви в конечном счёте производят отслеживаемый результат.
Ключевые понятия
Слот
Слот — это именованный фрагмент данных, который передаётся между узлами. Например: узел agent может произвести exchange.intent: "refund_request", который затем потребляет нижестоящий узел condition.
Два семейства:
- Производители — то, что узел выдаёт (
fixed_key,configurable_key). - Потребители — то, что узел принимает на вход (
selector,selector_list).
Контракт
Каждый тип узла раскрывает контракт, объявленный на стороне сервера. Редактор считывает этот контракт, чтобы предлагать только допустимые соединения.
Конфигурация
Узел также имеет статические параметры (свою конфигурацию) — для узла agent, например: его роль, его миссия, его инструменты и его LLM-модель.
Создание pipeline
- Конструктор → Пайплайны → Новый pipeline.
- Открывается холст с пустым узлом Start. Настройте его, чтобы выбрать входной канал.
- Перетаскивайте узлы из левой палитры: agent, operator, condition…
- Соединяйте выходы со входами. Редактор разрешает только совместимые связи.
- Щёлкните по узлу, чтобы открыть его конфигурацию в правой панели.
- Тест — вкладка Тест прогоняет pipeline на вручную составленном exchange.
- Публикация — создаёт новую версию. Входящие exchange направляются на самую свежую версию; выполняющиеся в данный момент запуски продолжаются на своей версии.
Версионирование
Каждое опубликованное изменение создаёт новую версию. Вы можете:
- Сравнить две версии (визуальный diff).
- Воспроизвести прошлый exchange на новой версии.
- Откатиться к предыдущей версии.
Непрерывная валидация
Редактор непрерывно запускает валидатор:
- Обязательные слоты остались неподключёнными → предупреждение отображается на узле.
- Неограниченные циклы → ошибка (публикация заблокирована).
- Несовместимые возможности (например, agent, вызывающий голосовой инструмент внутри email-pipeline) → предупреждение.
- Отсутствующие поля конфигурации → ошибка.
В результате pipeline, который успешно публикуется, гарантированно структурно корректен. Ошибки времени выполнения возникают исключительно из бизнес-логики (сбой вызова стороннего API, неожиданный результат разбора), а не из композиции.