Агент и инструменты
ИИ-агент — нода ai_agent — это не «умная нода». Это цикл: модель получает сообщение и список доступных ей инструментов, решает, вызвать ли какой-то из них, получает результаты вызовов и снова идёт к модели — пока не ответит текстом. Каждый проход этого цикла называется раундом.
Сам агент работает на бесплатном тарифе без оговорок. Ограничения касаются отдельных инструментов: telegram_tools полезен только на опубликованном Telegram-боте, а это платный канал; свои модели (BYO) на Free запрещены; подключений к внешним сервисам на Free можно завести три. Всё остальное — поиск, файлы, базы знаний, суб-воркфлоу — доступно сразу.
- Исполнение + данные
- LLM
- Память
- Расширение
- Исполнение + данные + стрим
Агент против одного вызова модели
Второй способ поговорить с моделью — нода llm_response. Она делает ровно один вызов и отдаёт то, что вернула модель. Разница не в качестве, а в том, кто принимает решения.
| llm_response | ai_agent | |
|---|---|---|
| Вызовов модели за один прогон ноды | один | от одного до max_iterations + 1 |
| Инструменты | нет | порт Extensions, модель вызывает сама |
| Память диалога | нет порта; своя опция истории или нода chat_history | порт Memory |
| Кто решает, что делать дальше | автор графа | модель |
| Предсказуемость стоимости | высокая: один вызов | ниже: сколько раундов — решает модель |
Правило выбора простое: если последовательность шагов известна вам заранее — стройте её
нодами графа и берите llm_response. Агент нужен там, где шаги зависят от того, что
модель узна́ет по дороге: «найди в базе, если не нашёл — поищи в интернете, потом ответь».
Как подключается инструмент
Инструмент — это нода, у которой есть выход tool_out (или output) с проводом
link_extension. Он тянется во вход Extensions агента. Порт принимает сколько угодно
рёбер: пять инструментов — пять проводов в один порт.
Обратите внимание на карточку: у неё нет входа исполнения. Это не упущение, а суть
механизма. Инструмент не стоит в очереди выполнения графа и не исполняется, когда до него
дошла очередь, — его вызывает модель, изнутри раунда, столько раз, сколько сочтёт
нужным, и с теми аргументами, которые придумает сама. Планировщик графа об этих вызовах не
знает вовсе. Отсюда же и то, что провод link_extension не влияет на порядок исполнения —
подробнее на странице «Провода».
Что агент сообщает модели про каждый инструмент — это имя, описание и схема аргументов. Описание берётся из настроек ноды и является частью промпта: модель выбирает инструмент по нему. Расплывчатое «работа с файлами» — самая частая причина, по которой агент не вызывает нужный инструмент.
У самого инструмента могут быть входы — но конфигурационные, не исполнительные:
file_tool принимает хранилище на порт file_store,
calendar_tool — календарь, email_tool
— почтовый аккаунт. Это «чем именно пользоваться», а не «когда сработать».
Что происходит внутри раунда
-
Агент собирает запрос: системный промпт, история из подключённой памяти, сообщение пользователя и список инструментов.
-
Модель отвечает потоком. Если в ответе нет ни одного вызова инструмента — это финальный ответ, цикл закончен.
-
Если вызовы есть, они исполняются параллельно — до восьми одновременно; у каждого вызова свой потолок в 600 секунд.
-
Результат каждого вызова возвращается модели отдельным сообщением, и начинается следующий раунд.
Каждый раунд виден в истории запуска отдельной строкой — на вкладке
Выполнение нод (4) у агента появляются записи
#call_1, #call_2 и так далее, с аргументами и результатом каждого вызова. Это первое
место, куда стоит смотреть, когда агент «ответил не то»: почти всегда видно, что он вызвал
не тот инструмент или передал в него не те аргументы.
Какие инструменты есть
Бейдж Tool в палитре стоит у восемнадцати нод. По смыслу они делятся так:
| Группа | Ноды | Что даёт модели |
|---|---|---|
| Знания и данные | rag_tool · dataframe_tool · json_parser | поиск по базе знаний по решению модели; операции над таблицами; принудительный JSON-формат ответа |
| Файлы | file_tool | поиск по маске, чтение и (по отдельному флагу) запись в хранилище воркспейса |
| Интернет | websearch · openrouter_web_search · fetch_webpage | бесплатный поиск, платный поиск с выдержками из источников, загрузка конкретной страницы |
| Внешние сервисы | calendar_tool · email_tool · telegram_tools · mcp_tool | календарь CalDAV, почта, чтение и модерация Telegram-чата, любой MCP-сервер |
| Медиа | image_generate · text_to_speech | нарисовать картинку и озвучить текст прямо в ходе диалога |
| Состояние агента | agent_memory · agent_plan · agent_skills | долгая память, список задач, включаемые наборы инструкций |
| Свои инструменты | wf_tool · widget_tools | кусок графа как инструмент; JS-функции на странице, где встроен виджет |
Точные списки портов и полей — в справочнике нод; подробности по внешним сервисам — на странице «Интеграции».
Нода, которая умеет быть и шагом, и инструментом
Три ноды объявляют оба интерфейса сразу: image_generate, text_to_speech и openrouter_web_search. Переключатель в их настройках — поле «Режим ноды» с двумя значениями:
- Шаг графа — обычный шаг: есть вход запуска и выход
Success, портtool_outскрыт. Вы решаете, когда нода сработает. - Инструмент — расширение агента: остаётся только
tool_out, а исполнительные порты и тумблер ветки ошибки исчезают. Когда сработает — решает модель.
Порты на карточке меняются в момент переключения, поэтому провод, ведущий в исчезнувший порт, станет ошибкой валидации. Это ожидаемо: одна и та же нода не может одновременно быть шагом сценария и инструментом в руках модели, иначе граф делает работу дважды.
Наборы, суб-воркфлоу и суб-агенты
Много инструментов на одном порту. Провода можно вести в порт Extensions по одному,
но когда их становится больше пяти-шести, холст перестаёт читаться. Нода
toolset собирает набор: инструменты подключаются в неё, а от неё в
агента идёт один провод. На поведение это не влияет — модель видит тот же список.
Кусок графа как инструмент. wf_tool — обёртка подграфа: у неё
выход Data (начало цепочки) и вход Result (конец), а между ними вы строите обычные
ноды. Модель вызывает её по имени, цепочка исполняется, результат возвращается в диалог.
Так делаются переиспользуемые операции: «создать заявку», «посчитать доставку» — то, что
должно выполняться одинаково, а не пересказываться моделью каждый раз.
Агент внутри агента. Включите у второго ai_agent флаг «Открыть как инструмент
(субагент)» — у него появится порт tool_out, и его можно подключить к первому. Суб-агент
по умолчанию берёт модель у родителя (это можно переключить на собственный порт LLM),
обязательно требует имени инструмента и, как и всякий инструмент, вызывается по решению
модели. Осмысленно это там, где у подзадачи свой набор инструментов и свой системный промпт:
«агент по счетам» со своим доступом к базе, «агент по расписанию» со своим календарём.
Состояние агента
Три ноды дают модели инструменты для работы с её собственным состоянием. Оно живёт отдельно от истории диалога и отдельно от переменных графа:
| Нода | Что хранит | Кто пишет |
|---|---|---|
| agent_memory | словарь «ключ — значение» | модель, вызовом инструмента |
| agent_plan | список задач с отметками выполнения | модель, вызовом инструмента |
| agent_skills | наборы инструкций, включаемые по ходу разговора | модель, вызовом инструмента |
| buffer/window/summary memory | историю сообщений | сам агент, автоматически |
| var / var_set | типизированное значение по имени | ноды графа — вы решаете, когда |
Разница между памятью диалога и памятью агента практическая: история — это то, что было
сказано, и она растёт сама; agent_memory — это то, что модель сочла нужным запомнить, и
она туда пишет явным вызовом. Если значение нужно вам в графе (условие, фильтр, поле
запроса) — берите переменную, а не память агента. Подробный разбор всех трёх механизмов —
на странице «Переменные и память».
У agent_skills отдельная роль: каждый «навык» — это кусок системного промпта, который модель включает и выключает сама. Так набор правил не висит в контексте целиком на каждом ходу.
Бюджет раундов
Поле «Макс. итераций инструментов» в разделе Дополнительно настроек агента — это число раундов, а не число вызовов. По умолчанию 10, допустимо от 1 до 50. Сорок вызовов инструментов в одном ответе модели — это один раунд.
Работу ограничивает второе поле, «Макс. вызовов инструментов»: сколько вызовов вправе сделать этот агент. Пустое значение означает «сколько разрешит общий бюджет запуска», который делится между всеми агентами внутри него.
Главное свойство обоих потолков: исчерпание не обрывает ход. Из пачки вызовов исполняется разрешённый префикс, на остальные модель получает ответ «бюджет исчерпан, этот вызов не выполнялся», а следующий раунд объявляется последним — с явной инструкцией ответить тем, что уже есть. Ход всегда заканчивается ответом модели, а не тишиной и не провалившимся запуском: иначе пользователь заплатил бы за десять раундов и не получил ничего.
Когда инструмент падает
Ошибка инструмента не роняет запуск. Она превращается в текст и возвращается модели как
результат вызова — примерно так: Error executing tool 'fs_read': Файл не найден. Это
сделано намеренно: модель часто способна исправиться сама — попробовать другой путь, другой
запрос, другой инструмент, — и такое исправление и есть обработка ошибки. Статус запуска
при этом остаётся успешным.
Текст, уходящий модели, проходит ту же очистку, что и любое сообщение об ошибке: внутренние детали, ключи и трассировки в него не попадают, потому что модель охотно пересказывает результат инструмента в своём ответе пользователю. Разбор — на странице «Ошибки».
Видно упавший вызов в истории запуска: у сломавшегося инструмента будет строка со статусом ошибки, даже если ответ пользователю выглядит нормально.
Сколько это стоит
Каждый раунд — это новый вызов модели со всей накопленной историей: системный промпт,
переписка, все прошлые вызовы инструментов и все их результаты. Поэтому входные токены с
каждым раундом растут, и агент, сходивший к модели пять раз, стоит заметно дороже одного
вызова llm_response.
Фиксированная часть тарифа при этом берётся за ноду, а не за раунд: пять раундов — это всё ещё один агент, который платформа запустила. Растут именно токены. Отдельными строками считается работа платных инструментов: генерация картинки, синтез речи, платный веб-поиск. Формула целиком — на странице «Кредиты и стоимость».
Практический вывод: длина системного промпта и объём того, что возвращают инструменты, влияют на счёт сильнее, чем кажется, — потому что и то, и другое пересылается заново каждый раунд. Инструмент, отдающий модели полный текст десяти документов, дорожает квадратично.
Что дальше
Интеграции
Внешние сервисы как инструменты агента.
Переменные и память
Три механизма состояния и кто в них пишет.
Лимиты и бюджеты
Раунды, вложенность, таймауты и потолки.
Базы знаний и RAG
Откуда агент берёт ваши документы.
Кредиты и стоимость
Из чего складывается цена запуска.
Справочник нод
Порты и поля каждого инструмента.