Перейти к содержимому

FAQ и устранение неполадок

Краткие ответы и исправления для самых распространённых вопросов и проблем.


Hermes Agent работает с любым API, совместимым с OpenAI. Поддерживаемые провайдеры:

  • OpenRouter — доступ к сотням моделей через один ключ API (рекомендуется для гибкости)
  • Nous Portal — собственная точка инференса Nous Research
  • OpenAI — GPT-5.4, GPT-5-codex, GPT-4.1, GPT-4o и другие
  • Anthropic — модели Claude: прямой API, OAuth через hermes login 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. Все ключи провайдеров см. в справочнике Environment Variables.

Не нативно. Hermes Agent требует Unix-подобное окружение. В Windows установите WSL2 и запускайте Hermes внутри него. Стандартная команда установки отлично работает в WSL2:

Окно терминала
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Я запускаю Hermes в WSL2. Как лучше всего управлять моим обычным Chrome в Windows?

Заголовок раздела «Я запускаю Hermes в WSL2. Как лучше всего управлять моим обычным Chrome в Windows?»

Лучше использовать MCP-мост, а не /browser connect.

Рекомендуемый подход:

  • запускайте Hermes внутри WSL2
  • продолжайте использовать свой обычный Chrome в Windows, в котором уже выполнен вход
  • добавьте chrome-devtools-mcp как сервер MCP через cmd.exe или powershell.exe
  • позвольте Hermes использовать получившиеся браузерные инструменты MCP

Это надёжнее, чем пытаться подключить встроенный браузерный транспорт Hermes напрямую через границу WSL2/Windows.

См.:

Да — у Hermes теперь есть протестированный путь установки через Termux для Android-телефонов.

Быстрая установка:

Окно терминала
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

Полные явные ручные шаги, поддерживаемые дополнения и текущие ограничения см. в руководстве по Termux.

Важное ограничение: полное дополнение .[all] сейчас недоступно на Android, потому что дополнение voice зависит от faster-whisperctranslate2, а ctranslate2 не публикует Android wheels. Вместо этого используйте протестированное дополнение .[termux].

Вызовы API идут только к настроенному вами провайдеру LLM (например, OpenRouter, ваш локальный экземпляр Ollama). Hermes Agent не собирает телеметрию, данные об использовании или аналитику. Ваши разговоры, память и навыки хранятся локально в ~/.hermes/.

Можно ли использовать это офлайн / с локальными моделями?

Заголовок раздела «Можно ли использовать это офлайн / с локальными моделями?»

Да. Запустите hermes model, выберите Custom endpoint и введите URL вашего сервера:

11434/v1
hermes model
# Select: Custom endpoint (enter URL manually)
# API key: ollama
# Model name: qwen3.5:27b
# Context length: 32768 ← set this to match your server's actual context window

Или настройте это напрямую в config.yaml:

model:
default: qwen3.5:27b
provider: custom
base_url: http://localhost:11434/v1

Hermes сохраняет endpoint, провайдер и базовый URL в config.yaml, поэтому настройки сохраняются после перезапуска. Если на вашем локальном сервере загружена ровно одна модель, /model custom определит её автоматически. Вы также можете задать provider: custom в config.yaml — это полноценный провайдер, а не псевдоним чего-либо ещё.

Это работает с Ollama, vLLM, llama.cpp server, SGLang, LocalAI и другими. Подробности см. в руководстве по конфигурации.

:::tip Пользователи Ollama Если вы задаёте пользовательский num_ctx в Ollama (например, ollama run --num_ctx 16384), обязательно установите соответствующую длину контекста в Hermes — /api/show у Ollama сообщает максимальный контекст модели, а не фактический num_ctx, который вы настроили. :::

