Skip to main content

Сессии: простое объяснение

Сессия в Велес — это один непрерывный рабочий диалог. Подобно переписке в мессенджере с человеком на конкретную тему.

Сессия в рабочей папке

Новый чат можно создать из рабочей папки. В этом случае Велес сохраняет связь по устойчивому идентификатору, а не по изменяемому названию или пути. Переименование папки не разрывает связь. Такой чат остаётся в общем списке сессий и одновременно показывается внутри папки. Связь задаётся только при создании: существующий чат нельзя назначить папке или перенести между папками. Обычное создание нового чата не наследует папку предыдущего диалога. Если связанный чат скрыт, его сохранённая история остаётся связанной с папкой до физического удаления, а чистый диалог на освободившемся месте эту связь не наследует. Каскадное удаление папки отличается от обычного удаления сессии: после усиленного подтверждения оно отменяет активную работу и физически удаляет все связанные истории и состояния проектов независимо от настройки скрытия сессий.

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

Когда вы начинаете общаться с ботом, создается новая сессия. Все ваши сообщения и ответы Велеса сохраняются в ней.
  • Изоляция: Каждая сессия хранит свой контекст. Велес помнит, о чем вы говорили в рамках этой сессии.
  • Архивация: Когда сессия становится слишком большой, Велес может автоматически сжать или отправить её в архив, оставив краткую выжимку, чтобы не перегружать контекст и работать быстро.
  • Новая сессия: Вы можете начать диалог с чистого листа, отправив команду пересоздания сессии (например, /new или /reset в зависимости от интерфейса).
В Nerve кнопка Новый находится в верхней панели слева от показателя использования и сначала спрашивает, с какой личностью начать новый диалог. В окне показаны три личности с самой недавней активностью, а остальные собраны в списке Другие личности. Последняя использованная личность выбрана заранее. Автоматический подбор доступен в свёрнутой дополнительной строке и не мешает ручному выбору. После подтверждения создаётся чистая история именно для выбранной верхнеуровневой личности, а рабочая область переключается к ней по тем же правилам сохранения несохранённых файлов, что и обычное переключение между личностями.

Сессии и личности

Обычная корневая сессия личности имеет ключ personality:<id>:main. Например, personality:main:main относится к основной личности, а personality:reviewer:main — к личности ревьюера. Если один диалог личности уже выполняется, Nerve может открыть второй диалог с той же личностью параллельно. Первый диалог продолжает работать в фоне, а новый получает собственный живой контекст выполнения. В истории оба диалога остаются обычными диалогами той же личности. Дочерние технические сессии сохраняют тот же id личности: personality:<id>:subagent:<x> и personality:<id>:cron:<x>. Личность задаёт SOUL.md для ответа модели и может подключать свои навыки из personalities/<id>/skills, но память, workspace-файлы и cron остаются общими для workspace. Подробнее: Личности.

Зачем нужны сессии?

Если писать всё в одну бесконечную переписку:
  1. Запросы к нейросети станут слишком дорогими.
  2. Велес начнёт путаться в старых и новых вводных.
Поэтому, когда задача решена, лучше переходить к новой сессии. Главные выводы Велес может сохранить в долгосрочной памяти.

Возврат к прошлым сессиям

Даже если сессия закрыта и заархивирована, вы можете попросить Велеса вспомнить, о чем вы говорили пару дней назад. Он воспользуется своими инструментами (поиском по истории), найдет старую сессию и прочитает её содержимое.

Вкладки «Велес» и «Тех.»

В списке сессий в Nerve есть две вкладки:
  • Велес показывает обычные диалоги Велеса и архивные записи корневых диалогов.
  • Тех. показывает служебные сессии, которые скрываются из основного списка: саб-агентов, cron-задачи и их запуски, служебные каналы агента вроде Telegram, а также task-сессии.
Эти вкладки не смешивают списки: если нужна обычная история общения, оставайтесь на «Велес»; если нужно посмотреть внутренние рабочие сессии, переключитесь на «Тех.». Список сессий показывает историю и текущий выбранный диалог. Статус выполнения живых запусков отображается отдельно в панели «Личности». На мобильной ширине список сессий открывается отдельной кнопкой в верхней панели непосредственно слева от Чат. Касание строки сессии считается переходом в диалог: выпадающая панель закрывается, интерфейс возвращается во вкладку чата и показывает выбранную историю. Название обычной сессии Велеса создаётся автоматически по содержанию диалога и может уточняться по мере развития разговора. Велес старается писать название на языке самого диалога и описывать тему, а не помечать язык вроде «русский чат» или «English discussion». Обновление выполняется после завершения ответа в фоне, поэтому в интерфейсе новое название может появиться не сразу, а через несколько секунд после обновления списка сессий. Если название изменили вручную, Велес сохраняет этот вариант и больше не заменяет его автоматически. В меню ⋮ у строки сессии доступны действия для ручного переименования, удаления и копирования отладочных данных. Под заголовком источник и время последнего обновления остаются на одной строке, но представлены отдельными элементами, чтобы вспомогательные средства могли различать их. При переименовании название редактируется прямо в строке, а сохранённый вариант помечается как ручной. Команда копирования кладёт в буфер компактный список технических идентификаторов: ключ сессии, исходный и корневой ключи, идентификаторы беседы и сессии, а также путь к исходной записи, если он есть. Удаление использует метод шлюза sessions.delete, поэтому фактическое поведение зависит от tools.sessionMemory.deleteBehavior: сессия может быть скрыта из списков или удалена физически.