AI Agent
Ключевой компонент для создания агентских сценариев с использованием ИИ, нструменттов , и контекстной памятью.

AI Agent — это компонент платформы Nodul, предназначенный для создания интеллектуальных сценариев на основе больших языковых моделей (LLM). Он позволяет интегрировать внешние функции, вести контекстные диалоги и выполнять последовательные действия на основе пользовательского ввода.
Назначение
AI Agent используется для:
- генерации ответов на пользовательские запросы
- вызова других узлов сценария в качестве функций
- работы с краткосрочной памятью в рамках сессии
- получения структурированных JSON ответов
- выполнения сценариев с ограниченным количеством итераций
Интерфейс AI Agent

Основные поля
Поле | Описание |
Model | Название используемой LLM модели (например, openai/gpt-4.1) определяет качество и стоимость выполнения. |
Session ID | Идентификатор, используемый для загрузки и разделения истории разговора. Если указан, агент будет включать соответствующую историю разговора в контекст. Если пуст или не указан, каждый запрос будет рассматриваться как новая сессия без истории. Например, это может быть ID чата или ID пользователя для различения разных потоков разговора. |
User Prompt | Основной запрос пользователя. Поддерживает интерполяцию переменных. |
System Message | Инструкция для языковой модели. Контролирует поведение агента (тон, стиль, ограничения и т.д.). |
Дополнительные настройки
Context Window Length | Определяет количество самых последних пар сообщений (пользователь и ассистент) для включения в контекстное окно, передаваемое LLM. Увеличение этого значения позволяет модели учитывать более длинную историю разговора, что может улучшить связность, но также может потреблять больше токенов и влиять на производительность |
Max Iterations | Определяет верхний лимит вызовов инструментов, разрешенных для LLM агента в едином процессе рассуждения. Если этот порог достигнут, агент прекратит выполнение и ответит сообщением о том, что был остановлен из-за достижения максимального количества итераций. |
Temperature | Температура выборки от 0 до 2. Более высокие значения, такие как 0.8, сделают вывод более случайным, в то время как более низкие значения, такие как 0.2, сделают его более сфокусированным и детерминированным. |
Max Tokens | Верхняя граница количества токенов, которые могут быть сгенерированы для завершения |
Structured output (переключатель) | Когда включен, LLM будет принужден отвечать в JSON формате. Вы должны определить ожидаемую JSON структуру и правила форматирования в промпте или в "Output JSON Schema" |
Output JSON Schema | Когда указано, эта JSON Schema определяет точную структуру, типы и ограничения ожидаемого JSON вывода от LLM. Модель будет руководствоваться строгим следованием этой схеме во время генерации. Пример: { "type": "object", "properties": { "output": { "type": "string", "description": "Предоставьте вывод здесь" } } } |
Quick Preview Schema | Это поле позволяет форматировать данные ответа для легкого чтения. Определите пары ключ-путь в JSON, где ключ — это заголовок, а значение — путь к данным |
ℹ️ Для изучения всех доступных моделей, их названий, цен и описаний можно использовать List Models node. Он возвращает структурированный список моделей, поддерживаемых узлом AI Agent.

Как это работает
AI Agent реализует концепцию Function Calling (как определено OpenAI) или Tool Call. При запуске он формирует стандартный chat запрос с ролями (system, user) и списком доступных инструментов, основанных на подключенных узлах.
Запрос включает:

User Prompt
(1) — запрос пользователя (role: user),
System Message
(2) — системное сообщение (role: system),
- Tool metadata — каждый подключенный узел должен предоставить:
- название (3) (взято из заголовка узла),
- описание (4) (из поля
Tool Description
), - список аргументов (5), определенных через
fromAIAgent()
внутри полей ввода.

Пример:
{{fromAIAgent("Email Body"; "Включите тело email как обычный текст или HTML. Если HTML, убедитесь, что установили свойство "Body Type" в html")}}
Каждый такой узел рассматривается как вызываемая функция с названием, аргументами и описанием. Если модель решает вызвать одну из функций, Nodul выполняет соответствующий узел и возвращает результат AI Agent.
🧠 Модель самостоятельно решает, какие инструменты вызывать в зависимости от смысла пользовательского запроса. Вы можете подключить несколько инструментов - только релевантные будут активированы на основе контекста.
AI Chat

