Система навыков

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

Все навыки хранятся в ~/.hermes/skills/. Это единая директория, служащая «источником истины». При чистой установке стандартные навыки копируются из репозитория. Сюда же попадают навыки, установленные из центра (Hub) или созданные самим агентом. Агент может изменять или удалять любые навыки.

См. также:

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

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

# В 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 — хороший пример слеш-команды на базе навыка с пользовательским поведением. Вызов /plan [запрос] велит Hermes изучить контекст, написать план реализации в формате Markdown (вместо немедленного выполнения задачи) и сохранить результат в .hermes/plans/ относительно рабочего каталога.

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

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

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

Для экономии токенов навыки используют паттерн поэтапной загрузки:

Уровень 0: skills_list()           → [{имя, описание, категория}, ...]   (~3k токенов)
Уровень 1: skill_view(имя) → Полный контент + метаданные (варьируется)
Уровень 2: skill_view(имя, путь) → Специфический справочный файл (варьируется)

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

Формат 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] # Опционально — условная активация
---

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

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

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

## Подводные камни
- Известные ошибки и способы их решения

## Верификация
Как подтвердить, что всё сработало.

Навыки для конкретных платформ

Навыки могут ограничивать свою работу определенными операционными системами через поле platforms:

ЗначениеСоответствует
macosmacOS (Darwin)
linuxLinux
windowsWindows
platforms: [macos]            # только macOS (например, iMessage, 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_search — в этом случае навык DuckDuckGo скрыт. Если ключа нет, набор инструментов web недоступен, и навык DuckDuckGo автоматически появляется как замена.

Навыки без условий ведут себя как обычно — они видны всегда.

Безопасная настройка при загрузке

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

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

При обнаружении отсутствующего значения Hermes безопасно запросит его только в момент загрузки навыка в локальном CLI. Настройку можно пропустить и продолжить использование. В мессенджерах секреты никогда не запрашиваются в чате; вместо этого агент попросит использовать hermes setup или файл ~/.hermes/.env локально.

Структура директории навыка

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

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

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

Когда агент создает навыки

  • После успешного завершения сложной задачи (более 5 вызовов инструментов).
  • Когда агент столкнулся с ошибками или тупиками, но нашел рабочий путь.
  • Когда пользователь скорректировал подход агента.
  • Когда был обнаружен нетривиальный рабочий процесс.

Действия

ДействиеНазначениеКлючевые параметры
createНовый навык с нуляимя, контент (полный SKILL.md), опц. категория
patchТочечные исправления (предпочтительно)имя, old_string, new_string
editСерьезная переработка структурыимя, контент (полная замена SKILL.md)
deleteПолное удаление навыкаимя
write_fileДобавление/обновление вспомогательных файловимя, file_path, file_content
remove_fileУдаление вспомогательного файлаимя, file_path
подсказка

Действие patch предпочтительнее для обновлений: оно экономит токены, так как в вызове инструмента фигурирует только измененный текст.

Центр навыков (Skills Hub)

Просматривайте, ищите, устанавливайте и управляйте навыками из онлайн-реестров, 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 list --source hub # Список навыков, установленных из Hub
hermes skills check # Проверка обновлении в источниках
hermes skills update # Установка обновлений
hermes skills audit # Повторное сканирование всех навыков на безопасность
hermes skills uninstall k8s # Удаление навыка из Hub
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-источника

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

ИсточникПримерПримечания
officialofficial/security/1passwordДополнительные навыки от разработчиков Hermes.
skills-shskills-sh/vercel-labs/...Поиск через hermes skills search <query> --source skills-sh.
well-knownwell-known:https://...Навыки, предлагаемые сайтами напрямую через /.well-known/skills/index.json.
githubopenai/skills/k8sУстановка напрямую из GitHub репозиториев.
clawhub, lobehubИдентификаторы источниковИнтеграции со сторонними сообществами и маркетплейсами.

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

Hermes интегрируется со следующими экосистемами навыков:

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

Они поддерживаются в самом репозитории Hermes и устанавливаются с встроенным уровнем доверия.

2. skills.sh (skills-sh)

Публичный каталог навыков от Vercel. Hermes может искать в нем, просматривать страницы навыков и устанавливать их из исходных репозиториев.

3. Well-known эндпоинты (well-known)

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

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

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

5. ClawHub (clawhub)

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

6. Репозитории в стиле маркетплейса Claude (claude-marketplace)

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

7. LobeHub (lobehub)

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

Сканирование на безопасность и флаг --force

Все навыки из Hub проходят через сканер безопасности, который проверяет их на утечку данных, промпт-инъекции, деструктивные команды и другие угрозы.

Используйте --force, если вы изучили сторонний навык и хотите обойти блокировку безопасной политики (если она не критическая):

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

Важное поведение:

  • --force может обойти блокировки политик ранга «предупреждение» (caution/warn).
  • --force не может обойти вердикт сканера dangerous (опасно).
  • Официальные дополнительные навыки (official/...) имеют встроенный уровень доверия и не выводят предупреждение о стороннем источнике.

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

УровеньИсточникПолитика
builtinИдет в комплекте с HermesВсегда доверяем
officialoptional-skills/ в репоВстроенное доверие
trustedДоверенные реестры (например, openai/skills)Более мягкая политика, чем для сообщества
communityВсё остальное (skills.sh, GitHub и т.д.)Можно обойти --force, если нет вердикта dangerous

Цикл обновления

Hub отслеживает происхождение установленных навыков для проверки обновлений:

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

Слеш-команды (внутри чата)

Те же команды работают через префикс /skills:

/skills browse
/skills search react --source skills-sh
/skills install openai/skills/skill-creator --force
/skills check
/skills update
/skills list