Hermes Agent Skills를 별도로 깊이 연구할 이유
일회성 Prompt와 달리 Hermes의 Skill 체계는 표준이 있고 진화하며 세션을 넘어 지속되는 절차적 기억입니다. 설치 입문은 설치 완전 가이드를, 메모리 메커니즘은 3계층 메모리 편을 참고하십시오. 본문은 고급 영역으로 바로 진입합니다.
Token 비용 폭주: 모든 SOP를 시스템 Prompt에 넣으면 매 세션 전량 로딩됩니다. Skills의 Progressive Disclosure는 활성화 전 소비가 없습니다.
워크플로 파편화: 코드 리뷰, TDD, PR 관리를 /skill-name으로 하나씩 트리거해야 합니다. Skill Bundles는 한 명령으로 전체 Skill 세트를 동시에 로드합니다.
환경 인식 부재: 유료 web_search와 무료 DuckDuckGo가 동시에 프롬프트에 나타납니다. 조건 활성화는 도구 가용성에 따라 Skill을 자동으로 표시하거나 숨깁니다.
Skill 품질 정체: 수기 작성 Skill은 완성 후 고정됩니다. GEPA(Genetic-Pareto Prompt Evolution, ICLR 2026 Oral)는 실행 궤적을 분석해 SKILL.md 텍스트를 개선하며 모델 가중치 미세조정이 필요 없습니다.
팀 공유 어려움: Skill이 개인 디렉터리에 흩어져 있습니다. Tap 레포지토리와 hermes skills tap add로 전체 Skill 라이브러리를 한 번에 구독할 수 있습니다.
| 차원 | 일반 Prompt | Memory(메모리) | Skills(스킬) |
|---|---|---|---|
| 지속성 | 현재 대화 | 세션 간 영구 | 세션 간 영구 |
| 로딩 시점 | 매번 컨텍스트에 포함 | 매 세션 자동 주입 | 필요 시 로딩 |
| Token 비용 | 매번 소비 | 작고 안정적 | 활성화 전 소비 없음 |
| 내용 유형 | 임의 의도 설명 | 사용자 선호·사실 | 절차적 단계 |
| 유지 주체 | 사용자 수동 | Agent 자동 | 사용자 + Agent 모두 |
| 공유 가능성 | 불편함 | 비공개 | 커뮤니티 Tap으로 배포 가능 |
요약: Prompt = 포스트잇, Memory = 메모장, Skill = SOP 매뉴얼 — 필요할 때만 펼치고, 불필요할 때는 컨텍스트를 차지하지 않습니다.
SKILL.md 형식 심층 분석과 Progressive Disclosure
모든 Hermes Skills는 agentskills.io 오픈 표준을 따르며, Agent 간 이식이 가능합니다(Hermes, Claude Code, Cursor 모두 사용 가능). skills-ref validate ./my-skill로 형식 준수 여부를 검증할 수 있습니다.
---
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
권장 디렉터리 구조는 다음과 같습니다.
~/.hermes/skills/
└── my-category/
└── my-skill/
├── SKILL.md # 핵심 단계, 500행 이하 권장
├── references/ # API 참조, 필요 시 로딩
├── templates/ # 재사용 템플릿
└── scripts/ # Agent가 직접 실행할 스크립트
| 로딩 계층 | 내용 | 트리거 시점 | Token 비용 |
|---|---|---|---|
| Level 0 | name + description | 매 세션 시작, 모든 Skill | 약 3K(전체 Skill 합계) |
| Level 1 | 전체 SKILL.md 본문 | 사용자 /skill-name 또는 LLM 판단 | 파일 길이에 따라 다름 |
| Level 2 | references/ scripts/ 파일 | LLM 실행 시 필요 판단 | 필요 시, 파일 단위 |
작성 팁: description은 Level 0의 전부입니다. LLM은 이를 보고 전체 Skill 로딩 여부를 결정합니다. 「무엇인지」보다 「언제 쓰는지」를 명확히 쓰십시오. Use when...으로 시작하고 1,024자 이하를 권장합니다.
Skill Bundles와 조건 활성화: 원클릭 워크플로와 환경 인식
Skill Bundles는 Hermes 2026 신규 기능입니다. 경량 YAML로 여러 Skill을 하나의 슬래시 명령에 묶으며, /bundle-name 실행 시 나열된 모든 Skill이 동시에 로드됩니다. 파일 위치: ~/.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.
Bundle 우선순위 규칙: Bundle과 단일 Skill이 같은 이름이면 Bundle이 우선합니다. 미설치 Skill은 건너뛰며 오류를 내지 않습니다. Bundle은 시스템 프롬프트를 수정하지 않아 Prompt Cache 무효화를 유발하지 않습니다. CLI 빠른 생성:
hermes bundles create backend-dev \ --skills github-code-review,test-driven-development,github-pr-workflow \ --instruction "Always write failing tests first"
조건 활성화(Conditional Activation)는 현재 세션의 도구 가용성에 따라 Skill을 자동으로 표시하거나 숨깁니다. metadata.hermes 아래에서 설정합니다.
| 필드 | 동작 로직 |
|---|---|
requires_toolsets | 나열한 도구셋이 없으면 이 Skill을 숨깁니다 |
requires_tools | 나열한 도구가 없으면 이 Skill을 숨깁니다 |
fallback_for_toolsets | 나열한 도구셋이 있으면 이 Skill을 숨깁니다(대안) |
fallback_for_tools | 나열한 도구가 있으면 이 Skill을 숨깁니다 |
대표 시나리오: FIRECRAWL_KEY / BRAVE_SEARCH_KEY 설정 후 유료 web_search가 활성화되면, DuckDuckGo Skill은 fallback_for_tools: [web_search]로 프롬프트에서 자동으로 사라집니다. API를 쓸 수 없을 때는 대안이 자동으로 나타납니다. 플랫폼 인식 예시: requires_toolsets: [messaging] + platforms: [telegram, discord]. hermes skills TUI로 플랫폼별 Skill을 독립적으로 켜고 끌 수 있습니다.
Skills Hub, Tap 배포, GEPA 자진화와 고급 작성
공식 설치 채널:
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 hermes skills tap update hermes skills tap list
| 레포지토리 | 하이라이트 | Stars |
|---|---|---|
| awesome-hermes-skills | 프로덕션급 모음, Deep Research, MLOps, Apple 통합 | 67 |
| hermeshub | 커뮤니티 등록 센터, 프롬프트 인젝션 보안 스캔 | 166 |
| ai-agent-skills | 191개 Skill, 28개 분류, Hermes/Claude/Cursor 호환 | 10 |
| hermes-agent | 공식 권위 소스, 작성 규범 포함 | — |
팀 Tap 배포: GitHub 레포지토리를 만들고 skills.sh.json으로 Hub 분류를 제어합니다. 팀원은 hermes skills tap add github:your-org/your-skills-tap을 실행합니다. 비공개 레포지토리는 --token $GH_TOKEN을 추가합니다. ~/.hermes/skills/를 Git 버전 관리에 넣어 기기 간 동기화를 권장합니다.
GEPA + DSPy 자진화(hermes-agent-self-evolution): 모델 가중치를 미세조정하지 않고, 실행 궤적 분석·변형 생성·다목적 파레토 최적화로 Skill 텍스트를 개선합니다. 최적화 1회당 약 $2–10(순수 API, GPU 불필요). 5단계 흐름: ① 실행 궤적 수집(SQLite), ② 반성적 실패 분석, ③ 표적 변이(10–20개 SKILL.md 변형), ④ 다목적 파레토 평가(성공률 × Token 효율 × 속도), ⑤ 수동 PR 검토.
export HERMES_AGENT_PATH=~/.hermes
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source sessiondb
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source mixed \
--trace-dirs ~/.claude/traces,~/.hermes/sessions
네 가지 안전장치: 전체 pytest 100% 통과, Skill ≤ 15KB, Prompt Cache 호환, 의미 보존 검사. 공식 진화 로드맵: Phase 1 Skill 파일(구현 완료) → Phase 2 도구 설명 → Phase 3 시스템 프롬프트 → Phase 4 도구 구현 코드 → Phase 5 완전 자동 루프.
Plugin Skill은 plugin:skill 네임스페이스로 로드되며, 기본 skills_list에 나타나지 않고 사용자가 명시적으로 호출할 때만 활성화됩니다. 플러그인 내 Skill은 서로 참조할 수 있습니다. 고급 작성 요점: description에 트리거 조건을 명확히 쓰고, Common Pitfalls에 구체적 실패 모드와 수정 단계를 포함합니다. 대형 Skill은 references/로 분리합니다(500행 초과 시 분리 권장, 15KB 초과 시 GEPA 제한 초과). skill_manage 도구로 Agent가 Skill을 동적으로 유지하며, config.yaml에 agent_writes_require_approval: true로 수동 승인 게이트를 켤 수 있습니다.
Hermes 설치 및 검수: hermes doctor 통과, Gateway 7×24 온라인(설치 가이드 참고).
첫 SKILL.md 작성: agentskills.io 표준 준수, description은 Use when...으로 시작, 본문에 Procedure와 Pitfalls 포함.
Skill Bundle 생성: hermes bundles create 또는 ~/.hermes/skill-bundles/에 YAML 직접 작성.
조건 활성화 설정: metadata.hermes에 requires_toolsets / fallback_for_tools 추가.
커뮤니티 Tap 구독: hermes skills tap add github:..., 정기적으로 tap update 실행.
선택 GEPA 진화: self-evolution 레포지토리 클론, sessiondb 궤적으로 evolve_skill 실행, PR 수동 검토 후 병합.
블로그 워크플로 실전 사례와 인용 가능한 기술 수치
blog-workflow Bundle 예시: seo-keyword-research, outline-generator, code-example-validator, bilingual-checker, publish-to-platform을 묶고, instruction에서 SEO 키워드 조사 선행, 코드 실행 가능성 확인, 한·영 이중 언어 제목 생성을 요구합니다. 커스텀 seo-keyword-research Skill은 metadata.hermes에 requires_toolsets: [web]을 설정하고, Procedure에서 한국어 롱테일(「X 사용법」「X 튜토리얼」)과 영어 롱테일(「how to X」「X vs Y」) 및 플랫폼 트렌드 교차 검증을 다룹니다.
Level 0 전체 Skill 오버헤드: 약 3K tokens(모든 Skill name+description 합계). SOP 전량 주입 대비 한 자릿수 절감이 가능합니다.
GEPA 1회 최적화 비용: 약 $2–10 API 호출, GPU 불필요. 매회 10–20개 변형을 파레토로 선별합니다.
Skill 크기 하드 제한: GEPA 안전장치는 Skill ≤ 15KB, 도구 설명 ≤ 500자를 요구합니다. SKILL.md는 500행 이하를 권장하며, 1,000행 초과 시 분리를 강력히 권장합니다.
주의: Skill 수정은 현재 세션에 반영되지 않습니다. /reset 또는 설치 시 --now가 필요합니다(Prompt Cache 무효화 유발). description은 영어 또는 한·영 이중 언어를 권장하며, 하위 LLM은 영어 description 매칭이 더 정확합니다.
노트북 덮개 닫힘, x86 VPS의 macOS 경로 부재, 로컬 디스크 버전 관리 부재 — 이런 호스트 방식은 Skill 복리와 GEPA 궤적 축적을 끊습니다. 7×24 Gateway, Skill 자진화, 기기 간 동기화가 필요한 프로덕션 환경에서는 MESHLAUNCH Mac Mini M4 클라우드 베어메탈 대여가 일반적으로 더 나은 선택입니다. 전용 Apple Silicon, launchd 네이티브 데몬, 일·주·월 유연 주문으로 Hermes 공식 macOS 경로와 가장 잘 맞습니다. 추가 자료: Hermes 공식 문서, GEPA 알고리즘, DSPy 프레임워크. 요금은 대여 요금 페이지, 배포 문의는 고객 센터를 참고하십시오.
Skills는 절차적 지식 문서(Agent가 특정 작업을 수행하는 방법을 가르침)이고, MCP는 도구 인터페이스(Agent에 추가 도구 호출 능력을 제공)입니다. 두 요소는 상호 보완적입니다. MCP가 데이터베이스 접근을 제공하면, Skill은 데이터베이스 마이그레이션을 올바르게 수행하는 방법을 가르칩니다. 자세한 내용은 MCP Server 개발 가이드를 참고하십시오.
Skill 수정은 현재 세션에 반영되지 않습니다. /reset으로 새 세션을 시작하거나, 설치 시 --now로 강제 새로고침이 필요합니다(Prompt Cache 무효화로 Token 소비가 늘어납니다).