Функции системы

Навыки — это документы знаний, которые агент загружает по мере необходимости. Они следуют шаблону прогрессивного раскрытия для минимизации использования токенов и соответствия открытому стандарту agentskills.io.

Все навыки находятся в ~/.hermes/skills/ — Основная директория и источник истины. При легкой установке монтажные навыки скопированы из репозитория. Навыки, установленные хаба, и навыки, созданные агентом, а также следы сюда. Агент может изменять или удалять любые навыки.

Вы также можете указать Hermes на внешние директории — дополнительные папки, которые можно сканировать вместе с локальной системой. См. Внешние директораии навыков ниже.

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

Использование навыков

Каждый установленный навык автоматически доступен как слэш-команда:

# В CLI или любой платформе обмена сообщениями:
/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/plan design a rollout for migrating our auth provider

# Просто имя навыка загружает его и позволяет агенту спросить, что вам нужно:
/excalidraw

Встроенные навыки «план» — хороший пример. Выполнение /plan [запрос] загружает инструкции навыков, предписывающие Hermes при необходимости проверить контекст, написать план реализации в формате уценки вместо выполнения задачи и сохранить результат в .hermes/plans/ относительно активной рабочей области/рабочего каталога каталога бэкенда.

Вы также можете общаться с навыками посредством разговорного диалога:

hermes chat --toolsets skills -q "Какие у тебя есть навыки?"
hermes chat --toolsets skills -q "Покажи мне навык axolotl"

Прогрессивное раскрытие

Навыки использовать токенно-эффективный шаблон загрузки:

Уровень 0: skills_list()           → [{name, description, category},...]   (~3k токенов)
Уровень 1: skill_view(name)        → Полное содержание + метаданные       (разное)
Уровень 2: skill_view(name, path)  → Конкретный файл справки             (разное)

Агент загружает все необходимые навыки только тогда, когда это действительно необходимо.

Формат SKILL.md

---
name: my-skill
description: Краткое описание того, что делает этот навык
version: 1.0.0
platforms: [macos, linux]     # Опционально — ограничить конкретными ОС
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]    # Опционально — условная активация (см. ниже)
    requires_toolsets: [terminal]   # Опционально — условная активация (см. ниже)
    config:                          # Опционально — настройки config.yaml
      - key: my.setting
        description: "Что это контролирует"
        default: "значение"
        prompt: "Подсказка для настройки"
---

# Название навыка

## Когда использовать
Условия срабатывания для этого навыка.

## Процедура
1. Шаг первый
2. Шаг второй

## Ошибки
- Известные сценарии сбоев и исправления

## Проверка
Как подтвердить, что это сработало.

Навыки, специфичные для платформы

Навыки могут ограничить себя последствиями операционными циклами с помощью полей «платформы»:

Значение Соответствует
макос macOS (Дарвин)
Линукс Линукс
окна Окна
platforms: [macos]            # Только macOS (например, iMessage, Apple Reminders, FindMy)
platforms: [macos, linux]     # macOS и Linux

Когда это задано, навык автоматически скрывается из системного приглашения, skills_list() и слеш-команды на несовместимых платформах. Если поле опущено, навык загружается на всех платформах.

Условная активация (резервные навыки)

Навыки могут автоматически показываться или закрываться в зависимости от того, какие инструменты доступны в текущей сессии. Это наиболее полезно для резервных навыков — объявлений или локальных альтернатив, которые должны появляться только тогда, когда премиум-инструмент недоступен.

metadata:
  hermes:
    fallback_for_toolsets: [web]      # Показывать ТОЛЬКО когда эти наборы инструментов недоступны
    requires_toolsets: [terminal]     # Показывать ТОЛЬКО когда эти наборы инструментов доступны
    fallback_for_tools: [web_search]  # Показывать ТОЛЬКО когда эти конкретные инструменты недоступны
    requires_tools: [terminal]        # Показывать ТОЛЬКО когда эти конкретные инструменты доступны
