Распространение профиля упаковывает целого агента Hermes — личность, навыки, cron-задачи, MCP-подключения, конфигурацию — в виде git-репозитория. Любой, у кого есть доступ к репозиторию, может установить всего агента одной команды, обновлять его на месте, сохраняя при этом свои собственные воспоминания, сеанс и ключи API нетронутыми.
Если профиль — это локальный агент, для распространения — это тот же агент, сделанный доступным для обмена.
Что это значит
Чтобы распространить информацию о распространении, чтобы поделиться агентом Hermes, нужно было отправить:
Ваш SOUL.md
Список инструментов для установки
Ваш config.yaml, без секретов
Описание того, какие MCP-серверы вы подключили
Все cron-задачи, которые вы запланировали.
Инструкции по установке переменных окружения.
…и надеюсь, что они соберут всё правильно. Каждое обновление версии или исправление ошибки повторной передачи.
С распространением всё это живёт в одной git-репозитории:
my-research-agent/
├── distribution.yaml # манифест: имя, версия, требования к переменным окружения
├── SOUL.md # личность агента / системный промпт
├── config.yaml # модель, температура, рассуждения, настройки инструментов по умолчанию
├── skills/ # встроенные навыки, поставляемые с агентом
├── cron/ # запланированные задачи, которые выполняет агент
└── mcp.json # MCP-серверы, к которым подключается агент
…и теперь у них есть целый агент. Они задают свои собственные ключи API (.env.EXAMPLE → .env) и могут запустить my-research-agent Chat или обратиться к нему через Telegram/Discord/Slack/любую шлюзовую платформу. Когда вы устанавливаете новую версию, они выполняют обновление профиля Гермеса, мой исследовательский агент и получают ваши изменения — их память и сессия остаются на месте.
Почему мерзавец?
Мы рассматривали tarball'ы, HTTP-архивы, небольшой формат. Ни один из них не превзошёл git:
Новый этап сборки для авторов. Отправляете на GitHub; установка пользователя. Нет цикла «упакуй это, загрузи то, обнови индекс».
Теги, ветки и коммиты уже являются системой версионирования. Отправка тега, делающего для нас то, что для других инструментов делает "упакуй + загрузи релиз".
Обновления — это fetch. Не повторная загрузка всего архива.
Прозрачность. Пользователи могут просматривать репозитории, читать различия между версиями, открывать проблемы, форкать для кастомизации.
Приватные репозитории работают бесплатно. SSH-ключи, помощники git credential, сохранённые учётные данные GitHub CLI — любая аутентификация, которая уже настроена на вашем терминале, работает прозрачно.
Воспроизводимость — это SHA коммита. То же самое, что записывают pip и npm.
Компромисс: получателям нужен установленный git. На любой машине, где работает Hermes в 2026 году, это уже так.
Когда следует использовать распространение?
Хорошо подходит:
Вы делитесь специализированным агентом — контролером соответствия, ревьюером кода, исследовательским ассистентом, поддержкой клиентов — с командой или сообществом.
Вы развёртываете одного и того же агента на нескольких машинах и не хотите каждый раз вручную копировать файлы.
Вы итерируете агента и хотите, чтобы получатели средств могли подхватывать новые версии одной команды.
Вы создаёте агента как продукт — с предопределёнными настройками, подобранными навыками, настроениями — которые другие люди должны использовать в качестве отправной точки.
Не подходит:
Вы просто сделайте резервную форму профиля на своей машине. Используйте hermes Profile Export / Import — для этого они и приводят.
** Вы хотите поделиться ключами API вместе с агентом. ** auth.json и .env намеренно исключены из-за распространенности. Каждый установщик генерирует собственные учетные данные.
** Вы хотите поделиться воспоминаниями / сессиями / историческими разговорами. ** Это пользовательские данные, а не обязательное распространение. Никогда не по именися.
Жизненный цикл: от автора к установщику и обновлению
Ниже описан полный сквозной процесс. Выберите ту сторону, которая вас интересует.
Для авторов: распространение публикации
Шаг 1 — начало с рабочего профиля
Создайте и доработайте агента как любой другой профиль:
hermesprofilecreateresearch-bot
research-botsetup# настройте модель, ключи API# Отредактируйте ~/.hermes/profiles/research-bot/SOUL.md# Установите навыки, подключите MCP-серверы, запланируйте cron-задачи и т.д.
research-botchat# тестируйте, пока не будете довольны
name:research-botversion:1.0.0description:"АвтономныйисследовательскийассистентсинструментамиarXivивеб-поиска"hermes_requires:">=0.12.0"author:"ВашеИмя"license:"MIT"# Сообщите установщикам, какие переменные окружения нужны агенту. Они проверяются# в оболочке установщика и существующем файле.env, чтобы не надоедать# с ключами, которые у них уже настроены.env_requires:-name:OPENAI_API_KEYdescription:"КлючAPIOpenAI(длядоступакмодели)"required:true-name:SERPAPI_KEYdescription:"КлючSerpAPIдлявеб-поиска"required:falsedefault:""
Это весь манифест. Каждое поле, кроме имени, имеет разумное значение по умолчанию.
Репозиторий теперь распространяется. Любой, у кого есть доступ, может его установить.:::примечание
Git-репозиторий содержит все в каталоге профилей, кроме того, что уже исключено из распространенности: auth.json, .env, memories/, sessions/, state.db*, logs/, workspace/, *_cache/, local/. Они на вашем компьютере. Вы также можете добавить .gitignore, если вам нужен дополнительный путь.
Шаг 4 — Помечайте версионные релизы тегами
Каждый раз, когда агент достигает стабильной точки, увеличивайте версию и ставьте тег:
Получатели, выполняющие исследовательский бот обновления профиля Hermes, получают полную версию.
Как выглядит репозиторий
Полное авторское распространение:
research-bot/
├── distribution.yaml # обязательно
├── SOUL.md # настоятельно рекомендуется
├── config.yaml # модель, провайдер, настройки инструментов по умолчанию
├── mcp.json # подключения к MCP-серверам
├── skills/
│ ├── arxiv-search/SKILL.md
│ ├── paper-summarization/SKILL.md
│ └── citation-lookup/SKILL.md
├── cron/
│ └── weekly-digest.json # запланированные задачи
└── README.md # человекочитаемое описание (необязательно)
Принадлежащее распространение против принципае удобства
Когда установщик обновляется до новой версии, некоторые вещи изменяются (областной автор), а некоторые остаются на месте (областной установщик). По умолчанию:
Приведенное значение установлено по умолчанию — установщик мог настроить модель или поставщика. Передайте --force-config при обновлении, чтобы перезаписать.
Проверяет всю требуемую переменную окружность в вашей оболочке и существующий целевой профиль .env. Отмечает каждый раз, когда ✓ установлена или требуется настройка, чтобы вы точно знали, что необходимо настроить.
Запрашивает подтверждение. Передайте -y / --yes, чтобы пропустить.
Копирует файлы, распространяющие распространение, в ~/.hermes/profiles/research-bot/ (или туда, куда указывает name из манифеста).
Записывает .env.EXAMPLE с закомментированными требуемыми ключами — скопируйте в .env и заполните.
С --alias создаёт обёртку, чтобы вы могли запустить research-bot Chat напрямую.
Типы источников
Работает любой git-URL:
# Сокращение GitHub
hermesprofileinstallgithub.com/you/research-bot
# Полный HTTPS
hermesprofileinstallhttps://github.com/you/research-bot.git
# SSH
hermesprofileinstallgit@github.com:you/research-bot.git
# Самостоятельный хостинг, GitLab, Gitea, Forgejo — любой git-хост
hermesprofileinstallhttps://git.example.com/team/research-bot.git
# Приватный репозиторий с использованием настроенной git-аутентификации
hermesprofileinstallgit@github.com:your-org/internal-bot.git
# Локальный каталог во время разработки (без git push)
hermesprofileinstall~/my-profile-in-progress/
Переопределение имени профиля
Два пользователя, желающие одно и то же распространение под разными именами профилей:
# Алиса
hermesprofileinstallgithub.com/acme/support-bot--namesupport-us--alias
# Боб (то же распространение, другое локальное имя)
hermesprofileinstallgithub.com/acme/support-bot--namesupport-eu--alias
Заполнение окружения
После установки в профиль агента получился .env.EXAMPLE:
# Переменные окружения, необходимые для этого распространения Hermes.
# Скопируйте в `.env` и заполните своими значениями перед запуском.
# Ключ API OpenAI (для доступа к модели)
# (обязательно)
OPENAI_API_KEY=
# Ключ SerpAPI для веб-поиска
# (необязательно)
# SERPAPI_KEY=
Скопируйте его:
cp~/.hermes/profiles/research-bot/.env.EXAMPLE~/.hermes/profiles/research-bot/.env
# Отредактируйте.env, вставьте свои реальные ключи
Обязательные ключи, которые уже были в вашей оболочке (например, OPENAI_API_KEY экспортированы в ~/.zshrc), помечаются как ✓ установлены во время установки — вам не нужно дублировать их в.env`.
список профилей Гермеса также показывает столбец Распространение, чтобы с первого взгляда было видно, какие из ваших профилей пришли из репозиториев, а какие вы собрали вручную:
Любая итерация на ноутбуке («git commit && push») подтягивается на рабочую станцию с помощью «исследовательского бота по обновлению профиля Hermes». Воспоминания остаются на каждой машине — ноутбук помнит свои разговоры, рабочая станция помнит свои, они не пересекаются.
Команда: поставка проверенного внутреннего агента
Ваша инженерная хочет команду общего бота для ревью PR с определенными ДУШОЙ, определенными навыками и cron-за передачу, которая прогоняет каждый PR через него.
# Руководитель разработкиcd~/.hermes/profiles/pr-reviewer
#... создайте и настройте...
gitinit&&gitadd.&&gitcommit-m"v1.0 PR reviewer"
gittagv1.0.0
gitpush-uoriginmain--tags# отправьте на внутренний git-хост вашей компании# Каждый инженер
hermesprofileinstallgit@github.com:your-org/pr-reviewer.git--alias
# Заполните.env своим собственным ключом API (выставляется счёт им),.env.EXAMPLE указывает, что требуется
pr-reviewerchat
Когда руководитель выпускает v1.1 (лучший SOUL, новый навык), инженеры берут на себя pr-reviewer обновления профиля Hermes, и все переходят на новую версию в течение нескольких минут.
Сообщество: публикация публичного агента
Вы создадите что-то новое — возможно, «Трейдер Polymarket» или «академический краткоризатор статей» или «ассистент для управления сервером Minecraft». Вы хотите поделиться этим.
# Выcd~/.hermes/profiles/polymarket-trader
# Напишите хороший README.md в корне репозитория — GitHub покажет его на странице репозитория
gitinit&&gitadd.&&gitcommit-m"v1.0"
gittagv1.0.0
# Опубликуйте в публичный репозиторий GitHub
gitremoteaddoriginhttps://github.com/you/hermes-polymarket-trader.git
gitpush-uoriginmain--tags
# Любой
hermesprofileinstallgithub.com/you/hermes-polymarket-trader--alias
Твитните команду установки. Люди, которые пробуют, пришлют вам проблемы и пиарятся. Если кто-то захочет кастомизировать, он форкнет — тот самый git-воркфлоу, который все уже знают.
Товар: агент доставки с определенными предварительными настройками
Вы построили надстройку над Гермесом — возможно, обвязку для соответствия Диптихам, стек поддержки клиентов, доменную исследовательскую платформу. Вы хотите распространять это как продукт.
Ваши клиенты создают одну команду; предварительный просмотр установки точно говорит им, какие ключи подготовлены; обновления выкатываются в тот момент, когда вы мечтаете о новом теге релиза; их данные соответствуют (memories/, sessions/) никогда не покидают свою машину.
Эфемерный: одноразовые скрипты на общей инфраструктуре
Вы руководитель эксплуатации. Вам нужен временный агент для диагностики аварии на производстве — готовый SOUL с указанными инструментами и MCP-подключениями — который будет работать на ноутбуках трех дежурных инженеров в течение следующих недель.
# Вы# Создайте профиль, закоммитьте, отправьте в приватный репозиторий
gitpush-uoriginmain
# Каждый дежурный
hermesprofileinstallgit@github.com:your-org/incident-2026-q2.git--alias
# Инцидент разрешён — удалите
hermesprofiledeleteincident-2026-q2
Цикл установки-удаление достаточно дёшев, чтобы быть одноразовым.
Рецепты
Привязка к конкретной версии:::примечание
Привязка к git-ссылке (#v1.2.0) запланирована, но не входит в первоначальный релиз — установка в настоящее время отслеживает ветку по умолчанию. Отслеживайте установленную версию через информация о профиле Hermes <имя> и воздержитесь от обновлений, пока не будете готовы.
Проверка вашей версии по сравнению с последней
# Ваша установленная версия
hermesprofileinforesearch-bot|grepVersion
# Последняя версия в upstream (без установки)
gitls-remote--tagshttps://github.com/you/research-bot|tail-5
Сохранение локальных настроек конфига при обновлениях
Поведение обновления по умолчанию уже это делает: config.yaml сохраняется. Чтобы быть уверенным, запишите свои локальные изменения в файл, который не принадлежит распространению:
# ~/.hermes/profiles/research-bot/local/my-overrides.yaml# (распространение никогда не трогает local/)
…и ссылайтесь на него из config.yaml или вашей SOUL по необходимости.
Принудительная чистая переустановка
# Удалите и переустановите с нуля (также теряются воспоминания/сессии)
hermesprofiledeleteresearch-bot--yes
hermesprofileinstallgithub.com/you/research-bot--alias
# Обновитесь до текущей main, но сбросьте config.yaml до настроек распространения по умолчанию
hermesprofileupdateresearch-bot--force-config--yes
Форк и кастомизация
Стандартный git-воркфлоу — распространение — это просто репозитории:
# Форкните репозиторий на GitHub, затем установите свой форк
hermesprofileinstallgithub.com/yourname/forked-research-bot--alias
# Итерируйте локально в ~/.hermes/profiles/forked-research-bot/# Отредактируйте SOUL.md, закоммитьте, отправьте в свой форк# Изменения из upstream: подтяните их в свой форк обычным способом
Тестирование распространения перед отправкой
На машине автора:
# Установите из локального каталога (без git push)
hermesprofileinstall~/.hermes/profiles/research-bot--nameresearch-bot-test--alias
# Настройте, удалите, переустановите, пока не будет правильно
hermesprofiledeleteresearch-bot-test--yes
hermesprofileinstall~/.hermes/profiles/research-bot--nameresearch-bot-test
ЧТО НИКОГДА НЕ ВХОДИТ В РАСПРОСТРАНЕНИЕ
Установщик жёстко контролирует эти пути, даже если автор случайно их отправит. Ни одна опция конфигурации не позволяет это переопределить — защита является регрессионно-тестируемым инвариантом:
auth.json — OAuth-токены, учётные данные платформы.
home/ — домашняя точка монтирования пользователя в Docker-бэкендах.
*_cache/ — кеши изображений/аудио/документов
local/ — пространство имён для пользовательской кастомизации
Когда вы клонируете распространение, этих файлов просто нет. Когда вы обновляетесь, они остаются на месте. Если вы установили одну и то же распространение на пяти машинах, у вас есть пять изолированных наборов этих данных — по одной на машине.
Безопасность и надежность
Распространения профилей по умолчанию не подписаны. Вы доверяете:
Git-хосту (GitHub/GitLab/где угодно) в том, что он отдаёт мне байты, которые отправил автор.
Автору в том, что он не отправит конкурентный SOUL, навыки или cron-задачи.
Cron-задачи по распространению не планируются автоматически — установщик выводит hermes -p <name> cron list, и вы включаете их явно. SOUL.md и навыки АКТИВНЫ, как вы только начинаете общаться с профилем, поэтому прочитайте их перед первым запуском, если установлено от кого-то, кого не знаете.
Глубокие аналогии: установка распространения, аналогичная настройке расширения браузера или расширения VS Code. Низкий порог, большая мощность, доверяйте источнику. Для внутренней распространенности следует использовать приватные репозитории и обычную git-аутентификацию — ничего нового в настройке не требуется.
Будущие версии могут добавить подпись, файл блокировки (.distribution-lock.yaml) с разрешенным SHA-коммитом и флаг --dry-run, который выводит diff перед применением обновления. Ничего из этого пока не следует.
«Установить», «обновить», «информация» находится внутри «профиля Гермеса» — не параллельное дерево-команда.
Формат манифеста — YAML с кусочками обязательной схемы (только name).
Установщик использует ваш локальный бинарник git для клонирования, поэтому любая аутентификация, уже обрабатывающая вашу оболочку (SSH-ключи, помощники с учётными данными), работает прозрачно.
После клонирования .git/ удаляется — установленный сам профиль по себе не является git-чекаутом, что позволяет избежать ловушек типа "ой, я случайно закоммитил свой .env в git-историю распространения".
Зарезервированные имена профилей (hermes, test, tmp, root, sudo) отклоняются при установке, чтобы избежать коллизий с распространёнными бинарниками.