Все ноды/AI/Conversation Memory
История чата
Загружает недавнюю историю текущего диалога как массив Messages, с ограничением по количеству сообщений (limit). Источник — сохранённые сообщения чата по (workflow_id, session). Работает и для веб-чата, и для Telegram (ходы бота зеркалятся в ту же таблицу). По умолчанию читает текущий тред; можно переопределить session_id.
Тип в графе: chat_history
Exec
Можно включить ветку ошибки (expose_error_output) и обработать сбой отдельным путём.
Как попробовать
Ответ LLM с полной перепиской
История подаётся в порт Message; на ноде Ответ LLM обязательно включите «Использовать историю чата».
- Исполнение + данные
- Данные
- LLM
Запускается сразу Перед запуском укажите: модель в ноде LLM.
Как применять
Берите эту ноду, когда переписка нужна как данные, а не как память агента: подложить
диалог в промпт Ответа LLM, посчитать что-нибудь по прошлым
репликам, собрать транскрипт для отчёта или для внешней системы. Это обычный исполняемый
шаг: у него есть вход Run, и он возвращает массив Messages в хронологическом порядке,
от старых к новым.
Отличие от памятей (Буферной,
Оконной, Суммаризирующей): те
ведут собственную ленту агента — с вызовами инструментов и результатами — под своим ключом.
История чата читает то, что сохранил канал: реплики пользователя и ответы бота по паре
«воркфлоу + сессия». Для веб-чата и Telegram источник один и тот же, потому что ходы
Telegram зеркалятся в ту же таблицу под сессией вида tg:{chat_id}.
Как это работает
«Лимит сообщений» задаёт, сколько последних сообщений вернуть: по умолчанию 20, максимум 500.
Пустое «Переопределение сессии» означает текущий тред. Поле принимает шаблон, поэтому можно
прочитать другой тред того же воркфлоу — например
tg:{{ nodes.entry.data.telegram.chat_id }}.
Сообщение пользователя сохраняется до старта запуска, так что текущий вопрос уже находится в выдаче — последним элементом массива.
Если у запуска нет треда чата (вебхук, расписание, ручной прогон), нода возвращает пустой массив, а не ошибку.
Частые ошибки
- Дать агенту и эту ноду, и ноду памяти. Диалог приедет в модель дважды — из памяти и как входное значение.
- Считать, что нода вернёт ходы агента с инструментами. Она читает сохранённую переписку; вызовы инструментов туда не попадают.
- Ждать инструмент для модели. Чтобы агент сам решал, когда заглянуть в переписку, есть отдельная нода Инструмент истории чата — она подключается к агенту в порт Extensions, а не запускается шагом графа.
- Поднимать лимит «на всякий случай». Каждое сообщение — это входные токены на каждом запуске; 500 реплик в промпте стоят заметно дороже двадцати.
Входы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Runinput | Исполнение + данныеexecute_data | — |
Выходы
| Порт | Провод | Данные | Примечания |
|---|---|---|---|
Messagesoutput | Данныеdata | messages |
Настройки
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
Лимит сообщенийlimit | integer | 20 | Максимальное число самых недавних сообщений для возврата (в хронологическом порядке). |
Переопределение сессииsession_id | string | "" | Необязательный id треда/сессии для чтения вместо текущего диалога. Оставьте пустым, чтобы использовать текущий тред чата (веб-чат или 'tg:{chat_id}' для Telegram). Поддерживаются шаблоны, напр. tg:{{ nodes.entry.data.telegram.chat_id }}. поддерживает шаблоны |
Общие поля
Эти три поля есть у каждой ноды: платформа добавляет их сама, а не автор ноды.
expose_error_output— Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.