FAQ и устранение неполадок
Быстрые ответы и решения для самых распространённых вопросов и ситуаций.
Часто задаваемые вопросы
С какими провайдерами LLM работает Hermes?
Hermes Agent работает с любым OpenAI-совместимым API. Поддерживаются следующие провайдеры:
- OpenRouter — доступ к сотням моделей через один API-ключ (рекомендуется для гибкости)
- Nous Portal — подписочный шлюз Nous Research — 300+ моделей плюс веб/изображения/TTS/браузер через единый OAuth-вход (рекомендуется для новых пользователей)
- OpenAI — GPT-5.4, GPT-5-codex, GPT-4.1, GPT-4o и др.
- Anthropic — модели Claude (прямой API, OAuth через
hermes auth add anthropic, OpenRouter или совместимый прокси) - Google — модели Gemini (прямой API через провайдер
gemini, OAuth-провайдерgoogle-gemini-cli, OpenRouter или совместимый прокси) - z.ai / ZhipuAI — модели GLM
- Kimi / Moonshot AI — модели Kimi
- MiniMax — глобальный и китайский эндпоинты
- Локальные модели — через Ollama, vLLM, llama.cpp, SGLang или любой OpenAI-совместимый сервер
Выберите провайдера через hermes model или отредактируйте ~/.hermes/.env. Все ключи провайдеров — в справочнике Переменных окружения.
Работает ли агент на Windows?
Да, нативно. Hermes поддерживает Windows напрямую через установщик PowerShell — WSL не нужен. Запустите в PowerShell:
iex (irm https://hermes-agent.nousresearch.com/install.ps1)
Установщик разворачивает PortableGit, который обеспечивает работу инструментов терминала. Подробности — в руководстве по нативному Windows.
WSL2 остаётся полностью поддерживаемой альтернативой. Чтобы запустить Hermes внутри WSL2, установите WSL2 и используйте стандартную команду установки:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Я использую Hermes в WSL2. Как лучше управлять обычным Chrome в Windows?
Предпочтительнее MCP-мост вместо /browser connect.
Рекомендуемый паттерн:
- запустите Hermes внутри WSL2
- продолжайте использовать обычный Chrome с вашими аккаунтами на стороне Windows
- добавьте
chrome-devtools-mcpкак MCP-сервер черезcmd.exeилиpowershell.exe - пусть Hermes использует полученные MCP-инструменты браузера
Это надёжнее, чем попытки заставить транспорт браузера Hermes напрямую присоединяться через границу WSL2/Windows.
См.:
Работает ли на Android / Termux?
Да — у Hermes есть проверенный путь установки через Termux для Android-устройств.
Быстрая установка:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Полные ручные шаги, поддерживаемые расширения и текущие ограничения — в руководстве по Termux.
Важный нюанс: полный экстра .[all] пока недоступен на Android, поскольку экстра voice зависит от faster-whisper → ctranslate2, а ctranslate2 не публикует Android-wheels. Используйте проверенный экстра .[termux].
Отправляются ли мои данные куда-то?
API-вызовы идут только к тому провайдеру LLM, который вы настроили (например, OpenRouter, локальный инстанс Ollama). Hermes Agent не собирает телеметрию, данные об использовании или аналитику. Ваши разговоры, память и навыки хранятся локально в ~/.hermes/.
Можно ли использовать в офлайн-режиме / с локальными моделями?
Да. Запустите hermes model, выберите Custom endpoint и введите URL вашего сервера:
hermes model
# Select: Custom endpoint (enter URL manually)
# API base URL: http://localhost:11434/v1
# API key: ollama
# Model name: qwen3.5:27b
# Context length: 64000 ← минимум Hermes; задайте равным реальному окну контекста вашего сервера
Или настройте напрямую в config.yaml:
model:
default: qwen3.5:27b
provider: custom
base_url: http://localhost:11434/v1
Hermes сохраняет эндпоинт, провайдер и базовый URL в config.yaml, так что они переживут перезапуск. Если на вашем локальном сервере загружена ровно одна модель, /model custom авто-определит её. Можно также задать provider: custom в config.yaml — это первоклассный провайдер, а не псевдоним.
Работает с Ollama, vLLM, llama.cpp server, SGLang, LocalAI и другими. Подробности — в руководстве по конфигурации.
Если вы задали пользовательский num_ctx в Ollama (например, ollama run --num_ctx 64000), задайте соответствующую длину контекста в Hermes — /api/show Ollama сообщает максимальный контекст модели, а не эффективный num_ctx, который вы настроили.
Hermes авто-определяет локальные эндпоинты и снимает жёсткие ограничения на таймауты стриминга (таймаут чтения увеличивается с 120 до 1800 с, обнаружение устаревшего стрима отключается). Если таймауты всё равно возникают на очень больших контекстах, задайте HERMES_STREAM_READ_TIMEOUT=1800 в .env. Подробности — в руководстве по локальному LLM.
Сколько это стоит?
Сам Hermes Agent — бесплатный и открытый исходный код (лицензия MIT). Вы платите только за использование LLM API у выбранного провайдера. Локальные модели запускаются полностью бесплатно.
Могут ли несколько человек использовать один инстанс?
Да. Шлюз сообщений позволяет нескольким пользователям взаимодействовать с одним инстансом Hermes Agent через Telegram, Discord, Slack, WhatsApp или Home Assistant. Доступ контролируется через списки допуска (конкретные ID пользователей) и сопряжение в ЛС (первый написавший получает доступ).
В чём разница между памятью и навыками?
- Память хранит факты — то, что агент знает о вас, ваших проектах и предпочтениях. Воспоминания извлекаются автоматически по релевантности.
- Навыки хранят процедуры — пошаговые инструкции о том, как делать те или иные вещи. Навыки активируются, когда агент сталкивается с похожей задачей.
Оба вида сохраняются между сессиями. Подробности — в Память и Навыки.
Можно ли использовать Hermes в собственном Python-проекте?
Да. Импортируйте класс AIAgent и используйте Hermes программно:
from run_agent import AIAgent
agent = AIAgent(model="anthropic/claude-opus-4.7")
response = agent.chat("Explain quantum computing briefly")
Полное описание API — в руководстве по Python Library.
Устранение неполадок
Проблемы с установкой
hermes: command not found после установки
Причина: Ваш shell не перезагрузил обновлённый PATH.
Решение:
# Перезагрузите профиль shell
source ~/.bashrc # bash
source ~/.zshrc # zsh
# Или откройте новую сессию терминала
Если не помогло, проверьте расположение установки:
which hermes
ls ~/.local/bin/hermes
Установщик добавляет ~/.local/bin в PATH. Если вы используете нестандартный конфиг shell, добавьте export PATH="$HOME/.local/bin:$PATH" вручную.
Слишком старая версия Python
Причина: Hermes требует Python 3.11 или новее.
Решение:
python3 --version # Проверьте текущую версию
# Установите более новый Python
sudo apt install python3.12 # Ubuntu/Debian
brew install python@3.12 # macOS
Установщик обрабатывает это автоматически — если при ручной установке возникает эта ошибка, сначала обновите Python.
Команды терминала выдают node: command not found (или nvm, pyenv, asdf, …)
Причина: Hermes строит снимок окружения для сессии, запуская bash -l один раз при старте. Bash login shell читает /etc/profile, ~/.bash_profile и ~/.profile, но не подключает ~/.bashrc — поэтому инструменты, которые устанавливают себя туда (nvm, asdf, pyenv, cargo, пользовательские экспорты PATH), остаются невидимы для снимка. Чаще всего это проявляется при запуске Hermes под systemd или в минимальном shell, где интерактивный профиль не загружен заранее.
Решение: По умолчанию Hermes авто-подключает ~/.bashrc. Если этого недостаточно — например, вы пользователь zsh, чей PATH живёт в ~/.zshrc, или вы инициализируете nvm из отдельного файла — перечислите дополнительные файлы для подключения в ~/.hermes/config.yaml:
terminal:
shell_init_files:
- ~/.zshrc # пользователям zsh: тянет zsh-управляемый PATH в bash-снимок
- ~/.nvm/nvm.sh # прямая инициализация nvm (работает независимо от shell)
- /etc/profile.d/cargo.sh # системные rc-файлы
# Когда этот список задан, авто-подключение ~/.bashrc по умолчанию НЕ добавляется —
# включите его явно, если нужны оба:
# - ~/.bashrc
# - ~/.zshrc
Отсутствующие файлы тихо пропускаются. Подключение происходит в bash, поэтому файлы с zsh-специфичным синтаксисом могут давать ошибки — если это проблема, подключайте только часть, устанавливающую PATH (например, nvm.sh напрямую), а не весь rc-файл.
Чтобы отключить авто-подключение (только строгая семантика login-shell):
terminal:
auto_source_bashrc: false
uv: command not found
Причина: Пакетный менеджер uv не установлен или отсутствует в PATH.
Решение:
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
Ошибки Permission denied при установке
Причина: Недостаточно прав для записи в директорию установки.
Решение:
# Не используйте sudo с установщиком — он устанавливается в ~/.local/bin
# Если ранее установили через sudo, удалите:
sudo rm /usr/local/bin/hermes
# Затем запустите стандартный установщик
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Проблемы с провайдерами и моделями
/model показывает только одного провайдера / не удаётся переключить провайдера
Причина: /model (внутри сессии чата) переключает только между провайдерами, которых вы уже настроили. Если настроен только OpenRouter, только он и будет показан.
Решение: Выйдите из сессии и используйте hermes model из терминала для добавления новых провайдеров:
# Сначала выйдите из сессии Hermes (Ctrl+C или /quit)
# Запустите полный мастер настройки провайдера
hermes model
# Здесь можно: добавить провайдеров, выполнить OAuth, ввести API-ключи, настроить эндпоинты
После добавления нового провайдера через hermes model начните новую сессию чата — /model теперь покажет всех настроенных провайдеров.
| Что нужно сделать | Команда |
|---|---|
| Добавить нового провайдера | hermes model (из терминала) |
| Ввести/изменить API-ключи | hermes model (из терминала) |
| Переключить модель в сессии | /model <name> (внутри сессии) |
| Переключиться на другого настроенного провайдера | /model provider:model (внутри сессии) |
API-ключ не работает
Причина: Ключ отсутствует, истёк, задан неверно или относится к другому провайдеру.
Решение:
# Проверьте конфигурацию
hermes config show
# Перенастройте провайдера
hermes model
# Или задайте напрямую
hermes config set OPENROUTER_API_KEY sk-or-v1-xxxxxxxxxxxx
Убедитесь, что ключ соответствует провайдеру. Ключ OpenAI не работает с OpenRouter и наоборот. Проверьте ~/.hermes/.env на наличие конфликтующих записей.
Модель недоступна / модель не найдена
Причина: Идентификатор модели задан неверно или модель недоступна у вашего провайдера.
Решение:
# Просмотрите доступные модели провайдера
hermes model
# Задайте корректную модель
hermes config set HERMES_MODEL anthropic/claude-opus-4.7
# Или укажите для отдельной сессии
hermes chat --model openrouter/meta-llama/llama-3.1-70b-instruct
Превышение лимита запросов (ошибки 429)
Причина: Вы превысили лимиты частоты запросов провайдера.
Решение: Подождите немного и повторите. Для постоянного использования рассмотрите:
- Обновление плана провайдера
- Переключение на другую модель или провайдера
- Использование
hermes chat --provider <alternative>для маршрутизации к другому бэкенду
Превышена длина контекста
Причина: Разговор стал слишком длинным для контекстного окна модели, или Hermes определил неверную длину контекста для вашей модели.
Решение:
# Сжать текущую сессию
/compress
# Или начать новую сессию
hermes chat
# Использовать модель с большим контекстным окном
hermes chat --model openrouter/google/gemini-3-flash-preview
Если это происходит в первом длинном разговоре, возможно Hermes определил неверную длину контекста для вашей модели. Проверьте, что было определено:
Обратите внимание на строку запуска CLI — там показана определённая длина контекста (например, 📊 Context limit: 128000 tokens). Также можно проверить через /usage во время сессии.
Для исправления задайте длину контекста явно:
# В ~/.hermes/config.yaml
model:
default: your-model-name
context_length: 131072 # реальное контекстное окно вашей модели
Или для пользовательских эндпоинтов укажите на уровне модели:
custom_providers:
- name: "My Server"
base_url: "http://localhost:11434/v1"
models:
qwen3.5:27b:
context_length: 64000
Подробности об авто-определении — в Context Length Detection.
Проблемы с терминалом
Команда заблокирована как опасная
Причина: Hermes обнаружил потенциально деструктивную команду (например, rm -rf, DROP TABLE). Это функция безопасности.
Решение: При появлении запроса проверьте команду и введите y для подтверждения. Также можно:
- Попросить агента использовать более безопасную альтернативу
- Просмотреть полный список опасных паттернов в документации по безопасности
Это штатное поведение — Hermes никогда не запускает деструктивные команды молча. Запрос подтверждения показывает ровно то, что будет выполнено.
sudo не работает через шлюз сообщений
Причина: Шлюз сообщений работает без интерактивного терминала, поэтому sudo не может запросить пароль.
Решение:
- Избегайте
sudoв мессенджерах — попросите агента найти альтернативы - Если
sudoнеобходим, настройте sudo без пароля для конкретных команд в/etc/sudoers - Или переключитесь на терминальный интерфейс для административных задач:
hermes chat
Бэкенд Docker не подключается
Причина: Docker-демон не запущен или у пользователя нет прав.
Решение:
# Проверьте, запущен ли Docker
docker info
# Добавьте пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Проверьте
docker run hello-world
Проблемы с мессенджерами
Бот не отвечает на сообщения
Причина: Бот не запущен, не авторизован, или ваш пользователь не в списке допуска.
Решение:
# Проверьте, запущен ли шлюз
hermes gateway status
# Запустите шлюз
hermes gateway start
# Проверьте логи на ошибки
cat ~/.hermes/logs/gateway.log | tail -50
Сообщения не доставляются
Причина: Сетевые проблемы, истёкший токен бота или неверная настройка вебхука платформы.
Решение:
- Проверьте токен бота через
hermes gateway setup - Проверьте логи шлюза:
cat ~/.hermes/logs/gateway.log | tail -50 - Для платформ на вебхуках (Slack, WhatsApp) убедитесь, что ваш сервер доступен публично
Путаница со списком допуска — кто может писать боту?
Причина: Режим авторизации определяет, кто получает доступ.
Решение:
| Режим | Как работает |
|---|---|
| Allowlist | Взаимодействовать могут только ID пользователей из конфига |
| DM pairing | Первый написавший в ЛС получает эксклюзивный доступ |
| Open | Может взаимодействовать кто угодно (не рекомендуется для продакшна) |
Настройте в ~/.hermes/config.yaml в настройках вашего шлюза. См. документацию по мессенджерам.
Шлюз не запускается
Причина: Отсутствующие зависимости, конфликты портов или неверно настроенные токены.
Решение:
# Установите основные зависимости шлюза сообщений
pip install "hermes-agent[messaging]" # Telegram, Discord, Slack и общие зависимости шлюза
# Проверьте конфликты портов
lsof -i :8080
# Проверьте конфигурацию
hermes config show
WSL: Шлюз постоянно отключается или hermes gateway start падает
Причина: Поддержка systemd в WSL ненадёжна. Многие установки WSL2 не имеют включённого systemd, и даже при включении сервисы могут не пережить перезапуски WSL или переходы Windows в режим ожидания.
Решение: Используйте режим переднего плана вместо systemd-сервиса:
# Вариант 1: Прямой запуск на переднем плане (проще всего)
hermes gateway run
# Вариант 2: Постоянный через tmux (переживает закрытие терминала)
tmux new -s hermes 'hermes gateway run'
# Повторное подключение: tmux attach -t hermes
# Вариант 3: В фоне через nohup
nohup hermes gateway run > ~/.hermes/logs/gateway.log 2>&1 &
Если хотите попробовать systemd, убедитесь, что он включён:
- Откройте
/etc/wsl.conf(создайте, если не существует) - Добавьте:
[boot] systemd=true - Из PowerShell:
wsl --shutdown - Снова откройте терминал WSL
- Проверьте:
systemctl is-system-runningдолжен показать “running” или “degraded”
Для надёжного авто-запуска используйте Планировщик задач Windows для запуска WSL + шлюза при входе в систему:
- Создайте задачу, запускающую
wsl -d Ubuntu -- bash -lc 'hermes gateway run' - Настройте триггер при входе пользователя
macOS: Node.js / ffmpeg / другие инструменты не найдены шлюзом
Причина: Сервисы launchd наследуют минимальный PATH (/usr/bin:/bin:/usr/sbin:/sbin), который не включает Homebrew, nvm, cargo и другие директории пользовательских инструментов. Это обычно ломает мост WhatsApp (node not found) или голосовую транскрипцию (ffmpeg not found).
Решение: Шлюз захватывает PATH вашего shell при запуске hermes gateway install. Если вы установили инструменты после настройки шлюза, перезапустите установку для захвата обновлённого PATH:
hermes gateway install # Создаёт новый снимок текущего PATH
hermes gateway start # Обнаруживает обновлённый plist и перезагружает
Можно проверить, что plist содержит верный PATH:
/usr/libexec/PlistBuddy -c "Print :EnvironmentVariables:PATH" \
~/Library/LaunchAgents/ai.hermes.gateway.plist
Проблемы с производительностью
Медленные ответы
Причина: Большая модель, далёкий API-сервер или тяжёлый системный промпт со множеством инструментов.
Решение:
- Попробуйте более быструю/лёгкую модель:
hermes chat --model openrouter/meta-llama/llama-3.1-8b-instruct - Сократите активные наборы инструментов:
hermes chat -t "terminal" - Проверьте сетевую задержку до провайдера
- Для локальных моделей убедитесь, что у вас достаточно VRAM GPU
Высокое потребление токенов
Причина: Длинные разговоры, многословные системные промпты или накапливающийся контекст от множества вызовов инструментов.
Решение:
# Сжать разговор для снижения количества токенов
/compress
# Проверить использование токенов сессии
/usage
Регулярно используйте /compress в длинных сессиях. Команда суммаризирует историю разговора и значительно снижает расход токенов, сохраняя контекст.
Сессия становится слишком длинной
Причина: Длительные разговоры накапливают сообщения и вывод инструментов, приближаясь к лимитам контекста.
Решение:
# Сжать текущую сессию (сохраняет ключевой контекст)
/compress
# Начать новую сессию со ссылкой на старую
hermes chat
# Возобновить конкретную сессию позже при необходимости
hermes chat --continue
Проблемы с MCP
MCP-сервер не подключается
Причина: Бинарный файл сервера не найден, неверный путь команды или отсутствующий рантайм.
Решение:
# Убедитесь, что MCP-зависимости установлены (уже включены в стандартную установку)
cd ~/.hermes/hermes-agent && uv pip install -e ".[mcp]"
# Для серверов на npm убедитесь в наличии Node.js
node --version
npx --version
# Протестируйте сервер вручную
npx -y @modelcontextprotocol/server-filesystem /tmp
Проверьте настройку MCP в ~/.hermes/config.yaml:
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]
Инструменты MCP-сервера не появляются
Причина: Сервер запустился, но обнаружение инструментов не удалось, инструменты отфильтрованы конфигом, или сервер не поддерживает ожидаемую возможность MCP.
Решение:
- Проверьте логи шлюза/агента на ошибки подключения MCP
- Убедитесь, что сервер отвечает на RPC-метод
tools/list - Проверьте все настройки
tools.include,tools.exclude,tools.resources,tools.promptsилиenabledдля этого сервера - Помните, что утилитарные инструменты resource/prompt регистрируются только когда сессия реально поддерживает эти возможности
- Используйте
/reload-mcpпосле изменения конфига
# Проверьте настройку MCP-серверов
hermes config show | grep -A 12 mcp_servers
# Перезапустите Hermes или перезагрузите MCP после изменений конфига
hermes chat
См. также:
Ошибки таймаута MCP
Причина: MCP-сервер слишком долго отвечает или упал в процессе выполнения.
Решение:
- Увеличьте таймаут в конфигурации MCP-сервера, если поддерживается
- Проверьте, запущен ли процесс MCP-сервера
- Для удалённых HTTP MCP-серверов проверьте сетевое соединение
Если MCP-сервер падает в середине запроса, Hermes сообщает о таймауте. Для диагностики корневой причины проверьте собственные логи сервера (не только логи Hermes).
Профили
Чем профили отличаются от простого задания HERMES_HOME?
Профили — это управляемый слой поверх HERMES_HOME. Можно вручную задавать HERMES_HOME=/some/path перед каждой командой, но профили берут на себя всю рутину: создание структуры директорий, генерацию shell-псевдонимов (hermes-work), отслеживание активного профиля в ~/.hermes/active_profile и автосинхронизацию обновлений навыков во всех профилях. Плюс они интегрируются с автодополнением вкладкой — не нужно помнить пути.
Могут ли два профиля использовать один токен бота?
Нет. Каждая платформа сообщений (Telegram, Discord и др.) требует эксклюзивного доступа к токену бота. Если два профиля попытаются использовать один токен одновременно, второй шлюз не сможет подключиться. Создайте отдельного бота для каждого профиля — в Telegram обратитесь к @BotFather для создания дополнительных ботов.
Разделяют ли профили память или сессии?
Нет. У каждого профиля собственное хранилище памяти, база данных сессий и директория навыков. Они полностью изолированы. Если хотите начать новый профиль с существующими воспоминаниями и сессиями, используйте hermes profile create newname --clone-all для копирования всего из текущего профиля, или добавьте --clone-from <profile> для копирования из конкретного исходного профиля.
Что происходит при hermes update?
hermes update скачивает последний код и переустанавливает зависимости один раз (не для каждого профиля). Затем автоматически синхронизирует обновлённые навыки во всех профилях. Запустить hermes update нужно только раз — команда охватывает все профили на машине.
Сколько профилей можно запустить?
Жёсткого ограничения нет. Каждый профиль — просто директория в ~/.hermes/profiles/. Практический предел определяется дисковым пространством и тем, сколько одновременных шлюзов выдержит система (каждый шлюз — лёгкий Python-процесс). Десятки профилей — без проблем; каждый неактивный профиль не потребляет ресурсов.
Рабочие процессы и паттерны
Разные модели для разных задач (мультимодельные рабочие процессы)
Сценарий: Вы используете GPT-5.4 как основную модель, но Gemini или Grok лучше пишет контент для соцсетей. Вручную переключать модели каждый раз утомительно.
Решение: конфиг делегирования. Hermes может автоматически маршрутизировать подагентов на другую модель. Задайте в ~/.hermes/config.yaml:
delegation:
model: "google/gemini-3-flash-preview" # подагенты используют эту модель
provider: "openrouter" # провайдер для подагентов
Теперь когда вы говорите Hermes «напиши мне Twitter-тред о X» и он порождает подагент через delegate_task, тот подагент работает на Gemini вместо вашей основной модели. Основной разговор остаётся на GPT-5.4.
Можно быть явным в промпте: «Делегируй задачу написания постов в соцсетях о нашем запуске продукта. Используй подагент для самого написания.» Агент вызовет delegate_task, который автоматически подхватит конфиг делегирования.
Для разовых переключений модели без делегирования используйте /model в CLI:
/model google/gemini-3-flash-preview # переключить для этой сессии
# ... пишите контент ...
/model openai/gpt-5.4 # вернуться обратно
Подробности о делегировании — в Делегирование подагентам.
Несколько агентов на одном номере WhatsApp (привязка к чату)
Сценарий: В OpenClaw у вас было несколько независимых агентов, привязанных к конкретным чатам WhatsApp — один для группы семейного списка покупок, другой для личного чата. Может ли Hermes так же?
Текущее ограничение: Профили Hermes требуют отдельного номера WhatsApp/сессии. Нельзя привязать несколько профилей к разным чатам на одном номере WhatsApp — мост WhatsApp (Baileys) использует одну аутентифицированную сессию на номер.
Обходные пути:
-
Используйте один профиль с переключением личности. Создайте разные контекстные файлы
AGENTS.mdили используйте команду/personalityдля смены поведения в зависимости от чата. Агент видит, в каком он чате, и может адаптироваться. -
Используйте cron-задания для специализированных задач. Для трекера списка покупок настройте cron-задание, которое следит за конкретным чатом и управляет списком — отдельный агент не нужен.
-
Используйте отдельные номера. Если нужны по-настоящему независимые агенты, привяжите каждый профиль к своему номеру WhatsApp. Виртуальные номера от сервисов вроде Google Voice для этого подходят.
-
Используйте Telegram или Discord. Эти платформы лучше поддерживают привязку к чату — каждая группа Telegram или канал Discord получает свою сессию, и можно запускать несколько токенов ботов (один на профиль) на одном аккаунте.
Подробности — в Профили и Настройка WhatsApp.
Управление тем, что показывается в Telegram (скрытие логов и рассуждений)
Сценарий: Вы видите логи выполнения шлюза, рассуждения Hermes и детали вызовов инструментов в Telegram вместо финального ответа.
Решение: Настройка display.tool_progress в config.yaml управляет объёмом отображаемой активности инструментов:
display:
tool_progress: "off" # варианты: off, new, all, verbose
off— Только финальный ответ. Никаких вызовов инструментов, рассуждений, логов.new— Показывает новые вызовы инструментов по мере их появления (краткие однострочники).all— Показывает всю активность инструментов включая результаты.verbose— Полная детализация включая аргументы и вывод инструментов.
Для мессенджеров обычно нужно off или new. После редактирования config.yaml перезапустите шлюз для применения изменений.
Также можно переключать для отдельной сессии командой /verbose (если включено):
display:
tool_progress_command: true # включает /verbose в шлюзе
Управление навыками в Telegram (ограничение slash-команд)
Сценарий: В Telegram есть ограничение в 100 slash-команд, и ваши навыки его превышают. Вы хотите отключить ненужные навыки в Telegram, но настройки hermes skills config не работают.
Решение: Используйте hermes skills config для отключения навыков на конкретной платформе. Это записывается в config.yaml:
skills:
disabled: [] # глобально отключённые навыки
platform_disabled:
telegram: [skill-a, skill-b] # отключены только в telegram
После изменений перезапустите шлюз (hermes gateway restart или остановите и запустите заново). Меню команд Telegram перестраивается при запуске.
Навыки с очень длинными описаниями усекаются до 40 символов в меню Telegram для соответствия ограничениям размера полезной нагрузки. Если навыки не появляются, возможно проблема в общем размере нагрузки, а не в лимите 100 команд — отключение неиспользуемых навыков помогает в обоих случаях.
Общие сессии в тредах (несколько пользователей, один разговор)
Сценарий: У вас есть тред в Telegram или Discord, где несколько человек упоминают бота. Вы хотите, чтобы все упоминания в этом треде были частью одного общего разговора, а не отдельных сессий на пользователя.
Текущее поведение: Hermes создаёт сессии с ключом по ID пользователя на большинстве платформ, поэтому каждый получает свой контекст разговора. Это намеренно — для приватности и изоляции контекста.
Обходные пути:
-
Используйте Slack. Сессии Slack привязаны к треду, а не к пользователю. Несколько пользователей в одном треде разделяют один разговор — именно то поведение, которое вы описываете. Это самый подходящий вариант.
-
Используйте группу с одним пользователем. Если один человек — назначенный «оператор», который транслирует вопросы, сессия остаётся единой. Остальные могут наблюдать.
-
Используйте канал Discord. Сессии Discord привязаны к каналу, поэтому все пользователи в одном канале разделяют контекст. Создайте выделенный канал для общего разговора.
Экспорт Hermes на другую машину
Сценарий: Вы накопили навыки, cron-задания и воспоминания на одной машине и хотите перенести всё на новый выделенный Linux-сервер.
Решение:
-
Установите Hermes Agent на новой машине:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -
На исходной машине создайте полную резервную копию:
hermes backupКоманда создаёт zip всей директории
~/.hermes/— конфиг, API-ключи, воспоминания, навыки, сессии и профили — сохранённый в домашней директории как~/hermes-backup-<timestamp>.zip. -
Скопируйте zip на новую машину и импортируйте:
# На исходной машине scp ~/hermes-backup-<timestamp>.zip newmachine:~/ # На новой машине hermes import ~/hermes-backup-<timestamp>.zip -
На новой машине запустите
hermes setupдля проверки работы API-ключей и конфига провайдера.
Перенос одного профиля на другую машину
Сценарий: Вы хотите перенести или передать один конкретный профиль — не всю установку.
# На исходной машине
hermes profile export work ./work-backup.tar.gz
# Скопируйте файл на целевую машину, затем:
hermes profile import ./work-backup.tar.gz work
Импортированный профиль будет содержать весь конфиг, воспоминания, сессии и навыки из экспорта. Возможно, потребуется обновить пути или повторно пройти аутентификацию у провайдеров, если на новой машине другая конфигурация.
hermes backup vs hermes profile export
| Функция | hermes backup | hermes profile export |
|---|---|---|
| Сценарий | Полная миграция машины | Перенос/совместное использование конкретного профиля |
| Охват | Глобальный (вся директория ~/.hermes) | Локальный (директория одного профиля) |
| Включает | Все профили, глобальный конфиг, API-ключи, сессии | Один профиль: SOUL.md, воспоминания, сессии, навыки |
| Учётные данные | Включены (.env и auth.json) | Исключены (убраны для безопасного обмена) |
| Формат | .zip | .tar.gz |
Ручной запасной вариант (rsync): Если предпочитаете копировать файлы напрямую, исключите репозиторий кода:
rsync -av --exclude='hermes-agent' ~/.hermes/ newmachine:~/.hermes/
hermes backup создаёт согласованный снимок даже пока Hermes активно работает. В восстановленном архиве исключены локальные файлы рантайма вроде gateway.pid и cron.pid.
Permission denied при перезагрузке shell после установки
Сценарий: После запуска установщика Hermes source ~/.zshrc выдаёт ошибку permission denied.
Причина: Обычно это происходит, когда у ~/.zshrc (или ~/.bashrc) неверные права доступа, или установщик не смог записать в него. Это не специфичная для Hermes проблема — это проблема прав на конфиг shell.
Решение:
# Проверьте права
ls -la ~/.zshrc
# Исправьте при необходимости (должно быть -rw-r--r-- или 644)
chmod 644 ~/.zshrc
# Затем перезагрузите
source ~/.zshrc
# Или просто откройте новое окно терминала — изменения PATH подхватятся автоматически
Если установщик добавил строку PATH, но права неверные, можно добавить вручную:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
Ошибка 400 при первом запуске агента
Сценарий: Настройка завершается нормально, но первая попытка чата завершается с HTTP 400.
Причина: Обычно несоответствие имени модели — настроенной модели не существует у провайдера, или у API-ключа нет доступа к ней.
Решение:
# Проверьте, какая модель и провайдер настроены
hermes config show | head -20
# Перезапустите выбор модели
hermes model
# Или протестируйте с заведомо рабочей моделью
hermes chat -q "hello" --model anthropic/claude-opus-4.7
При использовании OpenRouter убедитесь, что на аккаунте есть кредиты. Ошибка 400 от OpenRouter часто означает, что модель требует платного плана или в ID модели опечатка.
Всё ещё не получается?
Если ваша проблема не описана здесь:
- Поищите в существующих ишью: GitHub Issues
- Спросите в сообществе: Discord Nous Research
- Создайте баг-репорт: Укажите ОС, версию Python (
python3 --version), версию Hermes (hermes --version) и полное сообщение об ошибке