Как установить и использовать Hermes Agent: практическое руководство для программиста
Hermes Agent — это open-source агентный фреймворк от Nous Research, который живёт в вашем терминале, десктоп-приложении, мессенджерах и IDE. В отличие от «облачных» ассистентов, Hermes разворачивается на вашей машине или сервере, работает с любой языковой моделью и умеет не только отвечать, но и действовать: запускать команды, читать и править файлы, писать код, планировать задачи по расписанию и делегировать работу параллельным субагентам.
Это руководство — для программиста, который хочет поставить Hermes, настроить под себя и использовать как автономного агента для разработки. Все команды взяты из официальной документации и проверены на практике; ссылки на первоисточники — в конце.
Что умеет Hermes
Hermes занимает ту же нишу, что Claude Code от Anthropic, Codex от OpenAI и OpenClaw — это автономные агенты для кодинга и выполнения задач, которые через вызовы инструментов взаимодействуют с вашей системой. Отличия Hermes:
- Самообучение через навыки (skills) — агент сохраняет отработанные процедуры как переиспользуемые навыки, которые подгружаются в будущих сессиях.
- Постоянная память между сессиями — помнит, кто вы, ваши предпочтения, детали окружения и усвоенные уроки.
- Мультиплатформенный gateway — один и тот же агент работает в Telegram, Discord, Slack, WhatsApp, Signal, Email и ещё десятке платформ, с полным доступом к инструментам.
- Много «поверхностей» — CLI, Ink TUI, нативное десктоп-приложение, веб-дашборд и ACP-сервер для IDE (VS Code, Zed, JetBrains).
- Независимость от провайдера — работает с OpenRouter, Anthropic, OpenAI, Google, DeepSeek, xAI, локальными моделями и ещё 30+ провайдерами.
- Расширяемость — плагины, MCP-серверы, свои инструменты, вебхуки, cron, скины и темы.
Системные требования и установка
Hermes работает на Linux, macOS, Windows и WSL. Установка выполняется shell-инсталлятором, который сам ставит менеджер пакетов uv, Python и виртуальное окружение:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
После установки в PATH появляется команда hermes. Обновление до свежей версии:
hermes update
Проверить, что всё установилось и настроено корректно:
hermes doctor
Альтернативный вариант — установка из исходников (git), но для старта инсталлятор самый быстрый путь.
Первый запуск и настройка
Сразу после установки запустите мастер настройки:
hermes setup
Он проведёт через выбор модели, провайдера, терминала, gateway и инструментов. Для быстрой смены модели и провайдера есть отдельные команды:
hermes model # интерактивный выбор модели/провайдера
hermes doctor # проверка зависимостей и конфигурации
hermes status # статус компонентов
Интерактивный чат запускается просто:
hermes
А для разового вопроса без интерактивного режима удобен one-shot:
hermes chat -q "Объясни, что делает этот кусок кода"
Выбор модели и провайдера
Hermes поддерживает 35+ провайдеров. Ключи задаются переменными окружения в файле ~/.hermes/.env (секреты — только там, а не в config.yaml). Основные:
| Провайдер | Аутентификация | Переменная окружения |
|---|---|---|
| OpenRouter | API-ключ | OPENROUTER_API_KEY |
| Anthropic | API-ключ | ANTHROPIC_API_KEY |
| OpenAI | API-ключ / OAuth | OPENAI_API_KEY или hermes auth add |
| Google Gemini | API-ключ | GOOGLE_API_KEY / GEMINI_API_KEY |
| DeepSeek | API-ключ | DEEPSEEK_API_KEY |
| xAI (Grok) | API-ключ | XAI_API_KEY |
| Hugging Face | Токен | HF_TOKEN |
| Ollama (локально) | — | custom + base_url |
Локальные модели подключаются через провайдер custom: в config.yaml задаётся model.base_url (например, адрес Ollama) и модель. Для OAuth-провайдеров (Nous, OpenAI Codex, Qwen) используется команда hermes auth add <provider>.
Если основной провайдер падает, срабатывает цепочка резервных (fallback):
hermes fallback add # добавить резервного провайдера
hermes fallback list # показать цепочку
Часто используемые модели удобно закрепить за короткими алиасами, которые работают и в CLI, и в мессенджерах через /model. Встроенные алиасы уже есть: sonnet, opus, gpt5, codex, gemini, deepseek, grok и другие.
Конфигурация: config.yaml и .env
Настройки хранятся в ~/.hermes/config.yaml, секреты — в ~/.hermes/.env. Правило: никогда не редактируйте config.yaml вручную — используйте CLI, лишний отступ может сломать файл и работающий gateway.
hermes config set terminal.timeout 300
hermes config get model.default
hermes config edit # открыть в редакторе
Секции, которые чаще всего трогает программист:
model— модель по умолчанию, провайдер, base_url, алиасы.agent— лимит итерацийmax_turns(по умолчанию 90), принуждение к использованию инструментов.terminal— бэкенд выполнения команд:local,docker,ssh,modalи др.; таймаут (по умолчанию 180 с).approvals— режим подтверждения опасных команд:smart,manual,off.memory— включение памяти и профиля пользователя, провайдер памяти.delegation— модель для субагентов, лимит параллельных детей, глубина вложенности.security— редарктинг секретов, сканер угроз, блокировка сайтов.checkpoints— снапшоты файловой системы для отката.
Режимы работы
Одно ядро агента обслуживает несколько интерфейсов:
hermes # интерактивный чат (CLI)
hermes --tui # Ink TUI с виджетами
hermes chat -q "..." # one-shot для скриптов и пайпов
hermes desktop # нативное десктоп-приложение
hermes dashboard # веб-админка + встроенный чат
hermes proxy # OpenAI-совместимый локальный прокси
Прокси-режим особенно полезен: он поднимает локальный OpenAI-совместимый API на базе вашего OAuth-провайдера, и на него можно навести Codex CLI, Aider, Cline или любой скрипт — без отдельного API-ключа.
Инструменты (toolsets)
Что агент может делать, определяется набором инструментов. Управление через hermes tools или в сессии через /tools:
| Toolset | Что даёт |
|---|---|
| terminal | Shell-команды и управление процессами |
| file | Чтение/запись/поиск/правка файлов |
| code_execution | Выполнение Python в песочнице |
| coding | Помощники редактирования кода (на базе LSP) |
| web / search | Веб-поиск и извлечение контента |
| browser | Автоматизация браузера |
| delegation | Делегирование задач субагентам |
| cronjob | Управление задачами по расписанию |
| memory | Постоянная память между сессиями |
| computer_use | Управление графическим интерфейсом |
| vision | Анализ изображений |
Важно: изменения в наборе инструментов применяются после /reset (новой сессии), а не на лету — это сохраняет кэш промпта.
Контекст проекта: AGENTS.md и .hermes.md
Hermes автоматически подхватывает правила проекта из контекстных файлов в рабочей директории. Это ключевой механизм для командной разработки:
- .hermes.md / HERMES.md — ищется вверх по дереву до корня git-репозитория; подходит для иерархических правил проекта.
- AGENTS.md — читается только из текущей директории; переносимые инструкции, которые работают одинаково в Hermes, Claude Code и Codex.
- CLAUDE.md — то же, но в формате Claude.
- .cursorrules / .cursor/rules/*.mdc — для миграции с Cursor.
Пример минимального .hermes.md:
# My Project
## Build
- Always run `make test` before declaring a change done.
- Use `uv run` for Python, not `pip install`.
## Style
- Prefer `pathlib.Path` over `os.path`.
- No `print()` in production code — use the `logger`.
Отдельно существует SOUL.md в $HERMES_HOME — он задаёт личность агента и загружается всегда. Каждый контекстный файл ограничен 20 000 символов (при превышении берётся «голова + хвост»), а весь контент проходит через сканер угроз, который блокирует попытки prompt injection.
Skills — самообучение агента
Навыки — это процедурная память Hermes: отработанные рабочие процессы, которые сохраняются и переиспользуются. Агент учится на опыте и со временем накапливает библиотеку проверенных процедур.
hermes skills list # установленные навыки
hermes skills search "deploy" # поиск по каталогу
hermes skills install ID # установить навык
В сессии есть команда /learn, которая превращает директорию, URL или текущий диалог в переиспользуемый навык. Навыки можно подключать и как GitHub-репозитории-источники (hermes skills tap add). За жизненным циклом навыков следит curator — он помечает устаревшие и архивирует их, ничего не удаляя безвозвратно.
Memory — память между сессиями
Hermes запоминает пользователя и окружение между сессиями: предпочтения, детали инфраструктуры, усвоенные уроки. Память инжектится в каждый ход, поэтому агент не начинает разговор «с нуля».
hermes memory setup # настроить провайдер памяти
hermes memory status # статус
/memory # в сессии: просмотр отложенных записей
Память бывает двух видов — о пользователе (кто он, его стиль) и личные заметки агента (окружение, конвенции, грабли). Отдельный бонус — session_search: история прошлых сессий хранится в SQLite с полнотекстовым поиском, так что можно вернуться к любой прошлой задаче.
Делегирование и параллельные агенты
Для тяжёлых задач Hermes умеет спавнить субагентов в изолированных контекстах:
- Одиночная задача — субагент получает цель и контекст, работает в отдельной терминальной сессии, возвращает итог.
- Пакетный режим — несколько задач выполняются параллельно, до лимита
delegation.max_concurrent_children(по умолчанию 3). - Фоновый режим — задача уходит в фон, результат возвращается в диалог отдельным ходом.
- Роли —
leaf(обычный воркер) иorchestrator(может спавнить своих воркеров).
Для параллельной работы с кодом удобен worktree-режим, который изолирует изменения в отдельной git-worktree:
hermes -w # запуск в изолированном git worktree
Полностью независимые процессы можно поднимать через tmux — каждый со своей сессией, инструментами и окружением, и пересылать контекст между ними вручную. Это паттерн «агент А пишет бэкенд, агент Б — фронтенд, схемы API передаются между ними».
Важный нюанс: делегирование не «переживает» завершение родительского процесса. Если нужна задача, которая должна пережить перезапуск, — это cron, а не фоновый субагент.
Cron — задачи по расписанию
Для долговечных задач по расписанию в Hermes есть планировщик:
hermes cron list
hermes cron create "0 9 * * *" # ежедневно в 9:00
hermes cron run ID # запустить вручную
Расписания задаются гибко: длительность (30m, 2h), фразы (every monday 9am), классический cron (0 9 * * *) или ISO-метка времени. У каждой задачи есть свои настройки: подключаемые навыки, переопределение модели, скрипт сбора данных перед запуском, цепочки зависимостей (context_from — вывод одной задачи подаётся на вход другой), рабочая директория и доставка результата на несколько платформ.
Это позволяет строить автономные пайплайны без внешнего cron: например, ночной агент, который собирает данные из репозитория, генерирует отчёт и шлёт его в Telegram.
MCP — подключение внешних инструментов
Hermes имеет встроенный MCP-клиент: он подключается к MCP-серверам при старте, находит их инструменты и делает их доступными наравне со встроенными. Это стандартный способ расширить агента — файловая система, GitHub, базы данных, внешние API.
Сначала поставьте MCP SDK:
pip install mcp
Серверы описываются в ~/.hermes/config.yaml под ключом mcp_servers. Два транспорта — stdio (команда) и HTTP (URL):
mcp_servers:
time:
command: "uvx"
args: ["mcp-server-time"]
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_..."
company_api:
url: "https://mcp.mycompany.com/v1/mcp"
headers:
Authorization: "Bearer sk-..."
Инструменты регистрируются с префиксом mcp_<сервер>_<инструмент> (например, mcp_github_create_pull_request) и автоматически доступны во всех разговорах. Безопасность продумана: stdio-серверам передаётся только отфильтрованное окружение (базовые переменные), а все секреты нужно явно указывать в env — чтобы не утекали ключи в недоверенные серверы.
Для npx-серверов нужен Node.js, для uvx — утилита uv. Управление серверами есть и в CLI:
hermes mcp add NAME --command "npx -y pkg"
hermes mcp list
hermes mcp test NAME
Интеграция с IDE и редакторами
Для работы внутри редактора Hermes запускается как ACP-сервер и подключается к VS Code, Zed и JetBrains:
hermes acp
Плюс десктоп-приложение и веб-дашборд дают графический интерфейс, а OpenAI-совместимый прокси — интеграцию с любым инструментом, который умеет ходить в OpenAI API. Это удобно, когда часть команды работает в IDE, а часть — в терминале, но все используют одного и того же агента.
Профили — изолированные инстансы
Профили позволяют держать несколько независимых инстансов Hermes с отдельными конфигами, сессиями, навыками и памятью:
hermes profile create work
hermes profile use work
hermes --profile work # разовый запуск с профилем
Это удобно для разделения проектов: например, отдельный профиль под каждого клиента или под разные роли (личный помощник vs рабочий агент), чтобы память и навыки не смешивались.
Мессенджеры и gateway
Тот же агент работает в 20+ мессенджерах и каналах — Telegram, Discord, Slack, WhatsApp, iMessage, Signal, Email, SMS, Matrix, Teams и других, с полным доступом к инструментам, а не просто в чате:
hermes gateway run # запустить gateway
hermes gateway status # статус подключений
hermes gateway setup # настройка платформ
Для программиста это значит, что агента можно дёргать с телефона в Telegram, пока он работает на сервере: дать задачу, получить уведомление о результате, подтвердить опасную команду.
Шпаргалка по слэш-командам
В интерактивной сессии доступны команды через слэш. Самые полезные:
| Команда | Действие |
|---|---|
| /new (/reset) | Новая сессия |
| /model [name] | Сменить модель (на сессию или —global) |
| /compress | Сжать контекст (с сохранением N ходов) |
| /diff | Показать изменения git в рабочей директории |
| /rollback | Восстановить снапшот файловой системы |
| /undo [N] | Откатить N ходов пользователя |
| /background | Запустить промпт в фоне |
| /learn | Сохранить навык из директории/URL/чата |
| /yolo | Отключить подтверждение опасных команд |
| /voice | Голосовой режим |
| /help | Показать все команды |
Полный реестр всегда под рукой через /help — он генерируется из единого источника и включает больше команд, чем помещается в шпаргалку.
Практические сценарии для программиста
1. Быстрый вопрос по коду из терминала — без интерактивного режима:
hermes chat -q "Найди утечку памяти в ./src/parser.c"
2. Автономный рефакторинг в изолированном worktree — агент правит код, не трогая рабочую ветку:
hermes -w # затем: "Отрефактори модуль авторизации, сохрани поведение"
3. Параллельные агенты через tmux — бэкенд и фронтенд одновременно, с передачей схем API между ними.
4. Делегирование подзадач — распараллелить ревью, тесты и документацию на субагентов, пока основной агент координирует.
5. Ночные задачи по расписанию — cron-агент собирает метрики репозитория, генерирует отчёт и шлёт его в Telegram каждое утро.
6. Подключение GitHub и файловой системы через MCP — агент читает issues, создаёт pull request и работает с файлами напрямую.
7. Правила проекта через AGENTS.md — кладёте файл в корень репозитория, и агент (как и Claude Code/Codex) соблюдает ваши конвенции сборки и стиля.
8. One-shot в скриптах и пайпах — флаг -z выводит только финальный ответ, что удобно для встраивания в shell-скрипты.
9. Возобновление сессии — после перезапуска продолжить с места:
hermes --continue # последняя сессия
hermes --resume ID # конкретная сессия
Безопасность и частые ошибки
Несколько правил, которые сэкономят время:
- Секреты — только в .env, настройки — в config.yaml. Не путайте их местами.
- Не редактируйте config.yaml вручную — используйте
hermes config set; случайный отступ может повредить файл и остановить gateway. - Опасные команды требуют подтверждения — режим
approvalsуправляет этим./yoloотключает подтверждение, но только когда вы доверяете задаче. - Изменения toolsets применяются после /reset — не ждите эффекта на лету.
- Делегирование не переживает выход из процесса — для долгого используйте cron.
- Для npx-серверов нужен Node.js, для uvx — uv, для MCP — пакет
mcp; иначе серверы молча не подключатся. - Контекстные файлы ограничены 20 000 символов — большие правила дробите на навыки.
Hermes против Claude Code, Codex и OpenClaw
Все четыре — агенты для кодинга и выполнения задач в одной категории. Отличия Hermes:
| Критерий | Hermes | Claude Code / Codex |
|---|---|---|
| Развёртывание | Self-hosted, ваш сервер | В основном облако/подписка |
| Модели | Любой провайдер (30+) | Привязка к вендору |
| Память и навыки | Встроены, самообучаются | Ограничены |
| Платформы | CLI + TUI + desktop + мессенджеры + IDE | В основном CLI/IDE |
| Лицензия | Open-source (MIT) | Проприетарная |
Если нужен контролируемый, приватный агент на своей инфраструктуре с любой моделью — Hermes закрывает эту нишу лучше облачных конкурентов.
Заключение
Hermes Agent — это не «ещё один чат-бот», а полноценный автономный агент, который можно поставить за 15 минут и постепенно превратить в личного ИИ-помощника для разработки: от разовых вопросов по коду до ночных пайплайнов и параллельных субагентов. Главные преимущества для программиста — полный контроль, приватность, свобода выбора модели и самообучающаяся память.
Источники
- Репозиторий: github.com/NousResearch/hermes-agent
- Документация: hermes-agent.nousresearch.com/docs
Тезис про «любую языковую модель» хочется проверить на практике: обычно агенты заточены под пару провайдеров, а с остальными начинаются пляски с API-форматами. Автор не сталкивался с этим при тестировании команд из инструкции?
А навыки и память хранятся как обычные файлы в рабочей директории или в отдельной базе? Хочется понять, можно ли их версионировать в git и переносить между машинами.
А десктоп-версия уже удобная?
@Светлана, пользуюсь десктопом каждый день, всё просто и понятно.
Красиво звучит про любую языковую модель, но на практике полный набор инструментов у таких агентов обычно работает только с парой провайдеров, а на локальных моделях начинаются проблемы с совместимостью вызовов. Кто-нибудь уже гонял Hermes с локальной моделью через Ollama или пока это только в планах?