Все ноды/AI/LLM
Сообщения
Собирает массив сообщений из нескольких входов. В настройках задаётся только количество входных портов. Значение на любом входе превращается в сообщение от пользователя; если пришёл готовый массив сообщений — он распаковывается и встаёт на своё место. Нода ждёт входы, которые её запускают; значение со входа, по которому приходят только данные, берётся, только если его источник уже отработал — порядок задайте связью от выхода «Успех» источника. История из «Истории чата» уже содержит текущее сообщение: добавлять к ней сообщение от «Входа» не нужно.
Тип в графе: messages
Можно включить выход ошибки и обработать сбой отдельным путём.
Порты можно разделить на исполнение и данные (split ports).
Как попробовать
Минимальный рабочий сценарий
- Исполнение + данные
Запускается сразу
Как применять
Нода собирает из нескольких входов один диалог: системную инструкцию, пару примеров «вопрос — ответ», историю и текущий вопрос. Берите её, когда модели нужно передать не одну реплику, а последовательность с разными ролями. Отдельную реплику собирает Сообщение; если достаточно строки, собирать вообще нечего — LLM-ноды принимают её как реплику пользователя. Для обычного чат-сценария эта нода не нужна: историю отдаёт История чата, её массив уже заканчивается текущим сообщением, и LLM-ноды принимают его на порт «Сообщение» целиком.
Как это работает
В настройках задаётся только количество портов — от 1 до 20, по умолчанию два. Порты называются «Сообщение 1», «Сообщение 2» и так далее, и результат складывается в порядке портов, а не в порядке, в котором закончились ветки.
Каждый порт принимает любое значение. Строка или объект становятся репликой с ролью user; готовое сообщение проходит как есть; массив сообщений распаковывается и вставляется на своё место — так целая история подставляется одним ребром.
Нода ждёт порты, связи которых её запускают. Неподключённые порты просто пропускаются. Если ветка порта не сработала — например, это невыбранная ветка Условия, — нода не подвисает, сообщения оттуда просто не будет. Порт, на который приходят только данные (например, выход «Истории чата»), при другом запускающем входе ноду не задерживает: значение с него берётся, только если источник уже отработал. Чтобы такой порт не пришёл пустым, проведите к ноде связь от выхода «Успех» источника.
Частые ошибки
- Историю склеивают с сообщением от «Входа». Массив из «Истории чата» уже содержит текущее сообщение последним — добавленное ещё раз, оно уедет в модель дважды.
- Вопрос стоит не последним. Агент считает промптом последнюю реплику с ролью user; если массив заканчивается системной или ассистентской репликой, всё уедет контекстом, а вопроса не будет. Текущий вопрос — в последний подключённый порт.
- Уменьшили число портов, не убрав связи. Лишние порты исчезают вместе со своими входами, а связи остаются висеть в пустоте, и граф не проходит проверку. Сначала отключите рёбра, потом уменьшайте счётчик.
- Ждут, что нода склеит тексты. На выходе — массив реплик с ролями, а не одна строка. Склеить тексты в один абзац — это Шаблон.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Сообщение 1msg_0 | Исполнение + данныеexecute_data | message |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Сообщенияmessages | Исполнение + данныеexecute_data | messages |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Сколько сообщенийport_count | integer | 2 | Количество входных портов Message |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этой ноды.split_ports_in— Показывать отдельные порты входа для выполнения и данных вместо одного объединённого.split_ports_out— Показывать отдельные порты выхода для выполнения и данных вместо одного объединённого.