Поле Поведение
fallback_for_toolsets Навык скрыт, когда доступны перечисленные наборы инструментов. Показывает, когда их нет.
fallback_for_tools То же самое, но в последнее время вместо наборов производятся инструменты.
requires_toolsets Навык скрыт, когда включены перечисленные наборы инструментов. Показывается, когда они есть.
requires_tools То же самое, но в последнее время производятся инструменты.

Пример: Интеллектуальные навыки duckduckgo-search используют fallback_for_toolsets: [web]. Если у вас установлен FIRECRAWL_API_KEY, доступен набор инструментов web и агент использует web_search — навык DuckDuckGo остается скрытым. Если API-ключ отсутствует, набор инструментов web недоступен, а навыки DuckDuckGo автоматически отображаются как резервные.

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

Безопасная настройка при включении

Навыки могут объявить обязательные переменные окружения, не исчезнувшие при обнаружении:

required_environment_variables:
  - name: TENOR_API_KEY
    prompt: Tenor API-ключ
    help: Получить ключ можно на https://developers.google.com/tenor
    required_for: полная функциональность

При обнаружении отсутствующего значения Гермес запрашивает его безопасно только тогда, когда навык действительно загружается в локальном CLI. Вы можете пропустить изменение и продолжить использовать навыки. Интерфейсы обмена сообщениями никогда не запрашивают секреты в чате — вместо этого они говорят, что вам нужно использовать «hermes setup» или «~/.hermes/.env» локально.

После установки объявленных переменных окружения автоматически передаются в песочницы execute_code и terminal — скрипты скрипта могут напрямую использовать $TENOR_API_KEY. Для не включенных в окружение функций используйте опцию terminal.env_passthrough. Подробнее см. Проброс охвата окружения.

Настройки навыков в конфигурации

Также можно объявить несекретные настройки конфигурации (пути, настройки), хранящиеся в config.yaml:

metadata:
  hermes:
    config:
      - key: myplugin.path
        description: Путь к каталогу данных плагина
        default: "~/myplugin-data"
        prompt: Путь к каталогу данных плагина

Настройки хранения в skills.config в вашем config.yaml. hermes configmigrate запрашивает ненастроенные параметры, hermes config show отображает их. При использовании навыков в контекст включаются настройки разрешенных значений, чтобы агент автоматически узнавал настроенные значения.

Подробнее см. Настройки навыков и Создание функций — Настройки конфигурации.

Структура каталога навыков

~/.hermes/skills/                  # Единый источник истины
├── mlops/                         # Категорийный каталог
│   ├── axolotl/
│   │   ├── SKILL.md               # Основные инструкции (обязательно)
│   │   ├── references/            # Дополнительные документы
│   │   ├── templates/             # Форматы вывода
│   │   ├── scripts/               # Вспомогательные скрипты, вызываемые из навыка
│   │   └── assets/                # Дополнительные файлы
│   └── vllm/
│       └── SKILL.md
├── devops/
│   └── deploy-k8s/                # Навык, созданный агентом
│       ├── SKILL.md
│       └── references/
├──.hub/                          # Состояние Skills Hub
│   ├── lock.json
│   ├── quarantine/
│   └── audit.log
└──.bundled_manifest              # Отслеживает внесенные встроенные навыки

Внешние директории навыков

Если вы поддерживаете навыки вне Hermes — например, общий каталог ~/.agents/skills/, последовательно несколько AI-инструментов, — вы можете указать Hermes также отсканировать эти каталоги.

Добавьте external_dirs в раздел skills в ~/.hermes/config.yaml:

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Пути используйте подстановку ~ и выберите поддержку окружения ${VAR}.

Как это работает

Пример

~/.hermes/skills/               # Локальный (основной, чтение-запись)
├── devops/deploy-k8s/
│   └── SKILL.md
└── mlops/axolotl/
    └── SKILL.md

~/.agents/skills/               # Внешний (только чтение, общий)
├── my-custom-workflow/
│   └── SKILL.md
└── team-conventions/
    └── SKILL.md

Все четыре навыка в вашем индексе навыков. Если вы создаете новый навык с именем my-custom-workflow локально, он заменяет внешнюю версию.