:::tip Тайм-ауты с локальными моделями Hermes автоматически определяет локальные endpoint’ы и ослабляет тайм-ауты стриминга (тайм-аут чтения увеличен с 120s до 1800s, обнаружение зависшего потока отключено). Если вы всё ещё сталкиваетесь с тайм-аутами на очень больших контекстах, установите HERMES_STREAM_READ_TIMEOUT=1800 в вашем .env. Подробности см. в руководстве по локальному LLM. :::

Сам Hermes Agent бесплатный и с открытым исходным кодом (лицензия MIT). Вы платите только за использование LLM API у выбранного провайдера. Локальные модели полностью бесплатны в запуске.

Могут ли несколько человек использовать один экземпляр?

Заголовок раздела «Могут ли несколько человек использовать один экземпляр?»

Да. Шлюз сообщений позволяет нескольким пользователям работать с одним экземпляром Hermes Agent через Telegram, Discord, Slack, WhatsApp или Home Assistant. Доступ ограничивается allowlist-списками с ID пользователей и привязкой личных сообщений: доступ получает первый пользователь, который написал боту.

  • Память хранит факты — то, что агент знает о вас, ваших проектах и предпочтениях. Воспоминания автоматически извлекаются на основе релевантности.
  • Навыки хранят процедуры — пошаговые инструкции о том, как что-то делать. Навыки вызываются, когда агент сталкивается с похожей задачей.

Оба сохраняются между сессиями. Подробности см. в разделах Память и Навыки.

Можно ли использовать это в моём собственном Python-проекте?

Заголовок раздела «Можно ли использовать это в моём собственном 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.


Причина: оболочка ещё не перечитала обновлённый PATH.

Решение:

Окно терминала
# Перечитать профиль оболочки
source ~/.bashrc # bash
source ~/.zshrc # zsh
# Или просто открыть новый терминал

Если это всё ещё не работает, проверьте место установки:

Окно терминала
which hermes
ls ~/.local/bin/hermes

Причина: 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, …)

Заголовок раздела «Команды терминала показывают 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, где ничего заранее не загрузило профиль интерактивной shell.

Решение: по умолчанию Hermes сам подключает ~/.bashrc. Если этого недостаточно, например у вас PATH живёт в ~/.zshrc или nvm подключается отдельным файлом, перечислите дополнительные файлы в ~/.hermes/config.yaml:

terminal:
shell_init_files:
- ~/.zshrc
# zsh users: pulls zsh-managed PATH into the bash snapshot
- ~/.nvm/nvm.sh
# direct nvm init (works regardless of shell)
- /etc/profile.d/cargo.sh
# system-wide rc files
# When this list is set, the default ~/.bashrc auto-source is NOT added —
# include it explicitly if you want both:
#
- ~/.bashrc
#
- ~/.zshrc
```Отсутствующие файлы пропускаются без сообщений. Подключение выполняется в bash, поэтому файлы, зависящие от синтаксиса только для zsh, могут вызывать ошибки — если это важно, подключайте только часть, задающую PATH (например, напрямую `nvm.sh` от nvm), а не весь rc-файл.
Чтобы отключить поведение auto-source (только строгая семантика login-shell):
```yaml
terminal:
auto_source_bashrc: false

Причина: Менеджер пакетов uv не установлен или отсутствует в PATH.

Решение:

Окно терминала
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc

Причина: Недостаточно прав для записи в каталог установки.

Решение:

Окно терминала
# Don't use sudo with the installer — it installs to ~/.local/bin
# If you previously installed with sudo, clean up:
sudo rm /usr/local/bin/hermes
# Then re-run the standard installer
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

/model показывает только одного провайдера / не удаётся переключать провайдеров

Заголовок раздела «/model показывает только одного провайдера / не удаётся переключать провайдеров»

Причина: /model (внутри чат-сессии) может переключаться только между провайдерами, которые вы уже настроили. Если у вас настроен только OpenRouter, то /model будет показывать только его.

Решение: Выйдите из сессии и используйте hermes model в терминале, чтобы добавить новых провайдеров:

