Использование функций в процессе
Как встроенные, так и пользовательские функции можно использовать тремя способами:
- в качестве отдельного шага в процессе;
- в виде инструмента для AI-агента;
- в коде других блоков.
Режим «Функция»
Базовый режим, чтобы использовать функцию как отдельный шаг в процессе.
- Как работает: система вызывает выбранную функцию с заданными параметрами. Для получения результата в следующем блоке используйте метод
Context.getLastFunctionResult(). - Когда использовать: для задач, где вызов внешней системы — это четкий шаг в процессе. Например: «получить курс валют», «рассчитать доставку», «проверить статус заказа».
Настройка
-
В левом меню перейдите в Конструктор → .
- Выберите Функции → Встроенные или Пользовательские → <Нужная коллекция>.
-
Перетащите функцию на холст и укажите параметры. Вы можете задать их вручную или использовать динамическую подстановку данных, например:
- Для движка версии 2:
ID этого канала: {{ request.botId}}. - Для версии 1:
{{'ID этого канала: ' + Context.getBotId()}}.
- Для движка версии 2:
-
Если в вашем проекте движок версии 2, вы можете задать параметры на вкладке Поведение:
-
Время ожидания ответа: до 60 минут. Если выполнение функции не завершится за это время, будет зафиксирована ошибка.
-
Повторные попытки при ошибке: до 10 повторных вызовов.
Например, если указать таймаут 20 секунд и количество повторных попыток 3, то суммарное время ожидания может составить до 80 секунд: 20×(1+3).
-
Возвращать указанное значение вместо ошибки: если функция не выполнится успешно после всех попыток, процесс не прервется, а на выход блока будет передано заданное значение (число, строка, JSON-объект, true/false или null).
-
Режим «Инструмент»
Используется совместно с блоком Агент, позволяя AI самостоятельно решать, когда вызывать функцию.
- Как работает: вы не вызываете функцию напрямую — она становится «инструментом» для агента. Агент сам решает, когда и как ее использовать, исходя из диалога с пользователем.
- Когда использовать: для гибких систем, где агент взаимодействует с внешним миром: например, «забронируй переговорную» или «какой у меня баланс?».
Подтверждение перед вызовом
Если функция проводит платеж, удаляет важные данные или выполняет другое критическое действие, запросите у клиента подтверждение перед ее выполнением.
Подробнее о настройке функций в режиме инструмента смотрите в разделе про блок «Агент».
Вызов в коде
Функцию можно вызвать:
-
Из выражений в блоках Код и Условие. Пример смотрите в разделах Код и Условие.
-
Из кода других (пользовательских) функций.
-
Из параметров других JavaScript-функций (только если в вашем проекте движок версии 1).
Пример

При вызове функций указывайте коллекцию, например:
// Вызов функции myFunction из коллекции MyCollection
MyCollection.myFunction();
Из JavaScript-кода нельзя вызывать Python-функции, и наоборот.
Сохранение результата в контекст
Результат выполнения блока функции можно записывать в служебную память, используемую агентами. Подробнее смотрите в разделе Управление контекстом агентов.