Навыки, управляемые агентом (инструментkill_manage)

Агент может создавать, обновлять и удалять собственные навыки с помощью инструмента Skill_manage. Это процедурная память агента — когда он находит нетривиальный рабочий процесс, он сохраняет подход в качестве навыка для будущего повторного использования.

Когда агент демонстрирует навыки

Действия

Действие Использование Ключевые параметры
создать Новые навыки с нуля имя, контент (полный SKILL.md), опционально категория
патч Целевые исправления (предпочтительно) имя, старая_строка, новая_строка
редактировать Крупные структурные перезаписи имя, контент (замена полного SKILL.md)
удалить Полное удаление навыка имя
записать_файл Добавление/обновление вспомогательных файлов имя, file_path, file_content
удалить_файл Удаление вспомогательного файла имя, путь_файла
Действие patch предпочтительнее для обновлений — оно более эффективно по токенам, чем edit, потому что в вызове инструмент отображает только измененный текст.
## Центр навыков

Просматривайте, ищите, устанавливайте и управляйте навыками из онлайн-реестров, skills.sh, применяйте известные конечные точки функций и стандартные дополнительные навыки.

Общие команды

hermes skills browse                              # Просмотр всех навыков хаба (сначала официальные)
hermes skills browse --source official            # Просмотр только официальных дополнительных навыков
hermes skills search kubernetes                   # Поиск по всем источникам
hermes skills search react --source skills-sh     # Поиск в каталоге skills.sh
hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect openai/skills/k8s           # Предварительный просмотр перед установкой
hermes skills install openai/skills/k8s           # Установка с проверкой безопасности
hermes skills install official/security/1password
hermes skills install skills-sh/vercel-labs/json-render/json-render-react --force
hermes skills install well-known:https://mintlify.com/docs/.well-known/skills/mintlify
hermes skills install https://sharethis.chat/SKILL.md              # Прямая URL (однофайловый SKILL.md)
hermes skills install https://example.com/SKILL.md --name my-skill # Переопределить имя, если во frontmatter его нет
hermes skills list --source hub                   # Список навыков, установленных из хаба
hermes skills check                               # Проверить установленные навыки хаба на наличие обновлений от источника
hermes skills update                              # Переустановить навыки хаба с изменениями от источника при необходимости
hermes skills audit                               # Повторно проверить все навыки хаба на безопасность
hermes skills uninstall k8s                       # Удалить навык из хаба
hermes skills reset google-workspace              # Отменить блокировку встроенного навыка как "измененный пользователем" (см. ниже)
hermes skills reset google-workspace --restore    # Также восстановить встроенную версию, удалив ваши локальные правки
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills snapshot export setup.json          # Экспорт конфигурации навыков
hermes skills tap add myorg/skills-repo           # Добавить пользовательский GitHub-источник

Поддерживаемые источники хаба

Источник Пример Примечания
официальный официальный/безопасность/1пароль Дополнительные навыки, предоставляемые Hermes.
навыки-ш skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Ищется через поиск навыков Hermes <запрос> --sourcekills-sh. Гермес разрешает навыки в стиле псевдонимов, когда шлаковые навыки.sh отличаются от папок репозитория.
хорошо известный хорошо известный: https://mintlify.com/docs/.well-known/skills/mintlify Навыки, обслуживаемые непосредственно через /.well-known/skills/index.json на веб-сайте. Выполните поиск с использованием URL-адреса сайта или документации.
url https://sharethis.chat/SKILL.md Прямой HTTP(S) URL к однофайловому SKILL.md. Разрешение имени: заголовок → URL URL → интерактивное приглашение → флаг --name.
гитхаб openai/skills/k8s Прямая установка из репозитория/пути GitHub и пользовательских кранов.
clawhub, lobehub, claude-marketplace Идентификаторы специфичные для источника Интеграции сообществ или маркетплейсов.

Интегрированные хабы и реестры

В настоящее время Hermes интегрируется с использованием различных экосистемных технологий и источников поиска:

1. Официальные дополнительные навыки («официальные»)

Они упоминаются в репозиториях Hermes и компонентах с защитой.

