Самостоятельный хостинг Hermes Agent на VPS
Разверните Hermes Agent от Nous Research на своём VPS. Создайте изолированного пользователя, установите одной командой, выберите LLM-провайдера, подключите Telegram и запустите как systemd-сервис.
Hermes Agent -- один из тех проектов, которые развиваются стремительно. С момента запуска в феврале 2026 года Nous Research выпустили девять релизов за семь недель. Версия v0.9.0 вышла 13 апреля, и это совсем другой уровень: локальная веб-панель для управления настройками и сессиями из браузера, 16 платформ обмена сообщениями (включая iMessage и WeChat), нативная поддержка Android/Termux, встроенные команды бэкапа и импорта, быстрый режим для низколатентного инференса и расширяемый контекстный движок. Проект за неполных два месяца прошёл путь от «интересного эксперимента» до «продакшен-готового персонального агента».
Запуск на ноутбуке годится для быстрых экспериментов. Но агент, который засыпает при закрытии крышки, доступен только с клавиатуры и теряет рабочее пространство при перезагрузке -- не очень полезен в долгосрочной перспективе. VPS решает все три проблемы: агент работает 24/7, вы подключаетесь через любую из 16 платформ с телефона, а его память и навыки сохраняются между сессиями.
Настройка простая. Поднимаете VM, создаёте непривилегированного пользователя для изоляции, устанавливаете Hermes, выбираете модель и шлюз, оборачиваете всё в systemd-сервис. На этом всё.
Самостоятельный хостинг AI-агентов на VPS
Зачем хостить самому именно сейчас? Урок привязки к вендору
4 апреля 2026 года Anthropic отрезала сторонние AI-агенты от подписок Claude Pro и Max. До этого дня инструменты вроде OpenClaw позволяли гонять тяжёлые агентные нагрузки за фиксированную месячную плату. В один день эти пользователи получили ошибку 400 и уведомление о миграции. Оставшиеся варианты: перейти на потокенную тарификацию через API (потенциально в 10 раз дороже для активных пользователей), купить корпоративные пакеты использования или перейти на Claude Code Channels от Anthropic -- собственный конкурент OpenClaw, запущенный в том же месяце.
Закономерность очевидна. Строишь рабочий процесс на платформе одного провайдера -- и одно изменение политики может всё сломать. Self-hosted агенты вроде Hermes полностью обходят эту ловушку. Hermes не привязан к провайдерам: из коробки поддерживает 15+ инференс-бэкендов, от OpenRouter до Nous Portal и локального сервера Ollama. Если провайдер меняет условия или цены, вы меняете его одной командой и продолжаете работать. Ваши воспоминания, навыки и сессии остаются на вашем сервере независимо от того, какая LLM стоит за ними.
Что такое Hermes Agent и зачем его хостить самому?
Hermes Agent -- AI-агент с открытым исходным кодом (лицензия MIT) от Nous Research. Он подключается к LLM-провайдерам, выполняет команды в терминале, просматривает веб и запоминает полученную информацию между сессиями. Создаёт переиспользуемые навыки из выполненных задач и поддерживает 16 шлюзов обмена сообщениями: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, iMessage, WeChat, WeCom, Email, SMS, DingTalk, Feishu, Mattermost, Home Assistant и Webhooks.
Самостоятельный хостинг означает, что ваши промпты и данные остаются на вашем сервере. Ни одна сторонняя платформа не видит ваших разговоров. Агент работает непрерывно, накапливает контекст со временем и стоит только VPS-хостинг плюс LLM API-вызовы.
Что нужно Hermes Agent для работы на VPS?
Linux-сервер с установленным Git. Это единственная предпосылка. Установщик сам подтянет Python 3.11+, Node.js v22, ripgrep и ffmpeg. По железу: 2 GB RAM и 10 GB диска -- минимум. 4 GB RAM лучше, если планируете несколько сессий шлюза или использование веб-панели параллельно с агентом.
| Требование | Минимум | Рекомендуется |
|---|---|---|
| ОС | Ubuntu 22.04 / Debian 12 | Ubuntu 24.04 |
| RAM | 2 GB | 4 GB+ |
| Диск | 10 GB свободно | 20 GB+ |
| CPU | 1 vCPU | 2+ vCPU |
Предварительные требования
Перед установкой Hermes Agent настройте непривилегированного пользователя и базовый файрвол. Если у вас уже защищённый VPS, переходите к разделу установки.
Создание выделенного пользователя
Подключитесь к серверу по SSH как root и создайте пользователя для Hermes:
adduser hermes --disabled-password --gecos ""
usermod -aG sudo hermes
Дайте этому пользователю беспарольный sudo (нужен для управления сервисами):
echo "hermes ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/hermes
chmod 440 /etc/sudoers.d/hermes
Скопируйте свой SSH-ключ, чтобы можно было входить под этим пользователем:
mkdir -p /home/hermes/.ssh
cp ~/.ssh/authorized_keys /home/hermes/.ssh/
chown -R hermes:hermes /home/hermes/.ssh
chmod 700 /home/hermes/.ssh
chmod 600 /home/hermes/.ssh/authorized_keys
С этого момента работаем под пользователем hermes:
su - hermes
Настройка файрвола
Установите UFW и разрешите только SSH:
sudo apt-get install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw --force enable
Проверьте активные правила:
sudo ufw status verbose
В выводе должно быть видно, что SSH разрешён, а весь остальной входящий трафик запрещён. Шлюз Hermes использует исходящие подключения к API Telegram, поэтому открывать входящие порты для обмена сообщениями не нужно.
Как установить Hermes Agent на Ubuntu?
Одна команда. Запускайте под пользователем hermes, не под root.
Установка одной командой
Virtua.Cloud поддерживает готовый скрипт установки, который настраивает Hermes Agent с systemd-персистентностью за один проход:
curl -fsSL https://virtua.sh/i/hermes-ssh | bash
Скрипт выполняет всё, что описано в следующих разделах: установку Hermes и создание systemd-сервиса. После завершения переходите сразу к настройке LLM-провайдера.
Ручная установка
Если предпочитаете устанавливать пошагово, скачайте скрипт установки и проверьте его перед запуском:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh -o /tmp/hermes-install.sh
less /tmp/hermes-install.sh
Скрипт устанавливает Python 3.11+ через uv, Node.js v22, ripgrep, ffmpeg и CLI hermes. Когда убедитесь, что всё в порядке:
bash /tmp/hermes-install.sh
Перезагрузите оболочку, чтобы подхватить новую команду hermes:
source ~/.bashrc
Проверьте установленную версию:
hermes --version
Ожидаемый вывод:
Hermes Agent v0.9.0 (2026.4.13)
Project: /home/hermes/.hermes/hermes-agent
Python: 3.11.15
...
Запустите диагностику для проверки отсутствующих зависимостей:
hermes doctor
Ищите зелёные галочки. Предупреждения о ненастроенных API-ключах на этом этапе ожидаемы. Красные пункты по Python или Git нужно исправить, прежде чем продолжать.
Как настроить LLM-провайдера?
Hermes Agent не включает модель. Вы подключаете его к API провайдера и платите за токены. Самый быстрый способ всё настроить -- мастер настройки:
hermes setup
Мастер проведёт вас через выбор провайдера, ввод API-ключа, включение инструментов и настройку шлюза в одной интерактивной сессии. Если предпочитаете настраивать каждый элемент вручную, читайте дальше. Провайдера можно сменить в любое время командой hermes model.
Вариант 1: OpenRouter (рекомендуется для начала)
Создайте аккаунт на openrouter.ai и сгенерируйте API-ключ.
Установщик создал ~/.hermes/.env с полным шаблоном. Сначала ограничьте права доступа:
chmod 600 ~/.hermes/.env
Откройте файл и укажите свой API-ключ в строке OPENROUTER_API_KEY=:
nano ~/.hermes/.env
Найдите строку OPENROUTER_API_KEY= и добавьте свой ключ после знака =. Сохраните и выйдите (Ctrl+X, затем Y, затем Enter).
Установите модель по умолчанию:
hermes config set model.provider openrouter
hermes config set model.default anthropic/claude-sonnet-4
Убедитесь, что файл недоступен другим пользователям:
ls -la ~/.hermes/.env
Права должны показывать -rw------- (600). Только пользователь hermes может читать этот файл.
Вариант 2: Nous Portal
Nous Research запускает собственный инференс-портал с 400+ моделями. Если хотите остаться в экосистеме Nous:
hermes config set model.provider nous
Команда hermes model проведёт вас через аутентификацию.
Вариант 3: Пользовательский OpenAI-совместимый эндпоинт
Если вы запускаете свой инференс-сервер (Ollama, vLLM, llama.cpp) или используете другого провайдера:
echo 'OPENAI_BASE_URL=http://localhost:11434/v1' >> ~/.hermes/.env
echo 'OPENAI_API_KEY=ollama' >> ~/.hermes/.env
echo 'LLM_MODEL=llama3.1:70b' >> ~/.hermes/.env
Сравнение LLM-провайдеров
| Провайдер | Переменная окружения | Модель оплаты | Примечания |
|---|---|---|---|
| OpenRouter | OPENROUTER_API_KEY |
За токен, зависит от модели (цены) | 200+ моделей, один ключ |
| Nous Portal | через hermes model |
За токен (цены) | 400+ моделей, нативная интеграция |
| Anthropic | ANTHROPIC_API_KEY |
За токен (цены) | Прямой доступ к Claude |
| Google AI Studio | GOOGLE_API_KEY |
За токен (цены) | Модели Gemini, нативная поддержка с v0.8.0 |
| xAI (Grok) | XAI_API_KEY |
За токен (цены) | Модели Grok, нативная поддержка с v0.9.0 |
| Hugging Face | HF_TOKEN |
За токен (цены) | Полный набор моделей |
| Ollama (локально) | OPENAI_BASE_URL + OPENAI_API_KEY |
Бесплатно (свой хостинг) | Нужен GPU VPS для нормальной скорости |
| vLLM | OPENAI_BASE_URL + OPENAI_API_KEY |
Бесплатно (свой хостинг) | Требуется GPU |
Автоматическое переключение между провайдерами встроено с версии v0.6.0. Можно задать цепочку провайдеров по приоритету: если один упадёт, агент автоматически переключится на следующий.
Проверьте подключение к LLM:
hermes -m "What is 2+2? Reply with just the number."
Если получили ответ, провайдер настроен правильно. Если видите ошибку аутентификации, перепроверьте API-ключ в ~/.hermes/.env.
Как настроить режим подтверждения?
В Hermes Agent есть встроенная система подтверждений, которая спрашивает разрешение перед выполнением потенциально опасных команд. На сервере оставьте её включённой:
hermes config set approval_mode ask
Три режима:
- ask: Спрашивает перед любой командой, которая модифицирует файлы, устанавливает пакеты или обращается к сети. Используйте этот режим. Начиная с v0.8.0, Telegram и Slack показывают нативные кнопки подтверждения вместо того, чтобы требовать набирать ответ.
- smart: AI-модель оценивает риск и спрашивает только для действительно опасных команд. Быстрее, но полагается на суждение AI.
- off: Без проверок. Каждая команда выполняется сразу. Не используйте на сервере.
Как подключить Hermes Agent к Telegram?
Шлюз обмена сообщениями позволяет общаться с Hermes с телефона. Telegram -- самый распространённый вариант. Шлюз устанавливает исходящие подключения к API Telegram, поэтому открывать входящие порты не нужно.
Шаг 1: Создание Telegram-бота
Откройте Telegram и напишите @BotFather. Отправьте следующие команды:
/newbot- Введите имя для бота (например, "My Hermes Agent")
- Введите юзернейм (должен заканчиваться на
bot, например,myhermes_agent_bot)
BotFather ответит токеном бота. Он выглядит как 7123456789:AAHx.... Скопируйте его.
Шаг 2: Получение вашего Telegram user ID
Напишите @userinfobot в Telegram. Бот ответит вашим числовым user ID. Скопируйте это число.
Шаг 3: Настройка шлюза
Добавьте токен бота и ваш user ID в файл окружения:
echo 'TELEGRAM_BOT_TOKEN=7123456789:AAHxYourTokenHere' >> ~/.hermes/.env
echo 'TELEGRAM_ALLOWED_USERS=your_numeric_user_id' >> ~/.hermes/.env
Переменная TELEGRAM_ALLOWED_USERS -- контроль безопасности. Только user ID из этого списка могут взаимодействовать с ботом. Без неё кто угодно, нашедший вашего бота, сможет отправлять ему команды. Несколько ID разделяются запятыми.
Шаг 4: Тестирование шлюза
Запустите шлюз в foreground-режиме:
hermes gateway
Отправьте сообщение боту в Telegram. Сообщение появится в терминале, а ответ вернётся обратно. Нажмите Ctrl+C, чтобы остановить, когда убедитесь, что всё работает.
Если бот не отвечает, проверьте:
- Токен бота правильно указан в
~/.hermes/.env - Ваш user ID есть в
TELEGRAM_ALLOWED_USERS - VPS может достучаться до
api.telegram.orgна порту 443 (исходящий HTTPS)
Hermes теперь поддерживает 16 платформ. Помимо Telegram: Discord, Slack, WhatsApp, Signal, Matrix, iMessage (через BlueBubbles), WeChat, WeCom, Email, SMS, DingTalk, Feishu/Lark, Mattermost, Home Assistant и Webhooks. Запустите hermes gateway setup для интерактивного мастера настройки любой из них.
Как запустить Hermes Agent как systemd-сервис?
Запуск hermes gateway в терминальной сессии означает, что он остановится при отключении. Пользовательский systemd-сервис держит шлюз запущенным после выхода и автоматически перезапускает его при сбое или перезагрузке сервера.
Установка сервиса
В Hermes есть встроенная команда:
hermes gateway install
Она создаёт файл сервиса в ~/.config/systemd/user/hermes-gateway.service и автоматически включает lingering. Lingering позволяет пользовательским сервисам работать после выхода из SSH.
Запустите сервис и включите автозагрузку:
systemctl --user enable --now hermes-gateway
Проверьте статус сервиса:
systemctl --user status hermes-gateway
Ищите Active: active (running) в выводе. Если показывает failed, смотрите логи.
Просмотр логов
Просмотр логов шлюза в реальном времени:
journalctl --user -u hermes-gateway -f
Нажмите Ctrl+C для остановки. В логах шлюза отображается каждое входящее сообщение, вызов LLM и выполнение инструментов.
Настройка рабочего каталога
По умолчанию шлюз использует домашний каталог как рабочее пространство. Задайте выделенный каталог для проектов:
echo 'MESSAGING_CWD=/home/hermes/projects' >> ~/.hermes/.env
mkdir -p /home/hermes/projects
Перезапустите сервис для применения:
systemctl --user restart hermes-gateway
Управление из браузера
С версии v0.9.0 Hermes поставляется с локальной веб-панелью. Когда шлюз запущен, откройте её командой:
hermes dashboard
Запускается интерфейс в браузере, где можно управлять настройками, просматривать сессии и навыки, настраивать шлюзы без использования терминала. На VPS можно пробросить порт панели через SSH-туннель для доступа с локальной машины.
Как сделать резервную копию данных Hermes Agent?
Hermes хранит всё своё состояние в ~/.hermes/: память, выученные навыки, историю сессий, конфигурацию, cron-задачи и персону агента. Потеря означает, что агент забудет всё.
С версии v0.9.0 в Hermes есть встроенные команды бэкапа и восстановления:
hermes backup
Создаётся снимок с временной меткой всего каталога ~/.hermes/. Для восстановления на том же сервере или миграции на новый:
hermes import /path/to/backup.tar.gz
Для автоматических ежедневных бэкапов запланируйте через cron:
(crontab -l 2>/dev/null; echo "0 3 * * * /home/hermes/.local/bin/hermes backup") | crontab -
Для бэкапов за пределы сервера используйте rsync для копирования каталога бэкапов на другую машину или в объектное хранилище. Хранить бэкапы только на том же VPS -- не защита от отказа диска.
Как обновить Hermes Agent?
В Hermes Agent есть встроенная команда обновления. Перед обновлением сделайте резервную копию:
hermes backup
hermes update
Проверьте новую версию:
hermes --version
Проверьте, нужны ли изменения в конфигурации после обновления:
hermes config migrate
hermes doctor
config migrate добавляет новые параметры конфигурации со значениями по умолчанию. hermes doctor проверяет, что всё работает.
Перезапустите сервис шлюза для запуска новой версии:
systemctl --user restart hermes-gateway
systemctl --user status hermes-gateway
Если что-то сломалось после обновления, восстановите из резервной копии:
systemctl --user stop hermes-gateway
hermes import /path/to/backup.tar.gz
systemctl --user start hermes-gateway
Чеклист по усилению безопасности
AI-агент на VPS, выполняющий команды в терминале, требует внимания к безопасности. Вот что уже настроено в этом руководстве и несколько дополнительных шагов.
Уже настроено в этом руководстве:
- Непривилегированный пользователь (
hermes) с выделенным домашним каталогом - Файрвол UFW, запрещающий весь входящий трафик кроме SSH
- API-ключи в
~/.hermes/.envс правами600 TELEGRAM_ALLOWED_USERSограничивает доступ к боту вашим user IDapproval_mode: askтребует подтверждение для опасных команд
Дополнительное усиление:
Периодически проверяйте навыки, выученные агентом:
ls -la ~/.hermes/skills/
Навыки -- это скрипты, которые агент пишет и переиспользует. Проверяйте их так же, как любой код, запускаемый на вашем сервере.
Мониторьте логи шлюза на предмет неожиданных пользователей или необычной активности:
journalctl --user -u hermes-gateway --since "1 hour ago" --no-pager
Hermes усиливал безопасность с каждым релизом: блокировка утечки секретов с v0.7.0, MCP OAuth 2.1 с PKCE и защита от SSRF в v0.8.0, а также предотвращение path traversal, нейтрализация shell-инъекций и валидация Twilio-вебхуков в v0.9.0. Обновляйте установку, чтобы пользоваться этими защитами.
Устранение неполадок
С версии v0.9.0 можно выполнить /debug в любой чат-сессии или hermes debug share в терминале, чтобы сгенерировать диагностический отчёт. Это самый быстрый способ выявить проблемы.
Шлюз не запускается:
journalctl --user -u hermes-gateway -n 50 --no-pager
Частые причины: невалидный токен бота, отсутствующий API-ключ или проблемы с сетью.
Telegram-бот не отвечает:
Проверьте токен бота и список допустимых пользователей:
grep TELEGRAM ~/.hermes/.env
Проверьте исходящее подключение:
curl -s https://api.telegram.org/bot<YOUR_TOKEN>/getMe
Валидный ответ с информацией о боте подтверждает работоспособность токена и сети.
Команда hermes не найдена после установки:
source ~/.bashrc
Если по-прежнему не работает, проверьте, есть ли ~/.local/bin в PATH:
echo $PATH | tr ':' '\n' | grep local
Высокое потребление памяти:
Проверьте, что потребляет ресурсы:
top -bn1 | head -20
Если агент порождает долгоживущие процессы, снизьте нагрузку или обновите VPS.
Сколько это стоит?
Самостоятельный хостинг Hermes Agent на VPS стоит сервер плюс использование LLM API. Две составляющие затрат:
- Хостинг VPS: VPS с 2+ vCPU и 4 GB RAM. Актуальные цены смотрите на странице VPS-тарифов Virtua.Cloud.
- Вызовы LLM API: Все поддерживаемые провайдеры тарифицируют по токенам. Ваши ежемесячные расходы зависят от выбранной модели и частоты использования. Актуальные тарифы смотрите на странице цен вашего провайдера.
Реальная экономия не только финансовая. Вы владеете данными своего агента, выбираете любого провайдера и ни одно изменение политики не может отключить вас за одну ночь.
Авторское право 2026 Virtua.Cloud. Все права защищены. Данный контент является оригинальным произведением команды Virtua.Cloud. Воспроизведение, повторная публикация или распространение без письменного разрешения запрещены.
Готовы попробовать?
Запускайте ИИ-агентов на собственном VPS. →