Терминальный workflow Hermes Agent Skills и написание SKILL.md на macOS

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:

  1. Token cost runaway. SOP целиком в system prompt = полный burn на каждый turn. Progressive Disclosure даёт нулевой overhead до активации skill — критично на длинных сессиях с Bundles и MCP.
  2. Знания не переживают сессию. Одноразовый prompt исчезает с тредом. Skill — процедурная память: git, Tap, GEPA-итерации, совместное использование в команде.
  3. Ручной 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

  1. Stage 1 — сбор трасс. SQLite sessiondb: tool calls, ветвления, ошибки.
  2. Stage 2 — reflective failure analysis. LLM генерирует actionable side information: не «упало», а «почему упало».
  3. Stage 3 — targeted mutation. 10–20 вариантов SKILL.md под конкретные failure modes.
  4. Stage 4 — multi-objective Pareto. Одновременно: success rate × token efficiency × latency.
  5. 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

  1. Full test suite: pytest tests/ -q — 100% pass.
  2. Size cap: skill ≤ 15KB, tool description ≤ 500 символов.
  3. Prompt Cache compatibility: mid-session mutation запрещена.
  4. 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-ссылки

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 сегодня — агент начнёт копить процедурный капитал с первой же сессии.