Окно терминала
# Exit the Hermes chat session first (Ctrl+C or /quit)
# Run the full provider setup wizard
hermes model
# This lets you: add providers, run OAuth, enter API keys, configure endpoints

После добавления нового провайдера через hermes model запустите новую чат-сессию — теперь /model покажет всех настроенных провайдеров.

:::tip Краткая справка

Хотите…Используйте
Добавить нового провайдераhermes model (из терминала)
Enter/change ключи APIhermes model (из терминала)
Переключить модель в середине сессии/model <name> (внутри сессии)
Переключиться на другого настроенного провайдера/model provider:model (внутри сессии)
:::

Причина: Ключ отсутствует, истёк, задан неверно или относится не к тому провайдеру.

Решение:

bash
# Проверьте вашу конфигурацию
hermes config show
# Перенастройте своего провайдера
hermes model
# Или задайте напрямую
hermes config set OPENROUTER_API_KEY sk-or-v1-xxxxxxxxxxxx

Make sure the key matches the provider. An OpenAI key won’t work with OpenRouter and vice versa. Check ~/.hermes/.env for conflicting entries.

Cause: The model identifier is incorrect or not available on your provider.

Solution:

bash
# Показать доступные модели для вашего провайдера
hermes model
# Установить корректную модель
hermes config set HERMES_MODEL anthropic/claude-opus-4.7
# Или указать для конкретной сессии
hermes chat --model openrouter/meta-llama/llama-3.1-70b-instruct

Cause: You’ve exceeded your provider’s rate limits.

Solution: Wait a moment and retry. For sustained usage, consider:

  • Upgrading your provider plan
  • Switching to a different model or provider
  • Using hermes chat --provider <alternative> to route to a different backend

Cause: The conversation has grown too long for the model’s context window, or Hermes detected the wrong context length for your model.

Solution:

bash
# Сжать текущую сессию
/compress
# Или начать новую сессию
hermes chat
# Использовать модель с большим окном контекста
hermes chat --model openrouter/google/gemini-3-flash-preview

If this happens on the first long conversation, Hermes may have the wrong context length for your model. Check what it detected:

Look at the CLI startup line — it shows the detected context length (e.g., 📊 Context limit: 128000 tokens). You can also check with /usage during a session.

To fix context detection, set it explicitly:

yaml
# В ~/.hermes/config.yaml
model:
default: your-model-name
context_length: 131072
# фактическое окно контекста вашей модели

Or for custom endpoints, add it per-model:

yaml
custom_providers:
- name: "My Server"
base_url: "http://localhost:11434/v1"
models:
qwen3.5:27b:
context_length: 32768

См. Определение длины контекста, чтобы понять, как работает автоопределение и какие есть варианты переопределения.


Причина: Hermes обнаружил потенциально разрушительную команду (например, rm -rf, DROP TABLE). Это функция безопасности.

Решение: Когда появится prompt, проверьте команду и введите y, чтобы одобрить её. Вы также можете:

Причина: Messaging gateway работает без интерактивного терминала, поэтому sudo не может запросить пароль.

Решение:

  • Избегайте sudo в сообщениях — попросите агента найти альтернативы
  • Если вам необходимо использовать sudo, настройте passwordless sudo для определённых команд в /etc/sudoers
  • Или переключитесь на интерфейс терминала для административных задач: hermes chat

Причина: Docker daemon не запущен, или у пользователя нет прав.

Решение:

Окно терминала
# Check Docker is running
docker info
# Add your user to the docker group
sudo usermod -aG docker $USER
newgrp docker
# Verify
docker run hello-world

Причина: Бот не запущен, не авторизован, или вашего пользователя нет в allowlist.

Решение:

Окно терминала
# Check if the gateway is running
hermes gateway status
# Start the gateway
hermes gateway start
# Check logs for errors
cat ~/.hermes/logs/gateway.log | tail -50

