Все ноды/AI/LLM

Сообщения

Собирает массив сообщений из нескольких входов. В настройках задаётся только количество входных портов. Значение на любом входе превращается в сообщение от пользователя; если пришёл готовый массив сообщений — он распаковывается и встаёт на своё место. Нода ждёт входы, которые её запускают; значение со входа, по которому приходят только данные, берётся, только если его источник уже отработал — порядок задайте связью от выхода «Успех» источника. История из «Истории чата» уже содержит текущее сообщение: добавлять к ней сообщение от «Входа» не нужно.

Сообщения
Сообщение 1Сообщения

Тип в графе: messages

Можно включить выход ошибки и обработать сбой отдельным путём.

Порты можно разделить на исполнение и данные (split ports).

Как попробовать

Минимальный рабочий сценарий

Вход
Сообщения
Выход▶
  • Исполнение + данные
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу

Как применять

Нода собирает из нескольких входов один диалог: системную инструкцию, пару примеров «вопрос — ответ», историю и текущий вопрос. Берите её, когда модели нужно передать не одну реплику, а последовательность с разными ролями. Отдельную реплику собирает Сообщение; если достаточно строки, собирать вообще нечего — LLM-ноды принимают её как реплику пользователя. Для обычного чат-сценария эта нода не нужна: историю отдаёт История чата, её массив уже заканчивается текущим сообщением, и LLM-ноды принимают его на порт «Сообщение» целиком.

Как это работает

В настройках задаётся только количество портов — от 1 до 20, по умолчанию два. Порты называются «Сообщение 1», «Сообщение 2» и так далее, и результат складывается в порядке портов, а не в порядке, в котором закончились ветки.

Каждый порт принимает любое значение. Строка или объект становятся репликой с ролью user; готовое сообщение проходит как есть; массив сообщений распаковывается и вставляется на своё место — так целая история подставляется одним ребром.

Нода ждёт порты, связи которых её запускают. Неподключённые порты просто пропускаются. Если ветка порта не сработала — например, это невыбранная ветка Условия, — нода не подвисает, сообщения оттуда просто не будет. Порт, на который приходят только данные (например, выход «Истории чата»), при другом запускающем входе ноду не задерживает: значение с него берётся, только если источник уже отработал. Чтобы такой порт не пришёл пустым, проведите к ноде связь от выхода «Успех» источника.

Частые ошибки

  • Историю склеивают с сообщением от «Входа». Массив из «Истории чата» уже содержит текущее сообщение последним — добавленное ещё раз, оно уедет в модель дважды.
  • Вопрос стоит не последним. Агент считает промптом последнюю реплику с ролью user; если массив заканчивается системной или ассистентской репликой, всё уедет контекстом, а вопроса не будет. Текущий вопрос — в последний подключённый порт.
  • Уменьшили число портов, не убрав связи. Лишние порты исчезают вместе со своими входами, а связи остаются висеть в пустоте, и граф не проходит проверку. Сначала отключите рёбра, потом уменьшайте счётчик.
  • Ждут, что нода склеит тексты. На выходе — массив реплик с ролями, а не одна строка. Склеить тексты в один абзац — это Шаблон.

Входы

ПортПроводДанныеПримечания
Сообщение 1msg_0Исполнение + данныеexecute_datamessage

Выходы

ПортПроводДанныеПримечания
СообщенияmessagesИсполнение + данныеexecute_datamessages

Настройки

ПолеТипПо умолчаниюОписание
Сколько сообщенийport_countinteger2

Количество входных портов Message

Общие поля

Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.
  • split_ports_in — Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.
  • split_ports_out — Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.