hermes skills browse --source official
hermes skills install official/security/1password

2.skills.sh(skills-sh)

Это общедоступный каталог функций Vercel. Гермес может искать там напрямую, просматривать страницы с подробностями функций, разрешать псевдонимы и хранить исходную репозиторию.

hermes skills search react --source skills-sh
hermes skills inspect skills-sh/vercel-labs/json-render/json-render-react
hermes skills install skills-sh/vercel-labs/json-render/json-render-react --force

3. Хорошо известные конечные точки (well-known)

Это обнаружение на основе URL-адресов сайтов, публикующих /.well-known/skills/index.json. Это не единый централизованный хаб — это веб-конвенция поиска.

hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect well-known:https://mintlify.com/docs/.well-known/skills/mintlify
hermes skills install well-known:https://mintlify.com/docs/.well-known/skills/mintlify

4. Прямые навыки GitHub (github)

Hermes может храниться напрямую из репозиториев GitHub и кранов на основе GitHub. Это полезно, когда вы уже знаете репозиторий/путь или хотите добавить свой собственный оригинальный репозиторий.

Тапы по умолчанию (доступны для просмотра без каких-либо настроек): - openai/skills - антропика/навыки - VoltAgent/awesome-agent-skills - garrytan/gstack

hermes skills install openai/skills/k8s
hermes skills tap add myorg/skills-repo

5. ClawHub (clawhub)

Сторонние маркетинговые навыки, интегрированные как общественный источник.

6. Репозитории в стиле Claude Marketplace (claude-marketplace)

Hermes поддерживает репозитории маркетплейсов, которые публикуют манифесты плагинов/маркетплейсов, совместимые с Claude.

Представленные комплексные источники включают: - антропика/навыки - aiskillstore/marketplace

ID источника Гермеса: claude-marketplace

7. LobeHub («лобехаб»)

Hermes может искать и преобразовывать записи агентов из публичного каталога LobeHub в приобретенных навыках Hermes.

8. Прямой URL (url)

Установите один файл SKILL.md напрямую с любым URL-адресом HTTP(S) — полезно, когда автор размещает навыки на своем сайте (нет листинга в хабе, нет пути GitHub для ввода). Hermes получает URL-адрес, парсит YAML-текст, затем безопасность и устанавливает.

hermes skills install https://sharethis.chat/SKILL.md
hermes skills install https://example.com/my-skill/SKILL.md --category productivity

разрешение имени, по порядку: 1. Поле name: в YAML-файле SKILL.md (рекомендуется — каждый правильно оформленный навык его имеет). 2. Имя родительского каталога из пути URL (например, .../my-skill/SKILL.mdmy-skill, или .../my-skill.mdmy-skill), если это допустимый идентификатор (^[a-z][a-z0-9_-]*$). 3. Интерактивное приглашение на терминале с TTY. 4. На неинтерактивных поверхностях этажей (слеш-команда /skills install внутри TUI, шлюзовые платформы, скрипты) — чистая ошибка с указанием на переопределение --name.

# Во frontmatter нет имени, и слаг URL бесполезен — укажите его:
hermes skills install https://example.com/SKILL.md --name sharethis-chat

# Или внутри чат-сессии:
/skills install https://example.com/SKILL.md --name sharethis-chat

Уровень доверия всегда «сообщество» — показатель та же проверка безопасности, что и для любого другого источника. URL-адрес сохраняется как идентификатор установки, поэтому «Обновление навыков Гермеса» автоматически повторно загружается с того же URL-адреса, когда вам нужно обновить.

Проверка безопасности и --force

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

проверка навыков Гермеса... теперь также показаны метаданные из источника, когда они доступны: - URL-адрес репозитория - URL-адрес страницы с подробностямиkills.sh - установка - еженедельные установки - статусы аудита источника безопасности - URL общеизвестного индекса/конечной точки

Используйте --force, когда вы проверили дополнительные навыки и хотите переопределить неопасную политику блокировки:

hermes skills install skills-sh/anthropics/skills/pdf --force