Причина: Проблемы с сетью, срок действия токена бота истёк, или webhook платформы настроен неверно.

Решение:

  • Убедитесь, что токен вашего бота действителен, с помощью hermes gateway setup
  • Проверьте логи gateway: cat ~/.hermes/logs/gateway.log | tail -50
  • Для платформ на основе webhook (Slack, WhatsApp) убедитесь, что ваш сервер доступен публично

Путаница с allowlist — кто может общаться с ботом?

Заголовок раздела «Путаница с allowlist — кто может общаться с ботом?»

Причина: Режим авторизации определяет, кто получает доступ.

Решение:| Режим | Как это работает | |------|-------------| | Allowlist | Взаимодействовать могут только ID пользователей, перечисленные в config | | DM pairing | Первый пользователь, написавший в DM, получает эксклюзивный доступ | | Open | Взаимодействовать может любой (не рекомендуется для production) |

Настройте это в ~/.hermes/config.yaml в параметрах вашего gateway. См. документацию по Messaging.

Причина: Отсутствуют зависимости, есть конфликты портов или неправильно настроены токены.

Решение:

Окно терминала
# Install core messaging gateway dependencies
pip install "hermes-agent[messaging]"
# Telegram, Discord, Slack, and shared gateway deps
# Check for port conflicts
lsof -i :8080
# Verify configuration
hermes config show

WSL: Gateway продолжает отключаться или hermes gateway start не работает

Заголовок раздела «WSL: Gateway продолжает отключаться или hermes gateway start не работает»

Причина: Поддержка systemd в WSL ненадежна. Во многих установках WSL2 systemd не включен, и даже когда он включен, сервисы могут не переживать перезапуски WSL или отключения Windows при простое.

Решение: Используйте режим foreground вместо сервиса systemd:

Окно терминала
# Option 1: Direct foreground (simplest)
hermes gateway run
# Option 2: Persistent via tmux (survives terminal close)
tmux new -s hermes 'hermes gateway run'
# Reattach later: tmux attach -t hermes
# Option 3: Background via nohup
nohup hermes gateway run > ~/.hermes/logs/gateway.log 2>&1 &

Если вы все же хотите попробовать systemd, убедитесь, что он включен:

  1. Откройте /etc/wsl.conf (создайте, если его не существует)
  2. Добавьте:
[boot]
systemd=true
  1. Из PowerShell: wsl --shutdown
  2. Снова откройте ваш терминал WSL
  3. Проверьте: systemctl is-system-running должно показать “running” или “degraded”

:::tip Автозапуск при загрузке Windows Для надежного автозапуска используйте Windows Task Scheduler, чтобы запускать WSL + gateway при входе в систему:

  1. Создайте задачу, которая запускает wsl -d Ubuntu -- bash -lc 'hermes gateway run'
  2. Установите срабатывание при входе пользователя в систему :::

macOS: Node.js / ffmpeg / другие инструменты не находятся gatewayПричина: сервисы launchd наследуют минимальный PATH (/usr/bin:/bin:/usr/sbin:/sbin), который не включает Homebrew, nvm, cargo или другие каталоги инструментов, установленных пользователем. Это часто ломает мост WhatsApp (node not found) или расшифровку голоса (ffmpeg not found).

Заголовок раздела «macOS: Node.js / ffmpeg / другие инструменты не находятся gatewayПричина: сервисы launchd наследуют минимальный PATH (/usr/bin:/bin:/usr/sbin:/sbin), который не включает Homebrew, nvm, cargo или другие каталоги инструментов, установленных пользователем. Это часто ломает мост WhatsApp (node not found) или расшифровку голоса (ffmpeg not found).»

Решение: gateway захватывает ваш shell PATH, когда вы запускаете hermes gateway install. Если вы установили инструменты после настройки gateway, повторно запустите установку, чтобы захватить обновлённый PATH:

Окно терминала
hermes gateway install
# Re-snapshots your current PATH
hermes gateway start
# Detects the updated plist and reloads

Вы можете проверить, что plist содержит правильный PATH:

Окно терминала
/usr/libexec/PlistBuddy -c "Print :EnvironmentVariables:PATH" \
~/Library/LaunchAgents/ai.hermes.gateway.plist

Причина: Большая модель, удалённый сервер API или тяжёлый системный prompt с множеством инструментов.

Решение:

  • Попробуйте модель faster/smaller: hermes chat --model openrouter/meta-llama/llama-3.1-8b-instruct
  • Уменьшите активные наборы инструментов: hermes chat -t "terminal"
  • Проверьте задержку сети до провайдера
  • Для локальных моделей убедитесь, что у вас достаточно GPU VRAM

Причина: Длинные разговоры, многословные системные prompt’ы или множество вызовов инструментов, накапливающих контекст.

Решение:

Окно терминала
# Compress the conversation to reduce tokens
/compress
# Check session token usage
/usage

Причина: Длительные разговоры накапливают сообщения и выводы инструментов, приближаясь к пределам контекста.

Решение:

Окно терминала
# Compress current session (preserves key context)
/compress
# Start a new session with a reference to the old one
hermes chat
# Resume a specific session later if needed
hermes chat --continue

Причина: Не найден бинарный файл сервера, неверный путь к команде или отсутствующая среда выполнения.Решение:

Окно терминала
# Ensure MCP dependencies are installed (already included in standard install)
cd ~/.hermes/hermes-agent && uv pip install -e ".[mcp]"
# For npm-based servers, ensure Node.js is available
node --version
npx --version
# Test the server manually
npx -y @modelcontextprotocol/server-filesystem /tmp

Проверьте конфигурацию вашего ~/.hermes/config.yaml MCP:

mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]

Причина: Сервер запустился, но обнаружение инструментов не удалось, инструменты были отфильтрованы конфигурацией, или сервер не поддерживает возможность MCP, которую вы ожидали.

Решение:

  • Проверьте логи gateway/agent на наличие ошибок подключения MCP
  • Убедитесь, что сервер отвечает на метод tools/list RPC
  • Проверьте любые настройки tools.include, tools.exclude, tools.resources, tools.prompts или enabled для этого сервера
  • Помните, что служебные инструменты resource/prompt регистрируются только тогда, когда сессия действительно поддерживает эти возможности
  • Используйте /reload-mcp после изменения конфигурации
Окно терминала
# Verify MCP servers are configured
hermes config show | grep -A 12 mcp_servers
# Restart Hermes or reload MCP after config changes
hermes chat

См. также:

Причина: Сервер MCP слишком долго отвечает или завершился с ошибкой во время выполнения.

Решение:

  • Увеличьте тайм-аут в конфигурации вашего сервера MCP, если это поддерживается
  • Проверьте, продолжает ли работать процесс сервера MCP
  • Для удалённых серверов HTTP MCP проверьте сетевое подключение

Если сервер MCP аварийно завершается в середине запроса, Hermes сообщит о тайм-ауте. Чтобы диагностировать первопричину, проверьте собственные логи сервера (а не только логи Hermes).


Чем профили отличаются от простого задания HERMES_HOME?Профили — это управляемый слой поверх HERMES_HOME. Вы могли бы вручную задавать HERMES_HOME=/some/path перед каждой командой, но профили берут всю рутину на себя: создают структуру каталогов, генерируют alias’ы shell (hermes-work), отслеживают активный профиль в ~/.hermes/active_profile, и автоматически синхронизируют обновления навыков во всех профилях. Они также интегрируются с tab completion, поэтому вам не нужно запоминать пути.

