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-whisperctranslate2, а 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 и другими. Подробности — в руководстве по конфигурации.

совет
Пользователям Ollama

Если вы задали пользовательский 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, убедитесь, что он включён:

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

Для надёжного авто-запуска используйте Планировщик задач Windows для запуска WSL + шлюза при входе в систему:

  1. Создайте задачу, запускающую wsl -d Ubuntu -- bash -lc 'hermes gateway run'
  2. Настройте триггер при входе пользователя

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) использует одну аутентифицированную сессию на номер.

Обходные пути:

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

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

  3. Используйте отдельные номера. Если нужны по-настоящему независимые агенты, привяжите каждый профиль к своему номеру WhatsApp. Виртуальные номера от сервисов вроде Google Voice для этого подходят.

  4. Используйте 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 пользователя на большинстве платформ, поэтому каждый получает свой контекст разговора. Это намеренно — для приватности и изоляции контекста.

Обходные пути:

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

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

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

Экспорт Hermes на другую машину

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

Решение:

  1. Установите Hermes Agent на новой машине:

    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
  2. На исходной машине создайте полную резервную копию:

    hermes backup

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

  3. Скопируйте zip на новую машину и импортируйте:

    # На исходной машине
    scp ~/hermes-backup-<timestamp>.zip newmachine:~/
    
    # На новой машине
    hermes import ~/hermes-backup-<timestamp>.zip
  4. На новой машине запустите 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 backuphermes 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 модели опечатка.


Всё ещё не получается?

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

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