В правой части конфигурации узла находится вкладка AI Chat. Вы можете использовать её для общения с ассистентом в реальном времени и тестирования его поведения. Это полезно для проверки того, как модель интерпретирует промпт, какие действия она предлагает и какие инструменты решает вызвать.
Подключение инструментов к агенту

Чтобы AI Agent использовал другие блоки сценария, они должны быть визуально подключены снизу через интерфейс конструктора.
Есть два способа сделать это:
- Перетащите нужный узел (например, HTTP Request, Telegram, Search и т.д.) и подключите его к нижнему коннектору узла AI Agent.
- Или нажмите на коннектор AI Agent и вручную свяжите его с существующим узлом.
После подключения связанный узел становится доступным как вызываемый инструмент для агента.
Передача параметров в подключенные инструменты

Для передачи данных из AI Agent в подключенный узел используйте оператор fromAIAgent()
. Этот оператор действует как заполнитель для динамического ввода — агент автоматически заменит его соответствующими значениями во время выполнения.
Вы можете поместить {{fromAIAgent("parameter_name"; "parameter description")}}
внутрь любого поля ввода подключенного узла (такого как Request Body
, Prompt
, Text
и т.д.).
Это выражение определяет ожидаемый аргумент для инструмента:
"parameter_name"
— внутреннее имя параметра
"parameter description"
— показывается модели и используется в схеме функции
Формат:
{{fromAIAgent("parameter_name"; "description")}}
Пример:

{{fromAIAgent("Email Body"; "Включите тело email как обычный текст")}}
Это зарегистрирует узел как доступную функцию с:
- её названием (взятым из заголовка узла),
- описанием (взятым из поля
Tool Description
),
- списком параметров, определенных через выражения
fromAIAgent()
.
⚠️ Каждый узел должен иметь уникальное имя. Если имя отсутствует, выполнение завершится неудачей.
Пример: Прогноз погоды (без авторизации)

Давайте посмотрим, как работает AI Agent, используя запрос прогноза погоды.
- Поместите AI Agent на холст.
- В поле
System Message
напишите:
Вы ассистент, который может получать прогноз погоды. Используйте подходящий инструмент.
- Добавьте узел
HTTP Request
под ним.
- Назовите узел, например,
Weather forecast
- Установите метод:
GET
- В поле URL вставьте:
<https://wttr.in/>{{fromAIAgent("city"; "Название города для прогноза погоды")}}?format=3
- Запустите AI Agent с промптом:
Какая погода в Берлине?
В результате:
- AI Agent получает пользовательский запрос;
- анализирует, что нужен прогноз погоды;
- находит узел с названием
weather_forecast
, который используетfromAIAgent
с параметромcity
;
- подставляет значение "Берлин" и делает HTTP запрос;
- получает краткий прогноз и отправляет его обратно пользователю.

Пример: Гибкий Telegram чатбот
AI Agent также хорошо работает в формате чатбота. Вы можете подключить несколько узлов и позволить модели решать, какой использовать.
Например, вот базовый Telegram чатбот:

Telegram триггер подключен к AI Agent, а от AI Agent к:
Web Search
(Perplexity);
Create Note
(Notion);
Current Weather
В этом сценарии:
- Если пользователь отправляет общее сообщение, агент просто отвечает текстом без вызова инструментов.

- Если пользователь просит создать заметку, он использует узел
Create Note
.

- Если пользователь просит сделать что-то сложное, например, получить погоду и найти информацию онлайн, два инструмента -
Web Search
иCurrent Weather
- будут активированы последовательно, и их результаты будут включены в ответ.

Каждый узел зарегистрирован с fromAIAgent()
для передачи параметров. Модель понимает, какой инструмент использовать - и игнорирует остальные.
Это делает чатбота динамичным и модульным.
Мульти-агентные рабочие процессы

В то время как базовые и модульные агенты подходят для большинства простых и средних случаев использования, мульти-агентные рабочие процессы позволяют осуществлять продвинутую координацию между несколькими агентами - каждый из которых действует независимо и выполняет специализированную роль.
В этих сценариях агенты могут обмениваться данными, активировать друг друга условно и брать на себя различные обязанности в рамках одного запроса. Например, один агент может служить копирайтером, другой - редактором, а третий - фактчекером. Это разделение ролей помогает уменьшить галлюцинации, которые обычно возникают, когда один агент перегружен множественными задачами.
Эти паттерны особенно полезны для:
- многоэтапного рассуждения;
- оркестровки инструментов;
- AI pipeline, требующих четкого разделения логики и внутренних циклов обратной связи.