Документация

Визуальный редактор

Проектирование pipeline методом drag-and-drop с проверкой контрактов как можно раньше.

Pipeline в betool — это граф узлов, который вы собираете в визуальном редакторе. Каждый тип узла объявляет на стороне сервера свою конфигурацию и ключи, которые он производит; редактор проверяет граф и конфигурацию, прежде чем разрешить публикацию.

Анатомия pipeline

[Start]──▶[agent]──▶[router]──┬──▶[agent]
                              └──▶[webhook_action]
  • Узел Start создаётся автоматически вместе с моделью; он несёт приёмники (входные каналы), которые запускают pipeline. Один Start может объявить несколько приёмников.
  • Каждый нижестоящий узел читает ключи, произведённые вышестоящими узлами, в контексте выполнения.
  • Маршрутизатор или фильтры создают ветви; каждое выполнение оставляет просматриваемую трассу.

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

Ключ потока

Ключ — это именованный фрагмент данных, который передаётся между узлами. Пример: узел agent может записать свой результат под exchange.intent, а нижестоящий узел (фильтр, маршрутизатор) проверяет этот ключ.

То, что узел производит, объявляется его контрактом в двух формах:

  • Фиксированный ключ (fixed_key) — всегда один и тот же, определяется типом узла (например, input.entry_kind для Start).
  • Настраиваемый ключ (configurable_key) — выбирается в конфигурации узла (например, выходной ключ агента).

То, что узел читает, задаётся в его конфигурации (поле, проверяемое фильтром, входы агента…).

Контракт

Каждый тип узла раскрывает контракт, объявленный на стороне сервера: его поля конфигурации (тип, допустимые значения, обязательные поля, значения по умолчанию) и ключи, которые он производит. Редактор опирается на этот контракт, чтобы построить панель конфигурации и проверить то, что вы вводите.

Конфигурация

Узел также имеет статические параметры (свою конфигурацию) — например, для узла agent: его роль, миссия, инструменты, LLM-модель.

Секреты

Поля, которые контракт узла или приёмника объявляет секретными (HMAC-секрет входящего webhook, токен или пароль HTTP-вызова, токен доступа Страницы, секрет подконвейера…), после сохранения никогда не возвращаются в открытом виде: ни в редактор, ни через API, ни инструментам MCP и агентам, которые читают pipeline, ни в предложениях.

В инспекторе такое поле показывает «•••••• сохранено — введите, чтобы заменить»:

  • если оставить его пустым, оно сохраняет записанный секрет;
  • ввод нового значения его заменяет;
  • кнопка Удалить его стирает (для HMAC-секрета проверка подписи тогда отключается).

Копирование-вставка или дублирование узла не копирует его секреты: введите их заново в копии.

Создание pipeline

  1. Модели → Новая — в betool ваш pipeline содержится в модели.
  2. Открывается холст с узлом Start. Настройте его, чтобы выбрать один или несколько входных каналов.
  3. Добавляйте узлы кнопкой Добавить узел при наведении на связь или правым щелчком по узлу (Добавить узел перед / после), затем выберите их тип в каталоге модулей (поиск по имени).
  4. Соединяйте узлы между собой. Pipeline — это дерево: у каждого узла только один родитель.
  5. Щёлкните по узлу, чтобы открыть его конфигурацию в инспекторе.
  6. Запустить тест — выполните опубликованную версию на произвольно введённой полезной нагрузке, в реальном режиме или в режиме симуляции (узлы с внешним эффектом пропускаются).
  7. Публикация — сообщение коммита обязательно; pipeline проверяется, после чего новая версия становится той, которую выполняет runtime.

Версионирование

Каждая публикация создаёт версию. В разделе Версии вы можете:

  • Сравнить версию с текущим состоянием (добавленные, удалённые, изменённые узлы и связи).
  • Загрузить версию в редактор (черновик перезаписывается, без публикации).
  • Опубликовать заново более раннюю версию (откат).

Из истории прошлое выполнение, пришедшее от приёмника, также можно воспроизвести на опубликованной версии, при необходимости с изменённой полезной нагрузкой и в режиме симуляции.

Валидация

При публикации валидатор проверяет граф:

  • Блокирующие ошибки — цикл в графе; узел с несколькими родителями; неподключённый обязательный выход (тело цикла foreach, дочерние узлы parallel, каждый объявленный маршрут router); неверное количество Start; ошибки, специфичные для типа узла (например, несуществующая роль или миссия агента).
  • Предупреждения (не блокируют) — узел, недостижимый из Start; расхождение существующей конфигурации с контрактом её узла.

При записи конфигурации (редактор, предложения, API) значение вне допустимых или отсутствующее обязательное поле отклоняются с указанием ожидаемого исправления.

В результате опубликованный pipeline прошёл эти структурные проверки. Оставшиеся ошибки относятся к выполнению (сбой вызова стороннего API, неожиданный результат разбора).