Заголовок раздела «Чем профили отличаются от простого задания HERMES_HOME?Профили — это управляемый слой поверх HERMES_HOME. Вы могли бы вручную задавать HERMES_HOME=/some/path перед каждой командой, но профили берут всю рутину на себя: создают структуру каталогов, генерируют alias’ы shell (hermes-work), отслеживают активный профиль в ~/.hermes/active_profile, и автоматически синхронизируют обновления навыков во всех профилях. Они также интегрируются с tab completion, поэтому вам не нужно запоминать пути.»

Могут ли два профиля использовать один и тот же bot token?

Заголовок раздела «Могут ли два профиля использовать один и тот же bot token?»

Нет. Каждая платформа обмена сообщениями (Telegram, Discord и т. д.) требует эксклюзивного доступа к bot token. Если два профиля попытаются одновременно использовать один и тот же token, второй gateway не сможет подключиться. Создайте отдельного бота для каждого профиля — для Telegram обратитесь к @BotFather, чтобы создать дополнительных ботов.

Нет. У каждого профиля есть собственное хранилище памяти, база данных сессий и каталог навыков. Они полностью изолированы. Если вы хотите создать новый профиль с уже существующими памятью и сессиями, используйте hermes profile create newname --clone-all, чтобы скопировать всё из текущего профиля.

hermes update получает последний код и переустанавливает зависимости один раз (не для каждого профиля). Затем он автоматически синхронизирует обновлённые навыки со всеми профилями. Вам нужно запустить hermes update только один раз — это охватывает каждый профиль на машине.

Жёсткого ограничения нет. Каждый профиль — это просто каталог в ~/.hermes/profiles/. Практический предел зависит от объёма дискового пространства и от того, сколько одновременных gateway может обработать ваша система (каждый gateway — это лёгкий Python-процесс). Запуск десятков профилей — это нормально; каждый неактивный профиль не использует ресурсы.


Использование разных моделей для разных задач (multi-model workflows)

Заголовок раздела «Использование разных моделей для разных задач (multi-model workflows)»

Сценарий: Вы используете GPT-5.4 как основную модель на каждый день, но Gemini или Grok лучше пишут контент для соцсетей. Каждый раз вручную переключать модели утомительно.

Решение: конфигурация делегирования. Hermes может автоматически направлять subagents на другую модель. Настройте это в ~/.hermes/config.yaml:

delegation:
model: "google/gemini-3-flash-preview"
# subagents use this model
provider: "openrouter"
# provider for subagents

Теперь, когда вы говорите Hermes «напиши мне тред для Twitter о X», и он запускает субагент delegate_task, этот субагент работает на Gemini вместо вашей основной модели. Ваш основной разговор остаётся на GPT-5.4.

Вы также можете явно указать это в своём prompt: «Делегируй задачу по написанию постов для соцсетей о запуске нашего продукта. Используй своего субагента для самого написания.» Агент будет использовать delegate_task, который автоматически подхватывает конфигурацию делегирования.

Для разовых переключений модели без делегирования используйте /model в CLI:

Окно терминала
/model google/gemini-3-flash-preview
# switch for this session
# ... write your content ...
/model openai/gpt-5.4
# switch back

Подробнее о том, как работает делегирование, см. в Делегирование субагенту.

Запуск нескольких агентов на одном номере WhatsApp (привязка к чату)

Заголовок раздела «Запуск нескольких агентов на одном номере WhatsApp (привязка к чату)»

Сценарий: В OpenClaw у вас было несколько независимых агентов, привязанных к конкретным чатам WhatsApp — один для группы семейного списка покупок, другой для вашего личного чата. Может ли Hermes делать так же?

Текущее ограничение: Для каждого профиля Hermes требуется собственный WhatsApp number/session. Вы не можете привязать несколько профилей к разным чатам на одном и том же номере WhatsApp — мост WhatsApp (Baileys) использует одну аутентифицированную сессию на номер.

