Hermes Agent Skills 2026
Полное руководство
SKILL.md → GEPA → Bundles
Hermes уже развёрнут, но Agent по-прежнему живёт на дефолтных навыках? Этот материал для инженеров, которые хотят выжать из Skills максимум: от спецификации agentskills.io и трёхуровневой Progressive Disclosure до Skill Bundles, условной активации по toolsets, Tap-публикации и GEPA+DSPy эволюции без fine-tune весов. Внутри — сравнительные таблицы, YAML/CLI-примеры, кейс блог-пайплайна, FAQ и HowTo из 5 шагов для изолированного прогона на арендованном Mac.
Содержание
01 · Почему подсистема Skills Hermes заслуживает отдельного разбора
В начале 2026 Nous Research выпустил Hermes Agent — за два месяца проект набрал 160 000+ GitHub Stars, став одним из самых быстрорастущих OSS Agent-фреймворков. Ключевая идея — «the agent that grows with you»: агент накапливает процедурное знание между сессиями, а не перезаписывает контекст каждый раз. Реализация этой философии — Skills: версионируемые SOP-документы с маршрутизацией, lazy-load и путём к автоматической эволюции через GEPA.
Базовую установку Gateway, Telegram и cron мы не повторяем — см. гайд установки Hermes. Здесь — инженерный слой: как Progressive Disclosure удерживает Level 0 около ~3K токенов на весь каталог, как Bundles атомарно загружают связанные навыки без инвалидации Prompt Cache, и как GEPA оптимизирует текст SKILL.md по Pareto-фронту «успех × token-efficiency × latency».
02 · Три боли: «Hermes установлен» ≠ «Skills отлажены»
- Token bleed через monolithic prompt: весь SOP в system prompt → тысячи токенов на каждый turn; без Progressive Disclosure 50 навыков × полный SKILL.md легко выбивают 128K контекст.
- Неточная активация: размытый
descriptionдаёт false-positive load; безrequires_toolsets/fallback_for_toolsплатный web_search и бесплатный DuckDuckGo конкурируют в Level 0 одновременно. - Знание не эволюционирует: личные промпты не version-control'ятся, не публикуются через Tap; без GEPA качество SKILL.md застывает, хотя SQLite sessiondb уже содержит траектории для рефлексивного патчинга.
03 · Skills ≠ Prompts ≠ Memory: архитектурная матрица
| Измерение | Prompt | Memory | Skills |
|---|---|---|---|
| Persistence | Текущая сессия | Cross-session, permanent | Cross-session, permanent |
| Load trigger | Always-on в context | Auto-inject каждую сессию | On-demand (/skill или LLM router) |
| Token cost | Каждый turn | Малый, стабильный | 0 до активации |
| Content type | Intent / persona | Facts / preferences | Процедурные шаги |
| Shareability | Copy-paste | Private | Tap → team subscribe |
Мнемоника: Prompt = стикер на мониторе; Memory = блокнот предпочтений; Skill = runbook с verification checklist — открывается только когда router сопоставил intent с description.
04 · SKILL.md: спецификация agentskills.io
Hermes, Claude Code и Cursor читают один формат — agentskills.io. Frontmatter — единственный источник Level 0 metadata; тело — Level 1 procedure.
---
name: my-skill
description: |
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Критичные поля: name — lowercase+hyphen, ≤64 символов; description — ≤1024 символов, router видит только его на Level 0, формулируйте «Use when…»; metadata.hermes — conditional activation, tags, related_skills для cross-skill prefetch hints.
Модульная структура каталога
~/.hermes/skills/
└── my-category/
└── my-skill/
├── SKILL.md # ≤500 строк рекомендация
├── references/ # Level 2: API docs
├── templates/ # Reusable scaffolds
└── scripts/ # Executable helpers05 · Progressive Disclosure: трёхуровневая загрузка и token economics
Hermes не инжектит полные SKILL.md в system prompt. Router держит «оглавление» (~50–80 токенов на skill в Level 0), а полный текст подтягивается только при явном /skill-name или LLM tool-call skill_view.
| Уровень | Payload | Trigger | Token cost |
|---|---|---|---|
| Level 0 | name + description | Session bootstrap | ~3K суммарно на каталог |
| Level 1 | Полный SKILL.md | /skill-name или router match | 500–4000 tok типично |
| Level 2 | references/, scripts/ | Runtime LLM decision | Per-file, lazy |
Инженерный вывод: description — это embedding-free classifier prompt; длинные API spec уводите в references/, иначе Level 1 раздувает cache miss rate при каждом reload.
06 · Skill Bundles: атомарная загрузка workflow
Bundle — YAML в ~/.hermes/skill-bundles/<slug>.yaml. Команда /bundle-name загружает все перечисленные skills одновременно плюс общий instruction block — без переписывания system prompt.
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.Правила приоритета: Bundle vs одноимённый Skill → Bundle wins; missing skill → skip silently; Bundle не трогает base system prompt → Prompt Cache остаётся warm.
CLI scaffold:
hermes bundles create backend-dev \
--skills github-code-review,test-driven-development,github-pr-workflow \
--instruction "Always write failing tests first"Production-паттерны: research bundle (arxiv + deep-research + plan + excalidraw); MLOps deploy (vllm + llama-cpp + github-pr-workflow + systematic-debugging).
07 · Условная активация: environment-aware routing
Поля в metadata.hermes фильтруют Level 0 catalog по доступным toolsets/tools текущей сессии — skills «исчезают» из router index, не расходуя ни байта контекста.
| Поле | Логика |
|---|---|
requires_toolsets | Скрыть skill, если toolset отсутствует |
requires_tools | Скрыть skill, если конкретный tool недоступен |
fallback_for_toolsets | Скрыть, когда «основной» toolset активен (fallback path) |
fallback_for_tools | Скрыть, когда «основной» tool активен |
Reference pattern: DuckDuckGo skill с fallback_for_tools: [web_search] — при наличии FIRECRAWL_KEY / BRAVE_SEARCH_KEY premium web_search входит в catalog, DuckDuckGo выпадает из Level 0; при outage API fallback resurface автоматически.
08 · Skills Hub и OSS-реестры
Install channels:
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| Репозиторий | Фокус | Stars |
|---|---|---|
| ChuckSRQ/awesome-hermes-skills | Production Deep Research, MLOps | 67+ |
| amanning3390/hermeshub | Registry + prompt-injection detection | 166+ |
| kevinnft/ai-agent-skills | 191 skills, Hermes/Claude/Cursor | 10+ |
| NousResearch/hermes-agent | Canonical source | 160k+ |
Валидация: skills-ref validate ./my-skill — SKILL.md portable между Hermes, Claude Code, Cursor без vendor lock-in.
09 · Skill Tap: team-wide distribution через Git
Tap = GitHub repo как package manager для skills. Структура:
my-skills-tap/
├── skills.sh.json
├── mlops/vllm-deploy/SKILL.md
├── research/paper-summarizer/SKILL.md
└── README.mdTeam rollout:
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 listVersion control: ~/.hermes/skills/ в private Git → git pull && hermes skills reset синхронизирует fleet nodes без ручного rsync.
10 · GEPA + DSPy: эволюция SKILL.md без fine-tune
GEPA (Genetic-Pareto Prompt Evolution) — ICLR 2026 Oral, реализован в hermes-agent-self-evolution. Механизм: анализ SQLite execution traces → reflective failure mining → генерация 10–20 SKILL.md variants → multi-objective Pareto selection (success rate × token efficiency × wall-clock) → human-reviewed PR. Стоимость ~$2–10/run, GPU не требуется — только API calls.
Pipeline из 5 фаз: ① trace harvest (sessiondb) → ② failure reflection → ③ targeted mutation → ④ Pareto eval → ⑤ merge после review.
git clone https://github.com/NousResearch/hermes-agent-self-evolution
export HERMES_AGENT_PATH=~/.hermes
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source sessiondbЧетыре guardrails: 100% pass regression suite; SKILL.md ≤15KB, tool descriptions ≤500 chars; Prompt Cache compatibility preserved; semantic drift check. Roadmap: Phase 1 (SKILL.md) shipped; Phases 2–5 — tool desc, system prompt, tool impl code, full auto-loop.
Experimental: mixed trace sources — --eval-source mixed --trace-dirs ~/.claude/traces,~/.hermes/sessions для cross-CLI optimization.
11 · Plugin skills: opt-in namespace
Plugins упаковывают skills как plugin:skill — не попадают в default skills_list, активируются только explicit call (security boundary для untrusted packs).
skill_view("superpowers:writing-plans")
# plugin.yaml
name: my-hermes-plugin
skills:
- name: writing-plans
path: skills/writing-plans/SKILL.md12 · Инженерные практики authoring
- description = classifier: trigger + anti-patterns («NOT for one-off questions»); избегайте «Helps with code».
- Common Pitfalls = diff quality: конкретные failure modes (GitHub rate limit 403, diff >100KB token overflow) с remediation steps.
- scripts/ + references/ fallback: primary path через executable; manual path в
references/manual-extract.md. - Size budget: <500 строк → single SKILL.md; 500–1000 → split references; >15KB блокирует GEPA mutation window.
- skill_manage guard:
skill_manage(action='patch'|'create')— включитеagent_writes_require_approval: trueв config.yaml.
13 · Кейс: tech blog workflow Bundle
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.Custom seo-keyword-research skill выдаёт keyword matrix: 3–5 head terms + 10–15 long-tail, cross-ref Dev.to trending / HN / regional SERP signals — до того как LLM генерирует outline.
14 · FAQ
Q: Skills vs MCP?
Skills — procedural knowledge (как делать); MCP — tool interface (что вызывать). Комplement, not substitute.
Q: Skill обновлён, Agent использует stale version?
Hot reload не работает в active session — /reset или install с --now (invalidates Prompt Cache).
Q: GEPA output безопасен?
Four guardrails + mandatory PR review; всё равно diff-review каждого Pitfalls section.
Q: Reuse в Claude Code?
Copy SKILL.md → ~/.claude/skills/ или kevinnft/ai-agent-skills multi-host installer.
Q: Русский текст в SKILL.md — token penalty?
~1–1.5 tok/char для кириллицы; description держите EN или bilingual для точнее router match.
Дополнительно: официальная документация Hermes, Cursor Agent Skill гайд, 30-дневный Hermes field test.
15 · Изолированный прогон Skills на арендованном Mac (5 шагов)
Linux VPS поднимает Hermes Gateway для API-only flows, но не воспроизводит macOS Keychain, codesign chain, Xcode-adjacent skills и Seatbelt sandbox semantics. Daily-driver MacBook рискует API key leak через custom Tap и LaunchAgent pollution. Одноразовый Apple Silicon узел — controlled environment для Bundles/GEPA validation.
- Арендовать Apple Silicon: Mac mini M4+, Homebrew preinstalled, SSH key auth; тарифы — руководство по ценам Mac mini M4.
- Install + doctor: official script →
hermes doctorпроверяет Gateway, toolsets, sessiondb path. - Skills + Tap:
hermes skills install,hermes skills tap add; замер Level 0 footprint и Level 1 activation latency. - Bundle smoke test: YAML bundle → verify simultaneous load + instruction compliance на реальной задаче.
- Capture traces, release: export session output для GEPA
--eval-source sessiondb; terminate lease до rollover billing window.
Linux VPS годится для lightweight Gateway и cron, но не покрывает macOS-native skills и Keychain ACL; локальный Mac 24/7 — thermal throttling и credential cross-contamination. Посуточная аренда даёт production-identical Apple Silicon за fraction стоимости overnight API overrun; для permanent deploy см. VPS vs Mac mini M4 matrix.