Обновление и удаление

Обновление

Обновите до последней версии одной командой:

hermes update

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

hermes update автоматически обнаруживает новые параметры конфигурации и предлагает их добавить. Если вы пропустили это предложение, вы можете вручную выполнить hermes config check для просмотра отсутствующих параметров, а затем hermes config migrate для их интерактивного добавления.

Что происходит во время обновления

При выполнении hermes update происходят следующие шаги:

  1. Снимок данных связывания (pairing-data) — создаётся облегчённый снимок состояния до обновления (охватывает ~/.hermes/pairing/, правила комментариев Feishu и другие файлы состояния, изменяемые во время выполнения). Восстановление возможно через процесс восстановления снимков, описанный в разделе Снимки и откат, или путём извлечения последнего быстрого zip-снимка, который Hermes записывает рядом с вашим каталогом ~/.hermes/.

  2. Git pull — загружает последний код из ветки main и обновляет подмодули

  3. Установка зависимостей — выполняет uv pip install -e ".[all]" для добавления новых или обновлённых зависимостей

  4. Миграция конфигурации — обнаруживает новые параметры конфигурации, добавленные с момента вашей версии, и предлагает их настроить

  5. Автоматический перезапуск gateway — запущенные gateway обновляются после завершения обновления, чтобы новый код вступил в силу немедленно. Gateway, управляемые службами (systemd на Linux, launchd на macOS), перезапускаются через менеджер служб. Ручные gateway перезапускаются автоматически, когда Hermes может сопоставить запущенный PID с профилем.

Только просмотр: hermes update --check

Хотите узнать, отстаёте ли вы от origin/main перед фактической загрузкой? Выполните hermes update --check — он получает данные, выводит ваш локальный коммит и последний удалённый коммит рядом и завершается с кодом 0, если синхронизированы, или 1, если отстаёте. Никакие файлы не изменяются, gateway не перезапускается. Полезно в скриптах и cron-задачах, которые проверяют «есть ли обновление».

Полное резервное копирование перед обновлением: --backup

Для ценных профилей (продакшен gateway, общие командные установки) вы можете включить полное резервное копирование HERMES_HOME перед загрузкой (конфигурация, аутентификация, сессии, навыки, связывание):

hermes update --backup

Или сделайте это поведением по умолчанию для каждого запуска:

# ~/.hermes/config.yaml
updates:
  pre_update_backup: true

--backup был поведением по умолчанию в ранних сборках, но это добавляло минуты к каждому обновлению в больших окружениях, поэтому теперь он опционален. Облегчённый снимок данных связывания, описанный выше, по-прежнему выполняется безусловно.

Ожидаемый вывод выглядит так:

$ hermes update
Updating Hermes Agent...
📥 Pulling latest code...
Already up to date.  (or: Updating abc1234..def5678)
📦 Updating dependencies...
✅ Dependencies updated
🔍 Checking for new config options...
✅ Config is up to date  (or: Found 2 new options  running migration...)
🔄 Restarting gateways...
✅ Gateway restarted
✅ Hermes Agent updated successfully!

Рекомендуемая проверка после обновления

hermes update выполняет основной путь обновления, но быстрая проверка подтверждает, что всё прошло чисто:

  1. git status --short — если дерево неожиданно грязное, проверьте перед продолжением

  2. hermes doctor — проверяет конфигурацию, зависимости и работоспособность служб

  3. hermes --version — убедитесь, что версия обновилась как ожидалось

  4. Если вы используете gateway: hermes gateway status

  5. Если doctor сообщает о проблемах npm audit: выполните npm audit fix в указанном каталоге

warning Грязное рабочее дерево после обновления Если git status --short показывает неожиданные изменения после hermes update, остановитесь и проверьте их перед продолжением. Обычно это означает, что локальные изменения были повторно применены поверх обновлённого кода, или шаг с зависимостями обновил lock-файлы.

Если ваш терминал отключился во время обновления

hermes update защищает себя от случайной потери терминала:

tail -f ~/.hermes/logs/update.log

Вам больше не нужно оборачивать hermes update в screen или tmux, чтобы пережить отключение терминала.

Проверка текущей версии

hermes version

Сравните с последним релизом на странице релизов GitHub.

Обновление из мессенджеров

Вы также можете обновиться напрямую из Telegram, Discord, Slack, WhatsApp или Teams, отправив:

/update

Это загружает последний код, обновляет зависимости и перезапускает запущенные gateway. Бот ненадолго отключится во время перезапуска (обычно 5–15 секунд), а затем продолжит работу.

Ручное обновление

Если вы установили вручную (не через быстрый установщик):

cd /path/to/hermes-agent
export VIRTUAL_ENV="$(pwd)/venv"

# Pull latest code and submodules
git pull origin main
git submodule update --init --recursive

# Reinstall (picks up new dependencies)
uv pip install -e ".[all]"
uv pip install -e "./tinker-atropos"

# Check for new config options
hermes config check
hermes config migrate   # Interactively add any missing options

Инструкции по откату

Если обновление вызвало проблему, вы можете откатиться до предыдущей версии:

cd /path/to/hermes-agent

# List recent versions
git log --oneline -10

# Roll back to a specific commit
git checkout <commit-hash>
git submodule update --init --recursive
uv pip install -e ".[all]"

# Restart the gateway if running
hermes gateway restart

Чтобы откатиться до конкретного тега релиза:

git checkout v0.6.0
git submodule update --init --recursive
uv pip install -e ".[all]"
Откат может вызвать несовместимость конфигурации, если были добавлены новые параметры. Выполните hermes config check после отката и удалите любые нераспознанные параметры из config.yaml, если возникнут ошибки.

Примечание для пользователей Nix

Если вы установили через Nix flake, обновления управляются через менеджер пакетов Nix:

# Update the flake input
nix flake update hermes-agent

# Or rebuild with the latest
nix profile upgrade hermes-agent

Установки Nix неизменяемы — откат выполняется через систему поколений Nix:

nix profile rollback

См. Nix Setup для подробностей.


Удаление

hermes uninstall

Деинсталлятор даёт вам возможность сохранить ваши конфигурационные файлы (~/.hermes/) для будущей переустановки.

Ручное удаление

rm -f ~/.local/bin/hermes
rm -rf /path/to/hermes-agent
rm -rf ~/.hermes            # Optional — keep if you plan to reinstall
Если вы установили gateway как системную службу, сначала остановите и отключите его:
hermes gateway stop
# Linux: systemctl --user disable hermes-gateway
# macOS: launchctl remove ai.hermes.gateway