Обходные варианты:

  1. Используйте один профиль с переключением личности. Создайте разные файлы контекста AGENTS.md или используйте команду /personality, чтобы менять поведение для каждого чата. Агент видит, в каком чате он находится, и может адаптироваться.

  2. Используйте cron jobs для специализированных задач. Для трекера списка покупок настройте cron job, который отслеживает конкретный чат и управляет списком — отдельный агент не нужен.

  3. Используйте отдельные номера. Если вам нужны действительно независимые агенты, привяжите каждый профиль к своему номеру WhatsApp. Для этого подходят виртуальные номера из сервисов вроде Google Voice.4. Вместо этого используйте Telegram или Discord. Эти платформы более естественно поддерживают привязку к каждому чату — каждая группа Telegram или канал Discord получает собственную сессию, и вы можете запускать несколько токенов бота (по одному на профиль) в одной учётной записи.

Подробнее см. в Profiles и WhatsApp setup.

Управление тем, что отображается в Telegram (скрытие логов и рассуждений)

Заголовок раздела «Управление тем, что отображается в Telegram (скрытие логов и рассуждений)»

Сценарий: В Telegram вы видите логи выполнения gateway, рассуждения Hermes и сведения о вызовах инструментов вместо только итогового результата.

Решение: Настройка display.tool_progress в config.yaml управляет тем, какой объём активности инструментов показывается:

display:
tool_progress: "off"
# options: off, new, all, verbose
  • off — Только финальный ответ. Без вызовов инструментов, без рассуждений, без логов.
  • new — Показывает новые вызовы инструментов по мере их выполнения (краткие однострочные сообщения).
  • all — Показывает всю активность инструментов, включая результаты.
  • verbose — Полная детализация, включая аргументы инструментов и выходные данные.

Для платформ обмена сообщениями обычно подходят off или new. После изменения config.yaml перезапустите gateway, чтобы изменения вступили в силу.

Вы также можете переключать это для каждой сессии с помощью команды /verbose (если включено):

display:
tool_progress_command: true
# enables /verbose in the gateway

Управление навыками в Telegram (лимит slash-команд)

Заголовок раздела «Управление навыками в Telegram (лимит slash-команд)»

Сценарий: В Telegram действует лимит в 100 slash-команд, и ваши навыки его превышают. Вы хотите отключить навыки, которые не нужны в Telegram, но настройки hermes skills config не дают эффекта.

Решение: Используйте hermes skills config, чтобы отключать навыки для каждой платформы. Это записывается в config.yaml:

skills:
disabled: []
# globally disabled skills
platform_disabled:
telegram: [skill-a, skill-b]
# disabled only on telegram

После этого перезапустите gateway (hermes gateway restart или завершите процесс и запустите заново). Меню команд Telegram-бота пересобирается при запуске.

Общие thread-сессии (несколько пользователей, один разговор)

Заголовок раздела «Общие thread-сессии (несколько пользователей, один разговор)»

Сценарий: У вас есть thread в Telegram или Discord, где несколько людей упоминают бота. Вы хотите, чтобы все упоминания в этом thread были частью одного общего разговора, а не отдельными сессиями для каждого пользователя.

Текущее поведение: Hermes создаёт сессии с ключом по ID пользователя на большинстве платформ, поэтому каждый человек получает свой собственный контекст разговора. Это сделано намеренно для приватности и изоляции контекста.

Обходные варианты:

  1. Используйте Slack. В Slack сессии привязаны к thread, а не к пользователю. Несколько пользователей в одном thread разделяют один разговор — именно то поведение, которое вы описываете. Это самый естественный вариант.

  2. Используйте групповой чат с одним пользователем. Если один человек назначен «оператором», который передаёт вопросы, сессия остаётся единой. Остальные могут просто следить за разговором.

  3. Используйте канал Discord. В Discord сессии привязаны к каналу, поэтому все пользователи в одном канале разделяют контекст. Используйте отдельный канал для общего разговора.

Сценарий: Вы накопили навыки, cron jobs и память на одной машине и хотите перенести всё на новый выделенный Linux-сервер.

