Перейти к содержанию

Обзор развертывания 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).

Процесс установки приложения

Развертывание выполняется с помощью установочного скрипта, который выполняет следующие этапы:

  1. Подготовка окружения: Установка системных зависимостей (build-essential, git, curl) и проверка наличия компиляторов C++.

  2. Управление версиями Python: Использование инструмента uv для установки изолированной версии Python (версия 3.11).

  3. Клонирование репозитория: Загрузка исходного кода из GitHub в целевую директорию.

  4. Создание виртуального окружения: Формирование изолированной среды Python (venv) внутри директории приложения.

  5. Установка зависимостей Python:

  6. Использование uv sync для установки пакетов с проверкой контрольных сумм (hash-verified).

  7. Установка расширенных возможностей через дополнительные пакеты (extras), включая поддержку голосовых функций и распознавания речи.

  8. Управление Node.js: Автоматическая загрузка и установка управляемой версии Node.js (версия 26) для обеспечения работы инструментов автоматизации браузера.

  9. Настройка путей: Создание исполняемых файлов-заглушек (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

Процесс обновления включает:

  1. Загрузку новых изменений из репозитория через git.

  2. Автоматическое сохранение локальных изменений (stashing) для предотвращения потери пользовательских правок.

  3. Обновление зависимостей 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.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×