Важное поведение: - --force может переопределить политику блокировки для предупреждения стиля предупреждения/предупреждения. - --force не переопределяет вердикт сканера dangerous. - Официальные дополнительные навыки («официальные/...»), как встроенное доверие, и не отображаются панели с предупреждениями о стороннем контенте.

Уровень доверия

Уровень Источник Политика
встроенный Поставляется с Гермесом Всегда доверенный
официальный необязательные навыки/ в репозиториях Встроенное доверие, без учета стороннего контента
доверенный Доверенные реестры/репозитории, такие как openai/skills, anthropics/skills Более либеральная политика, чем для общественных источников
сообщество Все остальное (skills.sh, общеизвестные конечные точки, пользовательские репозитории GitHub, большинство маркетплейсов) Неопасные находки можно переопределить с помощью --force; вердикты опасные заблокированными

Жизненный цикл обновлений

Теперь Хаб отслеживает достаточно информации о происхождении, чтобы повторно проверить удаленные образцы стандартных функций:

hermes skills check          # Сообщить, какие установленные навыки хаба изменились в источнике
hermes skills update         # Переустановить только навыки, для которых доступны обновления
hermes skills update react   # Обновить один конкретный установленный навык из хаба

Он использует сохраненный идентификатор источника, а также текущий хэш-пакет источника для обнаружения расхождений.

💡 Tip

Ограничения GitHub API Операции хаба используют GitHub API, который имеет лимит в 60 запросов/час для неаутентифицированных пользователей. Если вы видите ошибку лимита запросов во время установки или поиска, установите GITHUB_TOKEN в вашем файле .env, чтобы увеличить лимит до 5 000 запросов/час. Сообщение о необходимости содержит полезную подсказку, когда это произойдет.

Публикация пользовательского Tap-навыка

Если вы хотите поделиться подобранным набором инструментов — для своей команды, своей или публично — вы можете опубликовать их как tap: репозиторий GitHub, другие пользователи Hermes подключите «hermesskills Tap с помощью ». Не требуется сервер, регистрация в реестре или конвейере релизов. Просто каталог файлов SKILL.md.

Структура репозитория

Tap — это любой репозиторий GitHub (публичный или приватный — для приватного нужен GITHUB_TOKEN), организованно следующим образом:

owner/repo
├── skills/                       # путь по умолчанию; настраивается для каждого tap
│   ├── my-workflow/
│   │   ├── SKILL.md              # обязательно
│   │   ├── references/           # опциональные вспомогательные файлы
│   │   ├── templates/
│   │   └── scripts/
│   ├── another-skill/
│   │   └── SKILL.md
│   └── third-skill/
│       └── SKILL.md
└── README.md                     # опционально, но полезно

Правила: - Каждый навык находится в его собственном каталоге внутри корневого пути Tap (по умолчанию skills/). - Имя каталога становится слагом установки навыков. - Каждый каталог навыков должен поддерживать SKILL.md со стандартным frontmatter SKILL.md (name, description, плюс опционально metadata.hermes.tags, version, author, platforms, metadata.hermes.config). - Подкаталоги, такие как references/, templates/, scripts/, assets/, загружаются вместе с SKILL.md во время установки. - Навыки, имя каталога которого начинается с . или _, отключаются.

Гермес обнаруживает навыки, перечисляя все подкаталоги, пути Tap и проверяя каждый на наличие SKILL.md.

Минимальный пример касания

my-org/hermes-skills
└── skills/
    └── deploy-runbook/
        └── SKILL.md

skills/deploy-runbook/SKILL.md:

---
name: deploy-runbook
description: Наш плейбук развертывания — сервисы, откат, каналы Slack
version: 1.0.0
author: Команда платформы My Org
metadata:
  hermes:
    tags: [deployment, runbook, internal]
---

# Плейбук развертывания

Шаг 1:...

После отправки этого на GitHub любой пользователь Hermes может подписаться и установить:

hermes skills tap add my-org/hermes-skills
hermes skills search deploy
hermes skills install my-org/hermes-skills/deploy-runbook

Пути, отличные от стандартных

