Сессии и память
Сессии
Как работают сессии
Каждый разговор с агентом происходит в сессии. Сессии идентифицируются ключами, кодирующими контекст, какой агент, какой канал, какой чат.
Сессии ведут полный транскрипт (только-добавляемый JSONL) всех сообщений, вызовов инструментов и результатов. Этот транскрипт даёт агентам контекст о текущем разговоре.
Ключи сессий
Сессии маршрутизируются автоматически на основе контекста:
| Шаблон | Значение |
|---|---|
agent:main:main |
Основной прямой разговор |
agent:<id>:<channel>:group:<id> |
Групповой чат на конкретном канале |
agent:<id>:<channel>:channel:<id> |
Разговор в канале/комнате |
cron:<jobId> |
Выполнение запланированного задания |
hook:<uuid> |
Выполнение, запущенное вебхуком |
Жизненный цикл сессии
- Ежедневный сброс, сессии автоматически сбрасываются в настраиваемое время (по умолчанию 4 утра местного времени). Это создаёт свежий контекст разговора каждый день, сохраняя при этом историю.
- Истечение по простою, сессии, не имевшие активности в течение настраиваемого периода, могут автоматически сбрасываться.
- Ручной сброс, начните заново в любое время с помощью команды
/newили/reset.
Отслеживание токенов
Сессии отслеживают суммарное использование токенов (входные, выходные, чтение кэша, запись кэша) для мониторинга расходов и управления контекстным окном.
Уплотнение
Что такое уплотнение?
Когда разговор приближается к лимиту контекстного окна модели, Neotask уплотняет его, суммирует старые сообщения в сжатый обзор и начинает новую сессию с этим резюме плюс последними сообщениями.
Как это работает
- Обнаружение, мониторинг использования контекста (по умолчанию триггер: 80% контекстного окна)
- Суммаризация, старые сообщения суммируются в запись уплотнения
- Новая сессия, новая сессия начинается с инжектированным резюме вверху
- Сохранение, старые транскрипты сохраняются для истории, но больше не загружаются в контекст
Конфигурация
- Включено/отключено, переключение автоуплотнения
- Порог, процент контекстного окна, запускающий уплотнение (по умолчанию 80%)
- Минимальное количество сообщений, не уплотнять, если сообщений меньше N
Ручное уплотнение
Вы можете запустить уплотнение вручную в любое время с помощью команды /compact. Это полезно, когда вы хотите сбросить контекст, не теряя важной информации.
Память
Память агента
Каждый агент имеет систему памяти для сохранения важной информации между сессиями:
- MEMORY.md, markdown-файл в рабочем пространстве агента, где хранятся важные факты, предпочтения и контекст
- Директория памяти, дополнительные файлы в
memory/для структурированных знаний
Векторный поиск
Neotask поддерживает поиск по векторному сходству в памяти агента:
- Индексирование, файлы памяти индексируются с использованием эмбеддингов
- Поиск, агенты запрашивают память на естественном языке («Что пользователь говорил о своих предпочтениях в API?»)
- Вспоминание, релевантные воспоминания возвращаются, ранжированные по сходству
Плагин памяти (LanceDB)
Плагин памяти LanceDB обеспечивает расширенное векторное хранилище:
- Постоянная векторная база данных
- Настраиваемый размер чанка и перекрытие
- Эффективный поиск по сходству
- Автоматическое переиндексирование при изменении файлов памяти
Автоматическое вспоминание
При начале сессии релевантные воспоминания могут автоматически вспоминаться и инжектироваться в контекст агента. Это даёт агентам непрерывность между сессиями без загрузки всех историй разговоров.
Сохранение сессий
Все данные сессий хранятся локально:
- Метаданные сессий,
sessions.jsonотслеживает активные сессии, последнюю активность, счётчики токенов и конфигурацию - Транскрипты, отдельные транскрипты сессий хранятся как
.jsonl-файлы - Восстановление, сессии переживают перезапуски Gateway без потери данных
Очистка
- Сессии, к которым не обращались в течение настраиваемого периода (по умолчанию 30 дней), подлежат очистке
- Ручное управление сессиями доступно через UI или API
- Уплотнённые транскрипты архивируются, но могут быть просмотрены