Обзор развертывания Hermes Agent на сервере¶
Предварительные требования¶
Для успешного развертывания приложения требуются следующие системные ресурсы и параметры:
-
Операционная система: Linux (Ubuntu, Debian, Fedora, Arch), macOS или Android (Termux).
-
Права доступа: Права суперпользователя (
sudo) для установки системных пакетов и конфигурации путей в/usr/local/bin. -
Сетевые требования: Наличие активного интернет-соединения для загрузки репозитория, зависимостей Python (через
uv), Node.js и браузерных движков. -
Зависимости среды:
-
Git (для клонирования репозитория).
-
Python версии
3.11–3.13. -
Наличие компилятора C++ (
gcc,g++илиclang).
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | hermes |
| Домен | hostkey.in |
| Полный шаблон | hermes{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Приложение использует разделение между исполняемым кодом и пользовательскими данными:
-
Директория приложения (по умолчанию):
/usr/local/lib/hermes-agent(для системной установки) или~/.hermes/hermes-agent(для пользовательской). -
Директория данных:
$HERMES_HOME(по умолчанию~/.hermes), содержит: -
cron/: задачи по расписанию. -
sessions/: данные сессий. -
logs/: журналы работы приложения и шлюза. -
pairing/: данные сопряжения устройств. -
hooks/: пользовательские хуки. -
image_cache/: кэш изображений. -
audio_cache/: кэш аудиофайлов. -
memories/: долгосрочная память агента. -
skills/: установленные навыки (skills).
Процесс установки приложения¶
Развертывание выполняется с помощью установочного скрипта, который выполняет следующие этапы:
-
Подготовка окружения: Установка системных зависимостей (
build-essential,git,curl) и проверка наличия компиляторов C++. -
Управление версиями Python: Использование инструмента
uvдля установки изолированной версии Python (версия3.11). -
Клонирование репозитория: Загрузка исходного кода из GitHub в целевую директорию.
-
Создание виртуального окружения: Формирование изолированной среды Python (
venv) внутри директории приложения. -
Установка зависимостей Python:
-
Использование
uv syncдля установки пакетов с проверкой контрольных сумм (hash-verified). -
Установка расширенных возможностей через дополнительные пакеты (extras), включая поддержку голосовых функций и распознавания речи.
-
Управление Node.js: Автоматическая загрузка и установка управляемой версии Node.js (версия
26) для обеспечения работы инструментов автоматизации браузера. -
Настройка путей: Создание исполняемых файлов-заглушек (
shim) в системных директориях, таких как/usr/local/binили~/.local/bin.
Права доступа и безопасность¶
-
Конфиденциальные данные: Файл
.env, содержащий API-ключи и токены, защищается правами доступа0600(чтение и запись разрешено только владельцу). -
Изоляция окружения: Все зависимости Python устанавливаются в изолированное виртуальное окружение, чтобы избежать конфликтов с системными библиотеками.
-
Безопасность браузера: Для предотвращения проблем с песочницей (sandbox) на Linux, исполняемый файл
chrome-sandboxполучает права4755(root:root).
Базы данных¶
Приложение не использует внешнюю базу данных в стандартной конфигурации, а хранит состояние и сессии локально в директории $HERMES_HOME/sessions/.
Контейнеры Docker и их запуск¶
В рамках данного процесса развертывания использование контейнеров Docker не предусмотрено; приложение устанавливается непосредственно в операционную систему для обеспечения прямого доступа к системным ресурсам (микрофон, браузер, графическая подсистема).
Кастомные скрипты и дополнительные настройки¶
-
Установочный скрипт (
install.sh): Основной механизм развертывания, отвечающий за определение ОС, управление версиями Python/Node.js и настройку путей. -
Скрипт синхронизации навыков (
skills_sync.py): Используется для загрузки и активации предустановленных наборов навыков в директорию~/.hermes/skills/. -
Настройка окружения браузера: Скрипт определяет системный браузер и записывает путь к нему в
.env, чтобы инструменты автоматизации могли использовать существующее приложение.
Инструкция по обновлению приложения¶
Обновление выполняется путем запуска команды: hermes update
Процесс обновления включает:
-
Загрузку новых изменений из репозитория через
git. -
Автоматическое сохранение локальных изменений (stashing) для предотвращения потери пользовательских правок.
-
Обновление зависимостей Python и Node.js в виртуальном окружении.
Расположение конфигурационных файлов и данных¶
| Тип файла | Путь по умолчанию | Описание |
|---|---|---|
| Основной конфиг | ~/.hermes/config.yaml | Общие настройки приложения |
| Секреты (API ключи) | ~/.hermes/.env | Токены и учетные данные |
| Личность агента | ~/.hermes/SOUL.md | Файл с описанием поведения агента |
Доступные порты для подключения¶
Приложение работает преимущественно в режиме CLI (интерфейс командной строки) или через фоновый процесс шлюза (gateway). Прямые сетевые порты не открываются, если не настроен дополнительный сервис связи.
Запуск, остановка приложения¶
Управление приложением осуществляется через CLI-команды:
-
Запуск сессии:
hermes -
Настройка параметров:
hermes setup -
Запуск шлюза (фоновый режим):
hermes gateway start(или установка как службы черезhermes gateway install) -
Остановка шлюза:
hermes gateway stop
Прокси серверы¶
Для работы инструментов автоматизации браузера используется встроенный движок Chromium, который управляется через Playwright. При необходимости может быть настроено использование системного браузера через переменную AGENT_BROWSER_EXECUTABLE_PATH.