Урок 8: Управление сессиями
Tutorial 8: Session Management — easy-to-understand guide based on official docs
Урок 8: Управление сессиями
Когда-нибудь закрывали терминал и теряли отличный разговор с Hermes? Или хотели продолжить с того места, где остановились вчера, разбирая надоедливый баг? Хорошие новости: Hermes всё помнит. Каждый разговор автоматически сохраняется как сессия, и в этом уроке мы покажем, как использовать эту суперспособность.
Как работают сессии
Представьте сессию как лог чата с именем-ярлыком. Общаетесь ли вы с Hermes через CLI, Telegram, Discord, Slack, WhatsApp или любую из 20+ поддерживаемых платформ — ваш разговор сохраняется с полной историей.
Всё это хранится в SQLite-базе по адресу ~/.hermes/state.db. Для каждой сессии Hermes отслеживает:
- Уникальное, читаемое название
- Какую платформу вы использовали (CLI, Telegram и т.д.)
- Модель и конфигурацию
- Полную историю сообщений с вызовами инструментов и результатами
- Количество токенов и временные метки
- ID родительской сессии (для случаев, когда длинные чаты разбиваются)
Что на самом деле попадает в контекст
Вот распространённое заблуждение: Hermes не перечитывает каждый файл или изображение, которые вы когда-либо отправляли. Медиа обрабатывается по ходу разговора. Если вы отправили картинку и попросили сделать мем, Hermes может проанализировать её один раз через зрение, а в дальнейших ходах будет передаваться только текстовое описание или локальный путь — а не сырой JPEG.
Настоящие пожиратели контекста — это объёмные тексты: вставленные транскрипты, гигантские логи, огромные диффы. В документации есть отличный совет: предпочитайте саммари, пути к файлам и сфокусированные фрагменты вместо копирования больших артефактов в чат.
Возобновление разговоров из CLI
Вот где происходит магия. Рассмотрим три способа продолжить с того места, где вы остановились.
1. Продолжить последнюю сессию:
hermes --continue
# или короче
hermes -c
Эта команда берёт вашу самую свежую CLI-сессию и загружает полную историю.
2. Продолжение по терминалу (это новое и крутое):
Голый -c теперь привязан к терминалу. Hermes сохраняет небольшой файл-«хлебную крошку» для каждой терминальной сессии. Так что если у вас две панели терминала рядом, каждая возобновляет свой собственный разговор, а не борется за один и тот же. Больше никаких пересечений между панелями!
Если «хлебной крошки» нет (первый запуск или ей больше 30 дней), используется последняя сессия. Можно отключить это поведение через session.terminal_continue: false в config.yaml.
3. Возобновление по имени:
Давайте сессиям осмысленные названия — и можно возвращаться в любой момент:
hermes -c "my project"
Если есть варианты с продолжением рода, например «my project», «my project #2» и т.д., Hermes автоматически берёт самую свежую.
Возобновление конкретной сессии
Нужно вернуться к определённому разговору? Используйте ID сессии:
hermes --resume 20250305_091523_a1b2c3d4
# или по названию
hermes --resume "refactoring auth"
# или просто последнюю
hermes --resume latest
Про-советы из документации
/compress— используйте, когда сессия становится слишком длинной. Это уменьшает активный контекст (но учтите: это не удаление ради конфиденциальности)./new payments-refactor— сразу начинайте новую ветку с названием, чтобы потом легко найти её через/resume.hermes sessions prune— только когда хотите удалить старые завершённые сессии.hermes sessions optimize— еслиstate.dbпросто разрослась, эта команда объединяет поисковые индексы и наводит порядок, не трогая ваши данные. Начните с неё!
Подводим итоги
Управление сессиями — это ваша суперспособность памяти. Жонглируете ли вы несколькими проектами в разных терминалах или возвращаетесь к недельной давности отладке — Hermes всё сохранит. Главный вывод: используйте /compress для длинных чатов, называйте сессии через /new <имя> и позвольте привязанному к терминалу -c держать ваши панели в порядке.
Приятного общения!
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/sessions