Распространение профиля: публикация целого агента

Распространение профиля упаковывает целого агента Hermes — личность, навыки, cron-задачи, MCP-подключения, конфигурацию — в виде git-репозитория. Любой, у кого есть доступ к репозиторию, может установить всего агента одной команды, обновлять его на месте, сохраняя при этом свои собственные воспоминания, сеанс и ключи API нетронутыми.

Если профиль — это локальный агент, для распространения — это тот же агент, сделанный доступным для обмена.

Что это значит

Чтобы распространить информацию о распространении, чтобы поделиться агентом Hermes, нужно было отправить:

  1. Ваш SOUL.md
  2. Список инструментов для установки
  3. Ваш config.yaml, без секретов
  4. Описание того, какие MCP-серверы вы подключили
  5. Все cron-задачи, которые вы запланировали.
  6. Инструкции по установке переменных окружения.

…и надеюсь, что они соберут всё правильно. Каждое обновление версии или исправление ошибки повторной передачи.

С распространением всё это живёт в одной git-репозитории:

my-research-agent/
├── distribution.yaml    # манифест: имя, версия, требования к переменным окружения
├── SOUL.md              # личность агента / системный промпт
├── config.yaml          # модель, температура, рассуждения, настройки инструментов по умолчанию
├── skills/              # встроенные навыки, поставляемые с агентом
├── cron/                # запланированные задачи, которые выполняет агент
└── mcp.json             # MCP-серверы, к которым подключается агент

Источники управления:

hermes profile install github.com/you/my-research-agent --alias

…и теперь у них есть целый агент. Они задают свои собственные ключи API (.env.EXAMPLE.env) и могут запустить my-research-agent Chat или обратиться к нему через Telegram/Discord/Slack/любую шлюзовую платформу. Когда вы устанавливаете новую версию, они выполняют обновление профиля Гермеса, мой исследовательский агент и получают ваши изменения — их память и сессия остаются на месте.

Почему мерзавец?

Мы рассматривали tarball'ы, HTTP-архивы, небольшой формат. Ни один из них не превзошёл git:

Компромисс: получателям нужен установленный git. На любой машине, где работает Hermes в 2026 году, это уже так.

Когда следует использовать распространение?

Хорошо подходит:

Не подходит:

Жизненный цикл: от автора к установщику и обновлению

Ниже описан полный сквозной процесс. Выберите ту сторону, которая вас интересует.


Для авторов: распространение публикации

Шаг 1 — начало с рабочего профиля

Создайте и доработайте агента как любой другой профиль:

hermes profile create research-bot
research-bot setup                    # настройте модель, ключи API
# Отредактируйте ~/.hermes/profiles/research-bot/SOUL.md
# Установите навыки, подключите MCP-серверы, запланируйте cron-задачи и т.д.
research-bot chat                     # тестируйте, пока не будете довольны

Шаг 2 — Добавьте distribution.yaml

создадим ~/.hermes/profiles/research-bot/distribution.yaml:

name: research-bot
version: 1.0.0
description: "Автономный исследовательский ассистент с инструментами arXiv и веб-поиска"
hermes_requires: ">=0.12.0"
author: "Ваше Имя"
license: "MIT"

# Сообщите установщикам, какие переменные окружения нужны агенту. Они проверяются
# в оболочке установщика и существующем файле.env, чтобы не надоедать
# с ключами, которые у них уже настроены.
env_requires:
  - name: OPENAI_API_KEY
    description: "Ключ API OpenAI (для доступа к модели)"
    required: true
  - name: SERPAPI_KEY
    description: "Ключ SerpAPI для веб-поиска"
    required: false
    default: ""

Это весь манифест. Каждое поле, кроме имени, имеет разумное значение по умолчанию.

Шаг 3 — Отправка в git-репозиторий

cd ~/.hermes/profiles/research-bot
git init
git add.
git commit -m "v1.0.0"
git remote add origin git@github.com:you/research-bot.git
git tag v1.0.0
git push -u origin main --tags

Репозиторий теперь распространяется. Любой, у кого есть доступ, может его установить.:::примечание Git-репозиторий содержит все в каталоге профилей, кроме того, что уже исключено из распространенности: auth.json, .env, memories/, sessions/, state.db*, logs/, workspace/, *_cache/, local/. Они на вашем компьютере. Вы также можете добавить .gitignore, если вам нужен дополнительный путь.

Шаг 4 — Помечайте версионные релизы тегами

Каждый раз, когда агент достигает стабильной точки, увеличивайте версию и ставьте тег:

