Профили: запуск нескольких агентов

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

Что такое профили?

Профиль — это отдельный домашний каталог Hermes. Каждый профиль получает свой собственный каталог, содержащий собственные config.yaml, .env, SOUL.md, воспоминания, сессии, навыки, cron-задания и базу данных состояний. Профили позволяют запускать отдельных агентов для разных целей — помощник по кодированию, личный бот, исследовательский агент — без смешивания состояния Hermes.

При создании профиля он автоматически становится собственной командой. Создайте профиль с именем coder, и у вас сразу появятся coder chat, coder setup, coder gateway start и т.д.

Быстрый старт

hermes profile create coder       # creates profile + "coder" command alias
coder setup                       # configure API keys and model
coder chat                        # start chatting

Вот и всё. coder теперь является отдельным профилем Hermes с собственной конфигурацией, памятью и состоянием.

Создание профиля

Пустой профиль

hermes profile create mybot

Создаёт свежий профиль с встроенными навыками. Запустите mybot setup для настройки API-ключей, модели и токенов gateway.

Клонирование только конфигурации (--clone)

hermes profile create work --clone

Копирует config.yaml, .env и SOUL.md текущего профиля в новый профиль. Те же API-ключи и модель, но свежие сессии и память. Отредактируйте ~/.hermes/profiles/work/.env для других API-ключей или ~/.hermes/profiles/work/SOUL.md для другой личности.

Клонирование всего (--clone-all)

hermes profile create backup --clone-all

Копирует всё — конфигурацию, API-ключи, личность, все воспоминания, полную историю сессий, навыки, cron-задания, плагины. Полный снимок. Полезно для резервного копирования или разветвления агента, который уже имеет контекст.

Клонирование из конкретного профиля

hermes profile create work --clone --clone-from coder

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>:

coder chat                    # chat with the coder agent
coder setup                   # configure coder's settings
coder gateway start           # start coder's gateway
coder doctor                  # check coder's health
coder skills list             # list coder's skills
coder config set model.default anthropic/claude-sonnet-4

Псевдоним работает с каждой подкомандой hermes — это просто hermes -p <name> под капотом.

Флаг -p

Вы также можете явно указать профиль с любой командой:

hermes -p coder chat
hermes --profile=coder doctor
hermes chat -p coder -q "hello"    # works in any position

Привязка по умолчанию (hermes profile use)

hermes profile use coder
hermes chat                   # now targets coder
hermes tools                  # configures coder's tools
hermes profile use default    # switch back

Устанавливает профиль по умолчанию, чтобы обычные команды hermes были направлены на этот профиль. Как kubectl config use-context.

Определение текущего профиля

CLI всегда показывает, какой профиль активен:

Профили vs рабочие пространства vs песочницы

Профили часто путают с рабочими пространствами или песочницами, но это разные вещи:

На терминальном бэкенде по умолчанию local агент по-прежнему имеет тот же доступ к файловой системе, что и ваша учётная запись пользователя. Профиль не запрещает ему доступ к папкам за пределами каталога профиля.

Если вы хотите, чтобы профиль запускался в определённой папке проекта, установите явный абсолютный terminal.cwd в config.yaml этого профиля:

terminal:
  backend: local
  cwd: /absolute/path/to/project

Использование cwd: "." на локальном бэкенде означает «каталог, из которого был запущен Hermes», а не «каталог профиля».

Также обратите внимание:

Запуск gateway

Каждый профиль запускает свой собственный gateway как отдельный процесс с собственным токеном бота:

coder gateway start           # starts coder's gateway
assistant gateway start       # starts assistant's gateway (separate process)

Различные токены ботов

Каждый профиль имеет свой собственный файл .env. Настройте разные токены ботов Telegram/Discord/Slack в каждом:

# Edit coder's tokens
nano ~/.hermes/profiles/coder/.env

# Edit assistant's tokens
nano ~/.hermes/profiles/assistant/.env

Безопасность: блокировка токенов

Если два профиля случайно используют один и тот же токен бота, второй gateway будет заблокирован с понятной ошибкой, указывающей конфликтующий профиль. Поддерживается для Telegram, Discord, Slack, WhatsApp и Signal.

Постоянные службы

coder gateway install         # creates hermes-gateway-coder systemd/launchd service
assistant gateway install     # creates hermes-gateway-assistant service

Каждый профиль получает собственное имя службы. Они работают независимо.

Настройка профилей

Каждый профиль имеет собственные:

coder config set model.default anthropic/claude-sonnet-4
echo "You are a focused coding assistant." > ~/.hermes/profiles/coder/SOUL.md

Если вы хотите, чтобы этот профиль по умолчанию работал в определённом проекте, также установите его собственный terminal.cwd:

coder config set terminal.cwd /absolute/path/to/project

Обновление

hermes update загружает код один раз (общий) и синхронизирует новые встроенные навыки со всеми профилями автоматически:

hermes update
# → Code updated (12 commits)
# → Skills synced: default (up to date), coder (+2 new), assistant (+2 new)

Навыки, изменённые пользователем, никогда не перезаписываются.

Управление профилями

hermes profile list           # show all profiles with status
hermes profile show coder     # detailed info for one profile
hermes profile rename coder dev-bot   # rename (updates alias + service)
hermes profile export coder   # export to coder.tar.gz
hermes profile import coder.tar.gz   # import from archive

Удаление профиля

hermes profile delete coder

Это останавливает gateway, удаляет службу systemd/launchd, удаляет псевдоним команды и удаляет все данные профиля. Вам будет предложено ввести имя профиля для подтверждения.

Используйте --yes, чтобы пропустить подтверждение: hermes profile delete coder --yes

Вы не можете удалить профиль по умолчанию (`~/.hermes`). Чтобы удалить всё, используйте `hermes uninstall`.

Автодополнение Tab

# Bash
eval "$(hermes completion bash)"

# Zsh
eval "$(hermes completion zsh)"

Добавьте строку в ваш ~/.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
hermes profile install github.com/you/research-bot --alias

# Update later when the author ships a new version (keeps your memories + .env)
hermes profile update research-bot

See Profile Distributions: Share a Whole Agent for the full guide — authoring, publishing, update semantics, security model, and use cases.