Перейти к основному содержимому

Использование функций в процессе

Как встроенные, так и пользовательские функции можно использовать тремя способами:

  • в качестве отдельного шага в процессе;
  • в виде инструмента для AI-агента;
  • в коде других блоков.

Режим «Функция»

Базовый режим, чтобы использовать функцию как отдельный шаг в процессе.

  • Как работает: система вызывает выбранную функцию с заданными параметрами. Для получения результата в следующем блоке используйте метод Context.getLastFunctionResult().
  • Когда использовать: для задач, где вызов внешней системы — это четкий шаг в процессе. Например: «получить курс валют», «рассчитать доставку», «проверить статус заказа».

Настройка

  1. В левом меню перейдите в Конструктор.

  2. Выберите ФункцииВстроенные или Пользовательские<Нужная коллекция>.
  3. Перетащите функцию на холст и укажите параметры. Вы можете задать их вручную или использовать динамическую подстановку данных, например:

    • Для актуальной версии движка: ID этого канала: {{ request.botId}}.
    • Для предыдущей версии движка: {{'ID этого канала: ' + Context.getBotId()}}.
  4. Если в вашем проекте актуальная версия движка, вы можете задать параметры на вкладке Поведение:

    • Время ожидания ответа: до 60 минут. Если выполнение функции не завершится за это время, будет зафиксирована ошибка.

    • Повторные попытки при ошибке: до 10 повторных вызовов.

      Например, если указать таймаут 20 секунд и количество повторных попыток 3, то суммарное время ожидания может составить до 80 секунд: 20×(1+3).

    • Возвращать указанное значение вместо ошибки: если функция не выполнится успешно после всех попыток, процесс не прервется, а на выход блока будет передано заданное значение (число, строка, JSON-объект, true/false или null).

Режим «Инструмент»

Используется совместно с блоком Агент, позволяя AI самостоятельно решать, когда вызывать функцию.

  • Как работает: вы не вызываете функцию напрямую — она становится «инструментом» для агента. Агент сам решает, когда и как ее использовать, исходя из диалога с пользователем.
  • Когда использовать: для гибких систем, где агент взаимодействует с внешним миром: например, «забронируй переговорную» или «какой у меня баланс?».
подсказка

Подробнее о настройке функций в режиме инструмента смотрите в разделе про блок «Агент».

Вызов в коде

Функцию можно вызвать:

  • Из JavaScript-выражений в блоках Код и Условие. Пример смотрите в разделах Код и Условие.

  • Из кода других (пользовательских) функций.

  • Из параметров других функций (только если в вашем проекте движок версии 1).

    Пример:

    Вызов функции в параметре

При вызове функций указывайте коллекцию, например:

// Вызов функции myFunction из коллекции MyCollection
MyCollection.myFunction();

Сохранение результата в контекст

Результат выполнения функции можно записывать в служебную память, используемую агентами. Подробнее смотрите в разделе Управление контекстом агентов.