# Отредактируйте distribution.yaml: version: 1.1.0
git add distribution.yaml SOUL.md skills/
git commit -m "v1.1.0: более точный исследовательский SOUL, добавлен навык arxiv"
git tag v1.1.0
git push --tags

Получатели, выполняющие исследовательский бот обновления профиля 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                    # человекочитаемое описание (необязательно)

Принадлежащее распространение против принципае удобства

Когда установщик обновляется до новой версии, некоторые вещи изменяются (областной автор), а некоторые остаются на месте (областной установщик). По умолчанию:

Категория Пути При обновлении
Принадлежит распространению SOUL.md, config.yaml, mcp.json, skills/, cron/, distribution.yaml Для изменения из нового клона
Переопределение конфига config.yaml Приведенное значение установлено по умолчанию — установщик мог настроить модель или поставщика. Передайте --force-config при обновлении, чтобы перезаписать.
Принадлежит пользователю memories/, sessions/, state.db*, auth.json, .env, logs/, workspace/, plans/, home/, *_cache/, local/ Никогда не трогаются

Вы можете переопределить список при экономической распространенности в манифесте:

distribution_owned:
  - SOUL.md
  - skills/research/            # только мои исследовательские навыки; другие установленные навыки остаются
  - cron/digest.json

Если опущено, применить значения по умолчанию выше — это то, что нужно большинству массовостей.


Для установщиков: распространение использования

Установка

hermes profile install github.com/you/research-bot --alias

Что происходит:

  1. Клонирует репозитории во временном каталоге.
  2. Читает distribution.yaml, показывает вам манифест (имя, версия, описание, автор, требуемые переменные окружения).
  3. Проверяет всю требуемую переменную окружность в вашей оболочке и существующий целевой профиль .env. Отмечает каждый раз, когда ✓ установлена или требуется настройка, чтобы вы точно знали, что необходимо настроить.
  4. Запрашивает подтверждение. Передайте -y / --yes, чтобы пропустить.
  5. Копирует файлы, распространяющие распространение, в ~/.hermes/profiles/research-bot/ (или туда, куда указывает name из манифеста).
  6. Записывает .env.EXAMPLE с закомментированными требуемыми ключами — скопируйте в .env и заполните.
  7. С --alias создаёт обёртку, чтобы вы могли запустить research-bot Chat напрямую.

Типы источников

Работает любой git-URL:

# Сокращение GitHub
hermes profile install github.com/you/research-bot

# Полный HTTPS
hermes profile install https://github.com/you/research-bot.git

# SSH
hermes profile install git@github.com:you/research-bot.git

# Самостоятельный хостинг, GitLab, Gitea, Forgejo — любой git-хост
hermes profile install https://git.example.com/team/research-bot.git

# Приватный репозиторий с использованием настроенной git-аутентификации
hermes profile install git@github.com:your-org/internal-bot.git

# Локальный каталог во время разработки (без git push)
hermes profile install ~/my-profile-in-progress/

Переопределение имени профиля

Два пользователя, желающие одно и то же распространение под разными именами профилей:

