2026 Hermes Agent Skills — продвинутое руководство: SKILL.md, Bundles и GEPA
В начале 2026 Nous Research выпустил Hermes Agent — за два месяца репозиторий набрал 160 000+ звёзд на GitHub. Ключевой тезис не «большая модель», а "the agent that grows with you": агент, который накапливает процедурные знания между сессиями. Фундамент — Skills: стандартизированные, версионируемые, эволюционируемые playbook в SKILL.md. Этот текст — продвинутый слой поверх базовой установки (см. пошаговую установку Hermes): Progressive Disclosure и token throughput, Skill Bundles, условная активация, Tap-публикация и GEPA + DSPy для автоматической доработки skills без fine-tune весов модели.
1. Три боли: зачем Hermes Skills заслуживают отдельного инженерного фокуса
Многие разворачивают Hermes как «ещё один ChatGPT-обёртку» и упускают модуль с наибольшим долгосрочным ROI — Skills:
- Token cost runaway. SOP целиком в system prompt = полный burn на каждый turn. Progressive Disclosure даёт нулевой overhead до активации skill — критично на длинных сессиях с Bundles и MCP.
- Знания не переживают сессию. Одноразовый prompt исчезает с тредом. Skill — процедурная память: git, Tap, GEPA-итерации, совместное использование в команде.
- Ручной trigger storm. Сложный workflow требует цепочки
/skill-name. Skill Bundle упаковывает N skills в одну slash-команду без инвалидации Prompt Cache.
Продвинутый читатель должен закрыть пять вопросов: как Progressive Disclosure держит Level 0 ~3K tokens? Как работает conditional activation? Как Bundles снижают latency принятия решений? Как DSPy + GEPA улучшает SKILL.md по трассам? Какие community-репозитории уже production-ready? Ниже — разбор по слоям.
2. Skills ≠ Prompts ≠ Memory: матрица для архитектурных решений
Смешение трёх сущностей ведёт к неверному placement знаний. Мнемоника: Prompt = стикер (одна сессия); Memory = блокнот (факты и предпочтения, always-on); Skill = SOP-мануал (процедура, lazy-load по запросу).
| Ось | Prompt | Memory | Skills |
|---|---|---|---|
| Персистентность | Текущий диалог | Межсессионно, постоянно | Межсессионно, постоянно |
| Момент загрузки | Каждый turn в контексте | Автоинъекция при старте сессии | On-demand — ключевое отличие |
| Token cost | Каждый запрос | Малый, стабильный | 0 до активации |
| Тип контента | Любое намерение | Факты, предпочтения пользователя | Процедурные шаги |
| Кто поддерживает | Пользователь вручную | Агент автоматически | Пользователь + агент (skill_manage) |
| Шаринг | Неудобно | Приватно | Tap для команды/комьюнити |
3. SKILL.md и Progressive Disclosure: контроль token budget
3.1 Базовая структура (agentskills.io)
Все Hermes Skills следуют открытому стандарту agentskills.io — переносимость между Hermes, Claude Code, Cursor, OpenCode без переписывания frontmatter.
---
name: my-skill # обязательно: lowercase + дефис, ≤64 символов
description: | # обязательно: ≤1024 символов, начинайте с "Use when..."
Use when the user needs to [...].
Handles [...] and [...].
version: 1.0.0
license: MIT
compatibility: Requires git, docker
allowed-tools: Bash(git:*) Read
metadata:
hermes:
tags: [devops, automation]
category: software-development
related_skills: [github-pr-workflow, test-driven-development]
requires_toolsets: [terminal]
fallback_for_toolsets: [web]
---
# My Skill Title
## Overview
## When to Use
## Procedure
## Common Pitfalls
## Verification Checklist
3.2 Модульное дерево каталога
~/.hermes/skills/
└── my-category/
└── my-skill/
├── SKILL.md # ядро (≤500 строк)
├── references/ # API-справка, lazy-load
├── templates/ # шаблоны
└── scripts/ # исполняемые скрипты для агента
3.3 Трёхуровневая Progressive Disclosure
| Уровень | Содержимое | Триггер | Token cost |
|---|---|---|---|
| Level 0 | name + description |
Старт сессии, все skills | ~3K суммарно |
| Level 1 | Полный SKILL.md | /skill-name или LLM-routing |
Зависит от размера файла |
| Level 2 | references/, scripts/ | LLM при выполнении шага | Пофайлово, on-demand |
Инженерный вывод: description — единственный сигнал Level 0. LLM решает загрузку по «когда применять», а не по «что это». Плохой description = ложные активации и лишний burn Level 1.
4. Skill Bundles: один slash — полный workflow без Prompt Cache invalidation
Skill Bundles — недооценённая фича Hermes 2026. Лёгкий YAML объединяет несколько skills; /bundle-name загружает их одновременно, не трогая system prompt и не ломая кэш провайдера.
Путь: ~/.hermes/skill-bundles/<slug>.yaml
name: backend-dev
description: |
Full backend feature workflow — code review, TDD, and PR management.
skills:
- github-code-review
- test-driven-development
- github-pr-workflow
instruction: |
Always write failing tests first before implementation.
Never push directly to main.
Сценарии с высоким throughput:
- research-session: arxiv + deep-research + plan + excalidraw — paper scan и архитектурная диаграмма в начале каждой сессии.
- mlops-deploy: vllm + llama-cpp + github-pr-workflow + systematic-debugging — inference benchmark до/после деплоя с фиксацией quant-настроек.
Правила приоритета:
- Bundle и skill с одинаковым именем — побеждает Bundle.
- Отсутствующий skill в Bundle — skip без crash, warning при загрузке.
- Bundle не меняет system prompt — Prompt Cache остаётся валидным.
hermes bundles create backend-dev \
--skills github-code-review,test-driven-development,github-pr-workflow \
--instruction "Always write failing tests first"
5. Условная активация: environment-aware skill routing
Skill может автоматически скрываться или показываться в зависимости от доступных toolsets в текущей сессии. Конфигурация в metadata.hermes:
metadata:
hermes:
requires_toolsets: [web]
requires_tools: [web_search]
fallback_for_toolsets: [browser]
fallback_for_tools: [browser_navigate]
| Поле | Логика |
|---|---|
| requires_toolsets | Skill скрыт, если toolset отсутствует |
| requires_tools | Skill скрыт, если инструмент недоступен |
| fallback_for_toolsets | Skill скрыт, если указанный toolset есть (резервный путь) |
| fallback_for_tools | Skill скрыт, если указанный инструмент есть |
Классика: free vs paid search. У duckduckgo-search задайте fallback_for_tools: [web_search]: при наличии FIRECRAWL_KEY / BRAVE_SEARCH_KEY активируется платный web_search, DuckDuckGo skill исчезает из Level 0 — меньше шума и tokens. API недоступен — fallback всплывает автоматически.
Platform-aware: telegram-notify с requires_toolsets: [messaging] и platforms: [telegram, discord]. TUI hermes skills позволяет независимо включать skills для CLI, Telegram, Discord.
6. Skills Hub и open-source экосистема
6.1 Официальные каналы установки
hermes skills install official/research/arxiv
hermes skills install https://example.com/SKILL.md --name my-skill
hermes skills install github:openai/skills/k8s
hermes skills tap add github:my-org/my-skills
6.2 Репозитории, которые стоит мониторить
| Репозиторий | Назначение | Акцент |
|---|---|---|
| ChuckSRQ/awesome-hermes-skills | Кураторский production-набор | Deep Research, MLOps, Apple-интеграция; 23 skills с GitHub Copilot |
| amanning3390/hermeshub | Community registry | Security scan, API, marketplace |
| kevinnft/ai-agent-skills | 191 skill, 28 категорий | Одна команда — Hermes / Claude Code / Cursor |
| NousResearch/hermes-agent | Официальный upstream | Все встроенные skills и authoring spec |
Стандарт agentskills.io обеспечивает cross-platform portability. Валидация: skills-ref validate ./my-skill.
7. Публикация Skill Tap: team-scale distribution
GitHub-репозиторий как Tap — подписка команды на единый набор skills. Мало кто документирует этот слой, хотя он критичен для консистентности ~/.hermes/skills/ между инженерами.
my-skills-tap/
├── skills.sh.json
├── mlops/vllm-deploy/SKILL.md
├── research/paper-summarizer/SKILL.md
└── README.md
skills.sh.json управляет категориями в Hub. Деплой для команды:
hermes skills tap add github:your-org/your-skills-tap
hermes skills tap add github:your-org/private-skills --token $GH_TOKEN
hermes skills tap update
hermes skills tap list
Version control: держите ~/.hermes/skills/ в git; на новом узле — git pull && hermes skills reset для синхронизации и пересборки built-in skills.
8. Self-Evolving Skills: GEPA + DSPy без fine-tune GPU
Главное конкурентное преимущество Hermes перед однотипными CLI-агентами. GEPA (Genetic-Pareto Prompt Evolution) — ICLR 2026 Oral, интеграция в hermes-agent-self-evolution. Оптимизируется текст SKILL.md по execution traces, без изменения весов модели. Стоимость итерации: $2–10 (только API, GPU не нужен).
8.1 Пять стадий GEPA
- Stage 1 — сбор трасс. SQLite sessiondb: tool calls, ветвления, ошибки.
- Stage 2 — reflective failure analysis. LLM генерирует actionable side information: не «упало», а «почему упало».
- Stage 3 — targeted mutation. 10–20 вариантов SKILL.md под конкретные failure modes.
- Stage 4 — multi-objective Pareto. Одновременно: success rate × token efficiency × latency.
- Stage 5 — human review PR. Лучший вариант → PR → merge после approve.
8.2 Быстрый старт
git clone https://github.com/NousResearch/hermes-agent-self-evolution
cd hermes-agent-self-evolution && pip install -r requirements.txt
export HERMES_AGENT_PATH=~/.hermes
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source synthetic
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source sessiondb
8.3 Четыре guardrail
- Full test suite:
pytest tests/ -q— 100% pass. - Size cap: skill ≤ 15KB, tool description ≤ 500 символов.
- Prompt Cache compatibility: mid-session mutation запрещена.
- Semantic preservation: skill не должен дрейфовать от исходной цели.
8.4 Roadmap эволюции (официальный статус)
| Фаза | Цель оптимизации | Движок | Статус |
|---|---|---|---|
| Phase 1 | SKILL.md | DSPy + GEPA | ✅ Реализовано |
| Phase 2 | Tool descriptions | DSPy + GEPA | 🔲 Planned |
| Phase 3 | System prompt fragments | DSPy + GEPA | 🔲 Planned |
| Phase 4 | Tool implementation code | Darwinian Evolver | 🔲 Planned |
| Phase 5 | Continuous improvement loop | Automation pipeline | 🔲 Planned |
Cross-platform traces: трасссы Claude Code или Gemini CLI можно скормить GEPA благодаря agentskills.io:
python -m evolution.skills.evolve_skill \
--skill github-code-review --iterations 10 --eval-source mixed \
--trace-dirs ~/.claude/traces,~/.hermes/sessions
9. Plugin skills: namespace без шума в skills_list
Плагин упаковывает skills в namespace plugin:skill: не попадают в default skills_list (меньше Level 0 noise), активируются только по явному вызову (opt-in), sibling skills видны при загрузке одного.
skill_view("superpowers:writing-plans")
# при загрузке показываются sibling skills того же плагина
Декларация в plugin.yaml:
name: my-hermes-plugin
skills:
- name: writing-plans
path: skills/writing-plans/SKILL.md
- name: editing
path: skills/editing/SKILL.md
10. Продвинутое написание skills: throughput и precision
10.1 description определяет precision routing
❌ Размыто: Helps with code. → ✅ Точный trigger: Use when reviewing a pull request... Do NOT use for writing new code.
10.2 Common Pitfalls — quality gate
Production-grade Pitfalls: конкретный failure mode, root cause, fix. Примеры: хрупкие CSS-селекторы, GitHub API rate limit, token overflow на больших diff и chunking-стратегия.
10.3 Скрипты и skill_manage
В Procedure ссылайтесь на scripts/extract_schema.py; при fail — fallback references/manual-extract.md. Агент может патчить skills через skill_manage(action='patch'|'create'); gate: skills.agent_writes_require_approval: true в config.yaml.
10.4 Контроль размера skill
| Размер | Рекомендация |
|---|---|
| < 500 строк | Весь контент в SKILL.md |
| 500–1000 строк | Детали в references/ |
| > 1000 строк | Split; возможно, это два skill |
| > 15KB | Hard limit GEPA — обязательный split |
11. Кейс: blog-workflow Bundle для tech-контента
Соберите blog-workflow Bundle из seo-keyword-research, outline-generator, code-example-validator, bilingual-checker, publish-to-platform:
name: blog-workflow
description: Full tech blog writing workflow.
skills:
- seo-keyword-research
- outline-generator
- code-example-validator
- bilingual-checker
- publish-to-platform
instruction: |
Always research SEO keywords before writing.
Ensure all code examples are tested and runnable.
Generate both Chinese and English title options.
Кастомный seo-keyword-research в начале сессии должен выдавать матрицу 3–5 head terms + 10–15 long-tail («как использовать X», «how to X», «X vs Y») с учётом platform-specific терминологии (Agent / агент / proxy).
12. FAQ
Q: Чем Skills отличаются от MCP?
Skills — процедурные документы; MCP — tool interface. MCP даёт доступ к БД, Skill описывает корректную миграцию. Дополняют друг друга, не заменяют.
Q: Skill изменён, агент использует старую версию?
Нужен /reset или install с --now (инвалидирует Prompt Cache, растёт token bill).
Q: GEPA-evolved skills безопасны?
Четыре guardrail + PR review; semantic drift detection. Всё равно review каждый diff перед merge.
Q: Переиспользование в Claude Code?
Копия в ~/.claude/skills/ или kevinnft/ai-agent-skills multi-platform installer.
Q: Русский/китайский текст в skill влияет на token efficiency?
~1–1,5 token на символ CJK; description лучше держать на английском (или bilingual) — routing точнее на большинстве моделей.
13. Ресурсы и удалённый Mac 7×24: decision matrix
13.1 Официальные и community-ссылки
- Hermes Agent docs · Skills System reference
- agentskills.io · GEPA self-evolution · GEPA algorithm · DSPy
- На сайте: Cursor Agent Skills — полное руководство · OpenRouter CLI и выбор Hermes
13.2 Матрица: локальный Mac vs удалённый Mac 7×24
| Сценарий | Локальный MacBook | Удалённый Mac 7×24 (SFTPMAC) |
|---|---|---|
| GEPA + sessiondb | Крышка закрыта — неполные трассы | Непрерывный сбор трасс, богаче eval set |
| Telegram/Discord Gateway | Sleep/Wi-Fi — bot offline | launchd daemon, gateway always-on |
| Team Tap sync | Drift ~/.hermes между ноутбуками |
Единый узел + SFTP/rsync sync skills |
| Skill Bundles, long sessions | Unified memory делится с IDE и браузером | Apple Silicon unified memory — стабильнее multi-skill load |
13.3 Итог: от эксперимента к production agent node
Этот гайд закрывает полный стек Hermes Skills: матрица Prompt/Memory/Skills → SKILL.md и Progressive Disclosure (~3K Level 0) → Bundles без Prompt Cache invalidation → conditional activation → Hub/Tap → GEPA ($2–10, 15KB cap) → Plugin namespace → authoring hygiene → blog-workflow кейс. Итог — агент как версионируемый, шаримый, self-improving процедурный asset, а не одноразовый prompt.
Локальный MacBook имеет жёсткие пределы: sleep рвёт sessiondb для GEPA, Telegram Gateway падает при смене сети, Tap drift между машинами команды. Для 7×24 сбора evolution traces, стабильного Gateway и централизованного ~/.hermes/skills/ надёжнее удалённый Apple Silicon Mac: native launchd, macOS-native toolchain, SFTP/rsync для skills directory без rsync-over-WSL костылей.
SFTPMAC — аренда удалённого Mac заточена под Hermes Agent Skills workflow: круглосуточный Gateway, непрерывный GEPA sessiondb, синхронизация team Tap. Для production entry point в Skills-экосистему это предсказуемее, чем «домашний Mac как agent host». Напишите первый SKILL.md сегодня — агент начнёт копить процедурный капитал с первой же сессии.