Если ваши навыки находятся не в skills/ (распространено, когда вы добавили поддерево skills/ в существующий проект), отредактируйте запись Tap в ~/.hermes/.hub/taps.json:

{
  "taps": [
    {"repo": "my-org/platform-docs", "path": "internal/skills/"}
  ]
}

CLI hermesskills Tap add по умолчанию устанавливает для новых Tappath: "skills/"; отредактируйте файл напрямую, если вам нужен другой путь. Список навыков Гермеса показывает эффективный путь для каждого крана.

Установка отдельных инструментов напрямую (без добавления крана)

Пользователи также могут установить один навык из любого публичного репозитория GitHub, не добавляя весь репозиторий как Tap:

hermes skills install owner/repo/skills/my-workflow

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

Уровень доверия для Tap

Новые краны по умолчанию получают доверие сообщества. Навыки, установленные из них, передают стандартную проверку безопасности и отображают панель с предупреждением о стороннем контенте при первой установке. Если ваша организация или широко доверенный источник должны получить более высокий уровень доверия, добавьте его репозиторий в TRUSTED_REPOS в tools/skills_hub.py (требуется PR в ядре Hermes).

Управление краном

hermes skills tap list                                # показать все настроенные tap
hermes skills tap add myorg/skills-repo               # добавить (путь по умолчанию: skills/)
hermes skills tap remove myorg/skills-repo            # удалить

Внутри рабочей сессии:

/skills tap list
/skills tap add myorg/skills-repo
/skills tap remove myorg/skills-repo

Хранение кранов в ~/.hermes/.hub/taps.json (создается в программе).

Обновления встроенных инструментов (Сброс навыков Гермеса)

Гермес содержит набор встроенных инструментов в навыках/ внутри репозитория. При установке и при синхронизации каждого hermes update копирует их в ~/.hermes/skills/ и записывает манифест в ~/.hermes/skills/.bundled_manifest, сопоставляя каждое имя навыка с хешем оценки на момент синхронизации (исходный хеш).

При каждой синхронизации Hermes пересчитывает вашу локальную копию и сравнивает ее с исходным хешем:

Защита хорошая, но есть один острый край. Если вы отредактируете встроенный навык, а затем отмените свои изменения и вернетесь к встроенной версии, просто скопировав из ~/.hermes/hermes-agent/skills/, манифест все еще будет сохранять старый исходный хеш с момента последней успешной синхронизации. Ваше свежее скопированное напряжение (текущий встроенный хеш) не совпадет с этим закрытым исходным хешем, поэтому синхронизация будет продолжать помечать его как измененного пользователя.

сброс навыков Гермеса — это запасной выход:

# Безопасно: очищает запись манифеста для этого навыка. Ваша текущая копия сохраняется,
# но следующая синхронизация перебазируется на ней, так что будущие обновления будут работать нормально.
hermes skills reset google-workspace

# Полное восстановление: также удаляет вашу локальную копию и повторно копирует текущую встроенную
# версию. Используйте это, когда хотите вернуть исходный навык из репозитория.
hermes skills reset google-workspace --restore

# Неинтерактивно (например, в скриптах или режиме TUI) — пропустить подтверждение --restore.
hermes skills reset google-workspace --restore --yes

Эта же команда работает в чате как слэш-команда:

/skills reset google-workspace
/skills reset google-workspace --restore
```:::заметка Профили
Каждый профиль имеет свой собственный `.bundled_manifest` в его `HERMES_HOME`, поэтому `hermes -p скилы кодировщика сброса <имя>` влияет только на этот профиль.</div>
### Слеш-команды (внутри чата)

Все те же команды работают с `/skills`:
```text
/skills browse
/skills search react --source skills-sh
/skills search https://mintlify.com/docs --source well-known
/skills inspect skills-sh/vercel-labs/json-render/json-render-react
/skills install openai/skills/skill-creator --force
/skills check
/skills update
/skills reset google-workspace
/skills list

Официальные дополнительные навыки по-прежнему используют идентификаторы, такие как «official/security/1password» и «official/migration/openclaw-migration».