Запускайте несколько независимых агентов Hermes на одной машине — каждый со своей конфигурацией, API-ключами, памятью, сессиями, навыками и состоянием gateway.
Что такое профили?
Профиль — это отдельный домашний каталог Hermes. Каждый профиль получает свой собственный каталог, содержащий собственные config.yaml, .env, SOUL.md, воспоминания, сессии, навыки, cron-задания и базу данных состояний. Профили позволяют запускать отдельных агентов для разных целей — помощник по кодированию, личный бот, исследовательский агент — без смешивания состояния Hermes.
При создании профиля он автоматически становится собственной командой. Создайте профиль с именем coder, и у вас сразу появятся coder chat, coder setup, coder gateway start и т.д.
Быстрый старт
hermesprofilecreatecoder# creates profile + "coder" command alias
codersetup# configure API keys and model
coderchat# start chatting
Вот и всё. coder теперь является отдельным профилем Hermes с собственной конфигурацией, памятью и состоянием.
Создание профиля
Пустой профиль
hermesprofilecreatemybot
Создаёт свежий профиль с встроенными навыками. Запустите mybot setup для настройки API-ключей, модели и токенов gateway.
Клонирование только конфигурации (--clone)
hermesprofilecreatework--clone
Копирует config.yaml, .env и SOUL.md текущего профиля в новый профиль. Те же API-ключи и модель, но свежие сессии и память. Отредактируйте ~/.hermes/profiles/work/.env для других API-ключей или ~/.hermes/profiles/work/SOUL.md для другой личности.
Клонирование всего (--clone-all)
hermesprofilecreatebackup--clone-all
Копирует всё — конфигурацию, API-ключи, личность, все воспоминания, полную историю сессий, навыки, cron-задания, плагины. Полный снимок. Полезно для резервного копирования или разветвления агента, который уже имеет контекст.
Клонирование из конкретного профиля
hermesprofilecreatework--clone--clone-fromcoder
tip Honcho memory + profiles
When Honcho is enabled, --clone automatically creates a dedicated AI peer for the new profile while sharing the same user workspace. Each profile builds its own observations and identity. See Honcho -- Multi-agent / Profiles for details.
Использование профилей
Псевдонимы команд
Каждый профиль автоматически получает псевдоним команды в ~/.local/bin/<name>:
coderchat# chat with the coder agent
codersetup# configure coder's settings
codergatewaystart# start coder's gateway
coderdoctor# check coder's health
coderskillslist# list coder's skills
coderconfigsetmodel.defaultanthropic/claude-sonnet-4
Псевдоним работает с каждой подкомандой hermes — это просто hermes -p <name> под капотом.
Флаг -p
Вы также можете явно указать профиль с любой командой:
hermes-pcoderchat
hermes--profile=coderdoctor
hermeschat-pcoder-q"hello"# works in any position
Привязка по умолчанию (hermes profile use)
hermesprofileusecoder
hermeschat# now targets coder
hermestools# configures coder's tools
hermesprofileusedefault# switch back
Устанавливает профиль по умолчанию, чтобы обычные команды hermes были направлены на этот профиль. Как kubectl config use-context.
Определение текущего профиля
CLI всегда показывает, какой профиль активен:
Приглашение: coder ❯ вместо ❯
Баннер: Показывает Профиль: coder при запуске
hermes profile: Показывает имя текущего профиля, путь, модель, статус gateway
Профили vs рабочие пространства vs песочницы
Профили часто путают с рабочими пространствами или песочницами, но это разные вещи:
Профиль даёт Hermes собственный каталог состояния: config.yaml, .env, SOUL.md, сессии, память, логи, cron-задания и состояние gateway.
Рабочее пространство или рабочий каталог — это место, откуда запускаются терминальные команды. Это контролируется отдельно через terminal.cwd.
Песочница — это то, что ограничивает доступ к файловой системе. Профили не изолируют агента.
На терминальном бэкенде по умолчанию local агент по-прежнему имеет тот же доступ к файловой системе, что и ваша учётная запись пользователя. Профиль не запрещает ему доступ к папкам за пределами каталога профиля.
Если вы хотите, чтобы профиль запускался в определённой папке проекта, установите явный абсолютный terminal.cwd в config.yaml этого профиля:
Использование cwd: "." на локальном бэкенде означает «каталог, из которого был запущен Hermes», а не «каталог профиля».
Также обратите внимание:
SOUL.md может направлять модель, но не устанавливает границы рабочего пространства.
Изменения в SOUL.md вступают в силу чисто в новой сессии. Существующие сессии могут по-прежнему использовать старое состояние промпта.
Спрашивать модель «в каком каталоге вы находитесь?» — ненадёжный тест изоляции. Если вам нужен предсказуемый начальный каталог для инструментов, установите terminal.cwd явно.
Запуск gateway
Каждый профиль запускает свой собственный gateway как отдельный процесс с собственным токеном бота:
Если два профиля случайно используют один и тот же токен бота, второй gateway будет заблокирован с понятной ошибкой, указывающей конфликтующий профиль. Поддерживается для Telegram, Discord, Slack, WhatsApp и Signal.
Постоянные службы
codergatewayinstall# creates hermes-gateway-coder systemd/launchd service
assistantgatewayinstall# creates hermes-gateway-assistant service
Каждый профиль получает собственное имя службы. Они работают независимо.
Настройка профилей
Каждый профиль имеет собственные:
config.yaml — model, provider, toolsets, all settings
.env — API keys, bot tokens
SOUL.md — personality and instructions
coderconfigsetmodel.defaultanthropic/claude-sonnet-4
echo"You are a focused coding assistant.">~/.hermes/profiles/coder/SOUL.md
Если вы хотите, чтобы этот профиль по умолчанию работал в определённом проекте, также установите его собственный terminal.cwd:
Навыки, изменённые пользователем, никогда не перезаписываются.
Управление профилями
hermesprofilelist# show all profiles with status
hermesprofileshowcoder# detailed info for one profile
hermesprofilerenamecoderdev-bot# rename (updates alias + service)
hermesprofileexportcoder# export to coder.tar.gz
hermesprofileimportcoder.tar.gz# import from archive
Удаление профиля
hermesprofiledeletecoder
Это останавливает gateway, удаляет службу systemd/launchd, удаляет псевдоним команды и удаляет все данные профиля. Вам будет предложено ввести имя профиля для подтверждения.
Используйте --yes, чтобы пропустить подтверждение: hermes profile delete coder --yes
Вы не можете удалить профиль по умолчанию (`~/.hermes`). Чтобы удалить всё, используйте `hermes uninstall`.
Добавьте строку в ваш ~/.bashrc или ~/.zshrc для постоянного автодополнения. Дополняет имена профилей после -p, подкоманды профиля и команды верхнего уровня.
Как это работает
Профили используют переменную окружения HERMES_HOME. Когда вы запускаете coder chat, скрипт-обёртка устанавливает HERMES_HOME=~/.hermes/profiles/coder перед запуском hermes. Поскольку 119+ файлов в кодовой базе разрешают пути через get_hermes_home(), состояние Hermes автоматически ограничивается каталогом профиля — конфигурация, сессии, память, навыки, база данных состояний, PID gateway, логи и cron-задания.
Это отдельно от рабочего каталога терминала. Выполнение инструментов начинается с terminal.cwd (или каталога запуска при cwd: "." на локальном бэкенде), а не автоматически с HERMES_HOME.
Профиль по умолчанию — это просто ~/.hermes. Миграция не требуется — существующие установки работают идентично.
Обмен профилями как дистрибутивами
Профиль, созданный вами на одной машине, можно упаковать как git-репозиторий и установить одной командой на другую машину — вашу рабочую станцию, ноутбук коллеги или среду пользователя сообщества. Общий пакет включает SOUL, конфигурацию, навыки, cron-задания и MCP-подключения. Учётные данные, воспоминания и сессии остаются на каждой машине.
# Install a whole agent from a git repo
hermesprofileinstallgithub.com/you/research-bot--alias
# Update later when the author ships a new version (keeps your memories + .env)
hermesprofileupdateresearch-bot