# Алиса
hermes profile install github.com/acme/support-bot --name support-us --alias
# Боб (то же распространение, другое локальное имя)
hermes profile install github.com/acme/support-bot --name support-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`.

проверяем, что вы установили

hermes profile info research-bot

Показывает:

Distribution: research-bot
Version:      1.0.0
Description:  Автономный исследовательский ассистент с инструментами arXiv и веб-поиска
Author:       Ваше Имя
Requires:     Hermes >=0.12.0
Source:       https://github.com/you/research-bot
Installed:    2026-05-08T17:04:32+00:00

Environment variables:
  OPENAI_API_KEY (required)  Ключ API OpenAI (для доступа к модели)
  SERPAPI_KEY (optional)  Ключ SerpAPI для веб-поиска

список профилей Гермеса также показывает столбец Распространение, чтобы с первого взгляда было видно, какие из ваших профилей пришли из репозиториев, а какие вы собрали вручную:

 Profile          Model                        Gateway      Alias        Distribution
 ───────────────    ───────────────────────────    ───────────    ───────────    ────────────────────
 default         claude-sonnet-4              stopped                  
  coder           gpt-5                        stopped      coder        
  research-bot    claude-opus-4                stopped      research-bot research-bot@1.0.0
  telemetry       claude-sonnet-4              running      telemetry    telemetry@2.3.1

Обновление

hermes profile update research-bot

Что происходит:

  1. Повторно клонирует репозиторий из указанного источника URL.
  2. Заменяет файлы, распространение распространения (SOUL, навыки, cron, mcp.json).
  3. Сохраняет ваш config.yaml — вы можете настроить модель, температуру или другие параметры. Передайте --force-config, чтобы перезаписать.
  4. Никогда не трогаетские данные пользователя: события, сеанс, аутентификацию, .env, логи, состояние.

Никакой повторной загрузки всего архива. Никакого затирания ваших локальных изменений конфига. Никакого удаления истории разговоров.

Удаление

hermes profile delete research-bot

При запросе на удаление отображается информация о распространении передовых подтверждений:

Profile: research-bot
Path:    ~/.hermes/profiles/research-bot
Model:   claude-opus-4 (anthropic)
Skills:  12
Distribution: research-bot@1.0.0
Installed from: https://github.com/you/research-bot

This will permanently delete:
   All config, API keys, memories, sessions, skills, cron jobs
   Command alias (~/.local/bin/research-bot)

Type 'research-bot' to confirm:

Так что вы никогда случайно не удалили агента, не важно, откуда он взялся или у вас не было возможности переустановить его.


Варианты использования шаблонов

Личное: синхронизация одного агента между машинами

Выдающийся исследователь-ассистент на ноутбуке. Вы хотите того же агента на рабочей станции.

# Ноутбук
cd ~/.hermes/profiles/research-bot
git init && git add. && git commit -m "initial"
git remote add origin git@github.com:you/research-bot.git
git push -u origin main

# Рабочая станция
hermes profile install github.com/you/research-bot --alias
# Заполните.env. Готово.

Любая итерация на ноутбуке («git commit && push») подтягивается на рабочую станцию ​​с помощью «исследовательского бота по обновлению профиля Hermes». Воспоминания остаются на каждой машине — ноутбук помнит свои разговоры, рабочая станция помнит свои, они не пересекаются.

Команда: поставка проверенного внутреннего агента

Ваша инженерная хочет команду общего бота для ревью PR с определенными ДУШОЙ, определенными навыками и cron-за передачу, которая прогоняет каждый PR через него.

# Руководитель разработки
cd ~/.hermes/profiles/pr-reviewer
#... создайте и настройте...
git init && git add. && git commit -m "v1.0 PR reviewer"
git tag v1.0.0
git push -u origin main --tags    # отправьте на внутренний git-хост вашей компании

# Каждый инженер
hermes profile install git@github.com:your-org/pr-reviewer.git --alias
# Заполните.env своим собственным ключом API (выставляется счёт им),.env.EXAMPLE указывает, что требуется
pr-reviewer chat

Когда руководитель выпускает v1.1 (лучший SOUL, новый навык), инженеры берут на себя pr-reviewer обновления профиля Hermes, и все переходят на новую версию в течение нескольких минут.

Сообщество: публикация публичного агента

Вы создадите что-то новое — возможно, «Трейдер Polymarket» или «академический краткоризатор статей» или «ассистент для управления сервером Minecraft». Вы хотите поделиться этим.

# Вы
cd ~/.hermes/profiles/polymarket-trader
# Напишите хороший README.md в корне репозитория — GitHub покажет его на странице репозитория
git init && git add. && git commit -m "v1.0"
git tag v1.0.0
# Опубликуйте в публичный репозиторий GitHub
git remote add origin https://github.com/you/hermes-polymarket-trader.git
git push -u origin main --tags

# Любой
hermes profile install github.com/you/hermes-polymarket-trader --alias

Твитните команду установки. Люди, которые пробуют, пришлют вам проблемы и пиарятся. Если кто-то захочет кастомизировать, он форкнет — тот самый git-воркфлоу, который все уже знают.

Товар: агент доставки с определенными предварительными настройками

Вы построили надстройку над Гермесом — возможно, обвязку для соответствия Диптихам, стек поддержки клиентов, доменную исследовательскую платформу. Вы хотите распространять это как продукт.

# distribution.yaml
name: telemetry-harness
version: 2.3.1
description: "Обвязка телеметрии соответствия  мониторинг и проверка регулируемых рабочих процессов"
hermes_requires: ">=0.13.0"
author: "Acme Compliance Inc."
license: "Commercial"

env_requires:
  - name: ACME_API_KEY
    description: "Ваш лицензионный ключ Acme Compliance (пишите на support@acme.com)"
    required: true
  - name: OPENAI_API_KEY
    description: "Ключ API OpenAI для доступа к модели"
    required: true
  - name: GRAPHITI_MCP_URL
    description: "URL вашего экземпляра графа знаний Graphiti"
    required: false
    default: "http://127.0.0.1:8000/sse"

Ваши клиенты создают одну команду; предварительный просмотр установки точно говорит им, какие ключи подготовлены; обновления выкатываются в тот момент, когда вы мечтаете о новом теге релиза; их данные соответствуют (memories/, sessions/) никогда не покидают свою машину.

Эфемерный: одноразовые скрипты на общей инфраструктуре

Вы руководитель эксплуатации. Вам нужен временный агент для диагностики аварии на производстве — готовый SOUL с указанными инструментами и MCP-подключениями — который будет работать на ноутбуках трех дежурных инженеров в течение следующих недель.

# Вы
# Создайте профиль, закоммитьте, отправьте в приватный репозиторий
git push -u origin main

# Каждый дежурный
hermes profile install git@github.com:your-org/incident-2026-q2.git --alias

# Инцидент разрешён — удалите
hermes profile delete incident-2026-q2

Цикл установки-удаление достаточно дёшев, чтобы быть одноразовым.


Рецепты

Привязка к конкретной версии:::примечание

Привязка к git-ссылке (#v1.2.0) запланирована, но не входит в первоначальный релиз — установка в настоящее время отслеживает ветку по умолчанию. Отслеживайте установленную версию через информация о профиле Hermes <имя> и воздержитесь от обновлений, пока не будете готовы.

Проверка вашей версии по сравнению с последней

# Ваша установленная версия
hermes profile info research-bot | grep Version

# Последняя версия в upstream (без установки)
git ls-remote --tags https://github.com/you/research-bot | tail -5

Сохранение локальных настроек конфига при обновлениях

Поведение обновления по умолчанию уже это делает: config.yaml сохраняется. Чтобы быть уверенным, запишите свои локальные изменения в файл, который не принадлежит распространению:

# ~/.hermes/profiles/research-bot/local/my-overrides.yaml
# (распространение никогда не трогает local/)

…и ссылайтесь на него из config.yaml или вашей SOUL по необходимости.

Принудительная чистая переустановка

# Удалите и переустановите с нуля (также теряются воспоминания/сессии)
hermes profile delete research-bot --yes
hermes profile install github.com/you/research-bot --alias

# Обновитесь до текущей main, но сбросьте config.yaml до настроек распространения по умолчанию
hermes profile update research-bot --force-config --yes

Форк и кастомизация

Стандартный git-воркфлоу — распространение — это просто репозитории:

# Форкните репозиторий на GitHub, затем установите свой форк
hermes profile install github.com/yourname/forked-research-bot --alias

# Итерируйте локально в ~/.hermes/profiles/forked-research-bot/
# Отредактируйте SOUL.md, закоммитьте, отправьте в свой форк
# Изменения из upstream: подтяните их в свой форк обычным способом

Тестирование распространения перед отправкой

На машине автора:

# Установите из локального каталога (без git push)
hermes profile install ~/.hermes/profiles/research-bot --name research-bot-test --alias

# Настройте, удалите, переустановите, пока не будет правильно
hermes profile delete research-bot-test --yes
hermes profile install ~/.hermes/profiles/research-bot --name research-bot-test

ЧТО НИКОГДА НЕ ВХОДИТ В РАСПРОСТРАНЕНИЕ

Установщик жёстко контролирует эти пути, даже если автор случайно их отправит. Ни одна опция конфигурации не позволяет это переопределить — защита является регрессионно-тестируемым инвариантом:

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

Безопасность и надежность

Распространения профилей по умолчанию не подписаны. Вы доверяете:

Cron-задачи по распространению не планируются автоматически — установщик выводит hermes -p <name> cron list, и вы включаете их явно. SOUL.md и навыки АКТИВНЫ, как вы только начинаете общаться с профилем, поэтому прочитайте их перед первым запуском, если установлено от кого-то, кого не знаете.

Глубокие аналогии: установка распространения, аналогичная настройке расширения браузера или расширения VS Code. Низкий порог, большая мощность, доверяйте источнику. Для внутренней распространенности следует использовать приватные репозитории и обычную git-аутентификацию — ничего нового в настройке не требуется.

Будущие версии могут добавить подпись, файл блокировки (.distribution-lock.yaml) с разрешенным SHA-коммитом и флаг --dry-run, который выводит diff перед применением обновления. Ничего из этого пока не следует.

Под капотом

Для реализации деталей, точного поведения CLI и всех флагов смотрите справочник команды профиля.

Краткая версия:

Смотрите также