Все ноды/AI/Agents
Инструменты виджета
Расширение агента: отдаёт LLM все JS-функции, объявленные в коде встраивания виджета (flowWidget.defineFunction), как инструменты. Когда модель вызывает инструмент — браузер посетителя выполняет привязанный JS и возвращает результат. Работает только в режиме виджета.
Тип в графе: widget_tools
Tool
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
- Расширение
- LLM
- Память
- Исполнение + данные + стрим
Запускается сразу
Как применять
Эта нода нужна, когда чат живёт виджетом на вашем сайте и модель должна что-то сделать прямо на странице посетителя: узнать содержимое корзины, подставить значение в форму, открыть модальное окно, прокрутить к блоку. Отличие от Функции виджета — в том, кто решает: там вы ставите шаг в графе и вызываете конкретную функцию, здесь модель сама выбирает, что и когда вызвать.
Как это работает
Собственных инструментов нода не объявляет. Она берёт список функций, которые страница объявила
через flowWidget.defineFunction (форма {name, description, parameters}), и отдаёт их модели
как инструменты. Обработчик остаётся в браузере — воркфлоу видит только объявление.
Имена приводятся к безопасному виду: нижний регистр, всё кроме букв, цифр, _ и -
заменяется на _, длина режется до 64 символов. То есть Get Cart модель вызывает как
get_cart; если два объявления сводятся к одному имени, второе получает числовой суффикс.
Вызов — это круговой рейс: запрос уходит в браузер, ваш обработчик отрабатывает, результат возвращается в воркфлоу. Нода ждёт его не дольше «Таймаута» (по умолчанию 30 секунд, максимум 300). «Разрешённые функции» — allow-list по исходному имени из объявления; пустой список означает «все объявленные».
Если браузера нет — вкладку закрыли, запуск идёт не из виджета, ответ не пришёл вовремя — модель получает текстовую ошибку, а не падение ноды, и может ответить пользователю сама. Повторные вызовы в том же запуске отбиваются сразу, без ещё одного ожидания таймаута.
Частые ошибки
- Проверять ноду в тестовом запуске редактора, по API или в Telegram. Функций там нет и браузера тоже: модель получит только ошибку. Проверять надо на странице с виджетом.
- Объявить функцию без описания. Модель выбирает инструмент по описанию; без него она либо не вызовет функцию, либо вызовет невпопад.
- Забыть
parameters. Объявление без схемы объекта отдаётся модели как функция без аргументов — передать в неё что-либо она не сможет. - Писать в allow-list уже нормализованное имя. Список сверяется с тем именем, которое вы
указали в
defineFunction. - Обработчик дольше таймаута. Тяжёлую работу лучше запускать на странице и отдавать результат отдельным ходом, а не держать модель в ожидании.
Входы
—
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Agentoutput | Расширениеlink_extension | — |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Разрешённые функцииallowed_functions | array<string> | — | Опциональный allow-list имён клиентских функций, доступных LLM. Оставьте пустым, чтобы отдать все функции, объявленные виджетом. |
Таймаут (секунды)timeout_seconds | integer | 30 | Сколько ждать результат инструмента от браузера до ошибки. |