Решение:

  1. Установите Hermes Agent на новую машину:
Окно терминала
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
  1. На исходной машине создайте полную резервную копию:
Окно терминала
hermes backup

Это создаст zip-архив всего вашего каталога ~/.hermes/ — config, ключи API, память, навыки, сессии и профили — сохранённый в вашем домашнем каталоге как ~/hermes-backup-<timestamp>.zip.

  1. Скопируйте zip-архив на новую машину и импортируйте его:
Окно терминала
# On the source machine
scp ~/hermes-backup-<timestamp>.zip newmachine:~/
# On the new machine
hermes import ~/hermes-backup-<timestamp>.zip
```4. На новой машине запустите `hermes setup`, чтобы проверить, что ключи API и конфигурация провайдера работают.
### Перенос одного профиля на другую машину
**Сценарий:** Вы хотите перенести или поделиться одним конкретным профилем, а не всей установкой целиком.
```bash
# On the source machine
hermes profile export work ./work-backup.tar.gz
# Copy the file to the target machine, then:
hermes profile import ./work-backup.tar.gz work

Импортированный профиль будет содержать всю конфигурацию, память, сессии и навыки из экспорта. Возможно, вам потребуется обновить пути или повторно пройти аутентификацию у провайдеров, если на новой машине используется другая настройка.

Возможностьhermes backuphermes profile export
Сценарий использованияПолная миграция машиныPorting/sharing конкретного профиля
ОбластьГлобальная (весь каталог ~/.hermes)Локальная (каталог одного профиля)
ВключаетВсе профили, глобальную конфигурацию, ключи API, сессииОдин профиль: SOUL.md, память, сессии, навыки
Учётные данныеВключены (.env и auth.json)Исключены (удаляются для безопасного обмена)
Формат.zip.tar.gz

Ручной запасной вариант (rsync): Если вы предпочитаете копировать файлы напрямую, исключите репозиторий кода:

Окно терминала
rsync -av --exclude='hermes-agent' ~/.hermes/ newmachine:~/.hermes/

Permission denied при перезагрузке shell после установки

Заголовок раздела «Permission denied при перезагрузке shell после установки»

Сценарий: После запуска установщика Hermes команда source ~/.zshrc выдаёт ошибку permission denied.

Причина: Обычно это происходит, когда у ~/.zshrc (или ~/.bashrc) неверные права доступа к файлу или когда установщик не смог корректно записать в него. Это не проблема, специфичная для Hermes — это проблема с правами доступа в конфигурации shell.

Решение:

Окно терминала
# Check permissions
ls -la ~/.zshrc
# Fix if needed (should be -rw-r--r-
- or 644)
chmod 644 ~/.zshrc
# Then reload
source ~/.zshrc
# Or just open a new terminal window — it picks up PATH changes automatically
```Если установщик добавил строку PATH, но права доступа неверны, вы можете добавить её вручную:
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

Сценарий: Настройка завершается успешно, но первая попытка чата завершается ошибкой HTTP 400.

Причина: Обычно это несоответствие имени модели — настроенная модель не существует у вашего провайдера, либо ключ API не имеет к ней доступа.

Решение:

Окно терминала
# Check what model and provider are configured
hermes config show | head -20
# Re-run model selection
hermes model
# Or test with a known-good model
hermes chat -q "hello" --model anthropic/claude-opus-4.7

Если вы используете OpenRouter, убедитесь, что на вашем ключе API есть кредиты. Ошибка 400 от OpenRouter часто означает, что для модели требуется платный план или в ID модели есть опечатка.


Если ваша проблема здесь не описана:

  1. Поищите существующие issues: GitHub Issues
  2. Спросите сообщество: Nous Research Discord
  3. Отправьте bug report: Укажите вашу ОС, версию Python (python3 --version), версию Hermes (hermes --version) и полное сообщение об ошибке