Все ноды/AI/Agents
ИИ-агент
Автономный агент с поддержкой инструментов. Получает сообщение, вызывает подключённые инструменты (tool_out) и возвращает ответ. Требует LLM-ноду через link_llm. Опционально: memory (история диалога), skills/extensions (инструменты).
Тип в графе: ai_agent
ExecSubgraph
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий воркфлоу
- Исполнение + данные
- LLM
- Память
- Исполнение + данные + стрим
Запускается сразу
Как применять
ИИ-агент нужен, когда модель должна сама решить, что сделать перед ответом: сходить в базу знаний, вызвать инструмент, посмотреть историю — и только потом отвечать. Инструменты подключаются в порт Extensions, память диалога — в Memory, модель — в LLM. Если ни инструментов, ни памяти не требуется, Ответ LLM проще и предсказуемее.
Как это работает
Агент работает раундами. Модель отвечает; если она запросила инструменты, все вызовы этого раунда выполняются параллельно, результаты возвращаются в диалог, и начинается следующий раунд. «Макс. итераций инструментов» (по умолчанию 10) ограничивает именно раунды: в одном раунде модель может запросить сразу десяток инструментов. Ограничить объём работы, а не число обменов, позволяет «Макс. вызовов инструментов».
Когда лимит исчерпан, агент не падает: инструменты отключаются, модели приходит указание ответить по уже собранным данным — ход всегда заканчивается ответом.
Каждый раунд виден в журнале запуска отдельной строкой «Вызов N»: вход, вызовы инструментов, результат и токены.
Субагент. Включите «Открыть как инструмент» и задайте «Имя инструмента» — вместо обычного выхода у ноды появится порт As Tool, который подключается в Extensions другого агента. По умолчанию субагент берёт модель родителя; чтобы дать ему свою, переключите «Источник LLM» на внешний и подключите отдельную ноду LLM.
Частые ошибки
- Инструмент подключают ребром исполнения. Инструменты идут в порт Extensions своим типом ребра, и порядок вызовов решает модель, а не граф. Порт принимает сколько угодно рёбер.
- У субагента пустое «Имя инструмента». Нода не проходит валидацию: имя — это то, чем модель вызывает субагента.
- Пишут
nodes.<id>.output.text. На ребро и в шаблон уходит сама строка ответа:{{ nodes.<id>.output }}. - Складывают в одного агента всё подряд. Если инструментов становится много, выделите часть в субагента или подключите готовый воркфлоу нодой WF-инструмент; сгруппировать несколько инструментов помогает Набор инструментов.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
LLMllm | LLMlink_llm | — | LLM config from llm node (registry or workspace connection) показывается, когда is_subagent = false или llm_source ≠ "from_parent" |
Messageinput | Исполнение + данныеexecute_data | message | Run trigger and user message for the agent |
Memorymemory | Памятьlink_memory | — | Memory node providing conversation history |
Extensionsextensions | Расширениеlink_extension | — | несколько связей |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Outputoutput | Исполнение + данные + стримexecute_data_streaming | object | показывается, когда is_subagent = false |
As Tooltool_out | Расширениеlink_extension | — | показывается, когда is_subagent = true |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Источник сообщенияmessage_source | string | connected | connected — из ребра; template — из текста шаблона Варианты: |
Шаблон сообщения пользователяuser_prompt_template | string | "" | Используется, когда источник сообщения — template. Поддерживает {{inputs.message}}, {{nodes.xxx.output.yyy}} поддерживает шаблоны показывается при message_source = template |
Системный промптsystem_prompt | string | "" | Системный промпт для агента поддерживает шаблоны |
| Дополнительно | |||
Макс. итераций инструментовmax_iterations | integer | 10 | Макс. итераций инструментов |
Макс. вызовов инструментовmax_tool_calls | integer | null | Максимум вызовов инструментов для этого агента (пусто = бюджет рана). «Макс. итераций инструментов» ограничивает только раунды — в одном раунде вызовов может быть десятки. |
Открыть как инструмент (субагент)is_subagent | boolean | false | Когда включено, этот агент можно подключить как инструмент к другим агентам |
Описаниеdescription | string | "" | Что делает этот агент. Используется как описание инструмента при включённом режиме субагента. показывается при is_subagent = true |
Источник LLMllm_source | string | from_parent | from_parent использует LLM родительского агента, когда это субагент; external использует link_llm Варианты: показывается при is_subagent = true |
Имя инструментаsubagent_name | string | "" | Имя функции, используемое когда этот агент вызывается как инструмент показывается при is_subagent = true |
Включить размышлениеenable_thinking | boolean | false | После каждого раунда вызовов инструментов вставлять промпт, направляющий рассуждение модели перед продолжением |
Промпт размышленияthinking_prompt | string | Analyze the tool results and think about the next steps. | Сообщение, вставляемое после результатов инструментов для направления рассуждения модели поддерживает шаблоны показывается при enable_thinking = true |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.