Почему ваш агент до сих пор не работает как надо?
Помните тот момент, когда вы настраивали OpenClaw или наивно пробовали обернуть GPT-4 в бесконечный loop с function calling, надеясь на чудо? Чудо не случилось. Агент уходил в бесконечные рассуждения, съедал лимит токенов на ровном месте, а на реальные задачи просто плевал. Потом появился Hermes Agent — он решил проблему «вечных циклов» в моделях 20-70B. Но одного фреймворка мало. Нужна правильная среда, чтобы агент не тупил и выполнял поручения. Запустить на локальной машине — мило, но держать комп включенным 24/7 ради агента? Слабоумие.
Идея: поднимаем Hermes Agent 4.2 (апрель 2026) на VPS, подключаем NousResearch Hermes 3 70B через llama.cpp с поддержкой FlashAttention, настраиваем инструменты — и получаем автономного цифрового помощника, который работает без перерывов за $20-40 в месяц.
Звучит логично, но есть нюанс: VPS — не домашний ПК. Тут жесткие лимиты по RAM, процессору и диску. Одна ошибка в конфиге — и агент сожрет всю память, а вы получите bill за превышение. Поэтому действуем по плану, без импровизаций.
Проблема: готовые агенты — недоразумение с API
Сервисы вроде ChatGPT Actions или Azure AI Agent Service работают только с облачными LLM. Вы платите за каждый запрос, данные уходят неизвестно куда, а кастомные инструменты — только через жесткую обвязку. Локальные же решения вроде голого llama.cpp без агентного фреймворка — это как собирать ракету из спичек. Hermes Agent 4.2 стал тем самым клеем, который соединяет модель с инструментами, не давая ей уйти в штопор.
Но фреймворк без сервера — труп. VPS с минимум 16GB RAM, SSD и Docker — минимальный порог. Я выбрал Hetzner CX32 (8 vCPU, 32GB RAM) за 18 евро. Но подойдет любой, где можно развернуть Docker и у которого есть хотя бы 40GB свободного места под модель и кэш.
Решение: Hermes Agent 4.2 на VPS с нуля — пошаговый план
1 Развернуть Docker и docker-compose на чистой Ubuntu 24.04
# Обновление и установка зависимостей
sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose-v2 git curl htop
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
После этого обязательно проверьте, что Docker работает: docker run hello-world. Если вылезает ошибка про права — не игнорируйте, перелогиньтесь или используйте sudo (но лучше не надо, привыкайте к бессудо-режиму).
Типичная ошибка: ставить Docker по apt install docker.io из стандартного репозитория — там версия 20.10, которая не поддерживает docker-compose v2. Добавьте официальный репозиторий Docker или используйте docker compose (со встроенным плагином).
2 Клонировать и настроить Hermes Agent
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
# Берем последний стабильный тег (на май 2026 — v4.2)
git checkout v4.2
cp config.example.yaml config.yaml
В config.yaml ключевые моменты:
- model_provider:
openai— потому что наш локальный эндпоинт будет совместим с OpenAI API через llama.cpp. - base_url:
http://localhost:8080/v1— адрес, где висит наша модель. - api_key: сгенерируйте любой (например,
sk-agent-key), всё равно проверки не будет для локального сервера. - agent_config.tools: укажите какие инструменты нужны — code_interpreter, file_operations, shell, web_search (через сервис типа SearXNG). Подробно про инструменты расписано в статье про самообучающиеся агенты.
- max_iterations: поставьте 25 — чтобы агент не зацикливался. В 4.2 встроенный защитник от бесконечных think(), но лучше перебдеть.
3 Установить и запустить LLM (Nous Hermes 3 70B) через llama.cpp
# Поднимаем контейнер с llama.cpp, который автоматически скачает модель
docker run -d --name llama-server --gpus all -p 8080:8080 \
-v /mnt/models:/models \
ghcr.io/ggerganov/llama.cpp:server-latest \
-m /models/NousResearch/Hermes-3-Llama-3.1-70B-GGUF/hermes-3-llama-3.1-70b.q4_K_M.gguf \
-ngl 35 --ctx-size 4096 --host 0.0.0.0 --port 8080
Зачем Q4_K_M? Баланс между качеством и потреблением памяти. В 70B квантизация q4 занимает ~40GB, плюс контекст 4096 — ещё 8-10GB. Итоговый VPS с 64GB RAM осилит с запасом. Если столько нет — берите 32GB и обрезайте контекст до 2048 или ставьте Mistral-NeXt 22B (q4 занимает ~14GB, помещается на сервере с 32GB).
Проверяем, что модель ответила:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "hermes-3", "messages": [{"role": "user", "content": "Hello"}]}' \
| jq .
Ответ должен содержать нормальный текст, а не ошибку 503 или бесконечно пустой стриминг. Если ошибка — проверьте, что GPU доступен, и параметры квантования.
4 Запустить Hermes Agent как микросервис
cd hermes-agent
docker compose up -d
# или без compose, напрямую Python:
python -m hermes_agent.main --config config.yaml
Агент поднимется на порту 5000. Теперь можно общаться с ним через API или через встроенный WebUI (если включён). Пример запроса через curl:
curl -X POST http://localhost:5000/chat \
-H "Content-Type: application/json" \
-d '{"message": "Напиши Python-скрипт, который скачает все PDF с сайта example.com и сохранит их в /data."}'
Если агент ответил кодом и выполнил его — всё работает. Если начал бесконечно повторять “Let me think...” — возвращаемся к config.yaml и уменьшаем max_iterations, включаем агрессивный парсер инструментов (опция adaptive_parser: aggressive).
5 Добавить инструменты и ограничения
В Hermes Agent 4.2 инструменты прописываются в YAML: file_operations, shell, code_interpreter, browser, web_search. Важно: shell доступ — дать агенту полный доступ к bash — самоубийство. Используйте принципы изолированного окружения: запускайте агента от отдельного пользователя с ограниченными правами, лучше в отдельном контейнере.
tools:
- name: code_interpreter
enabled: true
sandbox: docker
image: python:3.12-slim
timeout: 60
allowed_modules: ["requests", "pandas", "numpy"]
- name: shell
enabled: false # лучше оставить false для безопасности
- name: web_search
enabled: true
engine: searxng
url: http://searxng:8888
Кейс с web_search требует отдельного контейнера SearX NG, но на VPS это ещё +300MB RAM. Если агент не использует интернет-поиск — выключите, сэкономите память.
6 Прогнать агента через 4 кейса
Теперь самое интересное — заставить агента делать полезную работу. Я выделил четыре сценария, которые покрывают 90% потребностей IT-специалиста.
Кейс 1: Автоматизация DevOps (деплой, мониторинг, обновления)
Через инструмент shell (если решитесь его включить) или через code_interpreter с доступом к SSH можно передать агенту задачу: “Проверить статус Nginx на всех серверах production, обновить SSL сертификаты, если expire < 7 дней”. Для этого создайте скрипт с командами, дайте agent’у права на его выполнение — и он отработает. Но не давайте ему прямой sudo. Лучше настроить отдельного пользователя с sudo на конкретные команды.
Пример:
{"message": "Подключись по SSH к inventory в /etc/ansible/hosts, выполни деплой последней версии нашего бэкенда из Docker Hub, тег stable. Если контейнер не стартует, откати версию на предыдущую."}
Hermes Agent 4.2 распарсит команду, сгенерирует Ansible playbook (если инструмент ansible добавлен) или выполнит последовательность shell-команд. Ошибка: если агенту не хватит контекста для инвентаря — он начнет галлюцинировать IP. Поэтому перед задачей киньте ему содержимое инвентаря через загрузку файла.
Кейс 2: Анализ логов и поиск инцидентов
Позволяет агенту читать файлы из /var/log (через инструмент file_operations, ограниченный директорией). Задача: “Найди в /var/log/nginx/access.log все запросы с 5xx за последний час и выведи топ-10 IP”. Агент выполнит grep, awk, отсортирует и покажет результат. Полезно, когда лень писать однострочник вручную. Но помните — доступ к логам может раскрыть данные пользователей, если не настроена маскировка.
Аудит логов показал, что локальные агенты галлюцинируют в 40% случаев, когда просят “найти что-то похожее”. Чтобы снизить процент, давайте чёткий паттерн поиска: не “найди ошибки”, а “найди строки, содержащие статyс 503”.
Кейс 3: Помощник по написанию и ревью кода
Агент получает доступ к репозиторию (через git clone или монтирование volumes). Он может проанализировать код, найти баги, написать тесты. Например:
{"message": "Проверь репозиторий в /repo на наличие SQL-инъекций в Python-коде. Исправь найденные уязвимости и создай PR."}
Hermes Agent использует инструмент code_interpreter для запуска статических анализаторов (semgrep, bandit) и генерации исправлений. Настройте allowed_modules так, чтобы он мог устанавливать только разрешённые пакеты (лучше всего — поднять внутри уже готовый образ с pre-installed анализаторами). Подход с custom agents на GitHub Copilot здесь не прокатит — у нас полностью локальный контроль.
Кейс 4: AI-секретарь для работы с документами
Отдайте агенту файлы договоров, политики, инструкции. Он сможет переформулировать параграфы, проверить на соответствие шаблону, перевести или просто найти релевантные куски. Для этого используем code_interpreter с pandas и pdfplumber, либо встроенный browser tool для открытия веб-документов. Пример:
{"message": "Открой файл contract.pdf в /data, найди раздел ‘Confidentiality’, сравни с шаблоном в /templates/template.md и выпиши отличия."}
С таким сценарием Hermes Agent заменяет мелкие задачи, которые обычно делают руками. Но учитывайте, что объём PDF может превысить контекст модели. Тогда придётся делить документ на куски по 2000 токенов и через agent’а писать скрипт для чанкинга.
7 Защита и мониторинг агента
Агенты взламывают себя сами — это не шутка, а задокументированный факт. Мы в 2026 году, и prompt injection всё ещё работает. Чтобы ваш VPS не превратился в Bitcoin-ферму:
- Ограничьте outbound трафик на firewall. Агент может выйти только на те IP, которые вы явно разрешили (GitHub, Docker Hub, ваш honeypot).
- Используйте read-only файловую систему для агента, кроме строго определённых папок.
- Логируйте все действия агента в отдельный файл с помощью
agent_logger: fileи периодически проверяйте аномалии. - Не давайте агенту доступ к production без второй пары глаз. Агент может случайно уронить базу (видел такое с OpenClaw). Используйте dry-run через флаг
dry_run: true.
Возможные ошибки и их дьявольские последствия
- Агент не видит установленные инструменты — проверьте, что в config.yaml указаны корректные пути и порты. Особенно web_search — SearXNG часто не стартует из-за отсутствия конфига.
- Код выполняется бесконечно — сразу ставьте
timeoutна каждый тул. По умолчанию в Hermes Agent 4.2 стоит 120 секунд, но для Python-скрипта с REST API этого может не хватить. - Модель “забывает” контекст — если диалог длится десятки сообщений, память (summary) может не включиться. Активируйте
agent_memory: summarizerи задайте лимит на историю: 50 сообщений. - VPS падает от нехватки памяти — бывает при запуске 70B модели даже с q4, если поднято ещё пара сервисов. Решение: добавьте swap 32GB на SSD (но не на SD-карту!), и ограничьте
--mlockна 80% физической памяти.
А что с ценами и альтернативами?
Поднять всё на VPS Hetzner CX32 (32GB RAM) стоит ~20€. Если брать GPU-инстанс (например, Vast.ai с A100) — $1-2/час, за месяц $720-1440, если не выключать. Но для 70B kvant q4 GPU не обязателен — CPU с AVX2 справится за 3-5 токенов/сек. Для задач, где не важен real-time response (DevOps, анализ логов), этого достаточно. Платить за облачные API (GPT-4.5 ~$150/день при интенсивном использовании) — безумие. Локально на VPS то же самое за 20€/мес.
Если бюджет не позволяет 64GB RAM — берите HomeGenie подход: модель 8B или 22B на CPU с небольшой памятью. Hermes Agent работает с любым размером, просто инструменты будут исполняться медленнее, но надежнее.
Финальный чекап перед запуском
- Docker поднят, пользователь в группе docker.
- llama-server отвечает на http://localhost:8080/v1.
- Hermes Agent настроен: конфиг, инструменты, ограничения.
- Firewall закрыт снаружи, доступ только по SSH с ключами.
- Агент запущен и отвечает на тестовый запрос.
- Сделайте бэкап конфигов и модели (жесткий диск всегда умирает в пятницу вечером).
Дальше — дрессировка. Не ждите, что агент с первого дня будет идеально понимать ваши задачи. Скармливайте ему свои типовые промпты, корректируйте инструменты, добавляйте кастомные скиллы через инструкции. Через неделю он станет незаменимым стажёром. Который никогда не спит и не просит прибавки.