Все ноды/AI/Conversation Memory

Оконная память

Хранит только последние N сообщений диалога (скользящее окно). Более предсказуем по объёму контекста чем Buffer Memory. Настраивается через window_size.

Оконная памятьS
Set historyMemory
Messages

Тип в графе: window_memory

ExecStateful

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

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

Чат-бот с окном в 10 сообщений

Память подключается к ИИ-агенту связью link_memory; размер окна задаётся полем «Размер окна».

Вход
LLM
Оконная памятьS
ИИ-агент
Выход
  • Исполнение + данные
  • LLM
  • Память
Нажмите «Скопировать ноды», откройте редактор и нажмите Ctrl+V на холсте.

Запускается сразу Перед запуском укажите: модель в ноде LLM.

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

Оконная память держит только последние N сообщений. Объём контекста перестаёт зависеть от возраста диалога, а дополнительных вызовов модели, в отличие от Суммаризирующей памяти, не появляется. Это разумный выбор по умолчанию для чат-бота, который живёт долго и которому не нужно помнить начало разговора. Нужен весь диалог целиком — берите Буферную память.

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

Нода не исполняется сама: входа Run у неё нет, её «тянет» потребитель по связи link_memory. Потребитель один — порт Memory у ИИ-агента.

Перед каждым ходом в модель уходит хвост длиной «Размер окна» (по умолчанию 10, допустимо от 1 до 200). Всё, что старше, отбрасывается — и отбрасывается насовсем: после хода агент сохраняет обрезанный хвост плюс новый раунд, так что старые сообщения исчезают и из хранилища. Это не «показать модели N сообщений из полного архива».

В окно попадают все сообщения раунда, а не только реплики человека и бота: вызов инструмента и его результат — тоже сообщения. У агента с инструментами окно в 10 сообщений может вмещать один-два обмена.

Поле «Область» решает, сколько живёт запись: thread — история переживает сообщения чата и лежит в базе; session — только текущий запуск; call — пустая при каждом обращении.

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

  • Считать окно обменами. Десять сообщений — это в лучшем случае пять пар «вопрос — ответ», а с инструментами заметно меньше.
  • Подключить агенту и окно, и ноду История чата. Диалог приедет в модель дважды: один раз из памяти, второй раз как входное значение.
  • Нода на холсте, но не связана с агентом. Связь рисуется от выхода Memory к порту Memory агента; без неё нода не делает ничего.
  • Ждать историю там, где нет треда чата. При запуске по вебхуку, по расписанию или кнопкой «Запустить» треда нет, и thread-память привязывается к идентификатору запуска — то есть ведёт себя как session.

Входы

ПортПроводДанныеПримечания
Set historymessages_inИсполнение + данныеexecute_datamessages

показывается, когда overwrite_from_input = true

Выходы

ПортПроводДанныеПримечания
MemoryoutputПамятьlink_memory
Messagesmessages_outДанныеdatamessages

показывается, когда expose_messages_output = true

Настройки

ПолеТипПо умолчаниюОписание
Выход сообщенийexpose_messages_outputbooleanfalse

Показать data-выход, отдающий текущие сохранённые сообщения.

Задать историю из входаoverwrite_from_inputbooleanfalse

Показать вход Messages (ED), срабатывание которого полностью перезаписывает сохранённую историю, плюс exec-выход «History set», срабатывающий после записи истории.

Областьscopestringthread

thread: сохраняется между сообщениями чата · session: живёт одно выполнение · call: заново при каждом вызове

Варианты: thread — Тред, call — Вызов, session — Сессия

Размер окнаwindow_sizeinteger10

Число последних сообщений для включения

Общие поля

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

  • expose_error_output — Если включено, показывает выход выполнения для подключения нод, которые запускаются при сбое этого шага.

Готовые примеры с этой нодой