2026년 초 Nous Research가 Hermes Agent를 공개한 뒤 두 달 만에 GitHub Star가 16만을 넘었습니다. 핵심 철학은 "the agent that grows with you"로, 사용할수록 Agent가 사용자에게 맞춰진다는 것입니다. 이를 뒷받침하는 것이 바로 스킬(Skills) 시스템입니다. 표준이 있고 진화 가능하며 세션을 넘어 지속되는 절차적 기억이며, 일회성 Prompt와는 다릅니다.
본문은 Hermes 설치를 마친 뒤 자체 Skill 작성, Tap 배포, GEPA로 스킬 자동 진화까지 가려는 개발자·팀을 대상으로 합니다. Skills와 Memory·Prompt의 본질적 차이, agentskills.io 표준 작성법, Bundles 워크플로, 조건 활성화, 오픈소스 생태계, Tap 배포, DSPy+GEPA 5단계 진화, 블로그 워크플로 실전과 FAQ를 다룹니다. 읽은 뒤에는 프로덕션급 SKILL.md를 독립적으로 작성하고, ~/.hermes/를 7×24 온라인 Mac에 둘 시점을 판단할 수 있어야 합니다.
01 Hermes Agent Skills를 별도로 공부할 이유: 고민과 개념 대조
매 대화마다 긴 Prompt를 붙여넣는 방식과 달리, Hermes Skills는 절차적 지식을 지속·필요 시·공유 가능하게 다루는 문제를 해결합니다. 심화 사용자가 자주 겪는 고민은 다음과 같습니다.
- Token 소진: 전체 운영 매뉴얼을 시스템 프롬프트에 넣어 실제 코딩용 컨텍스트를 잠식합니다.
- 세션 간 재사용 불가: 대화를 닫으면 배포 체크리스트·PR 절차가 자동으로 이어지지 않습니다.
- 팀 정렬 어려움: 각자 로컬 Prompt 변형을 쓰면 리뷰·버전 관리 비용이 커집니다.
- 도구 환경 불일치: 유료
web_search가 있는데도 무료 대체 Skill이 노출되어 Token을 낭비하거나 Agent를 오도합니다. - 스킬 품질 정체: SKILL.md를 작성만 하고 실패 궤적을 반영하지 않아 Agent가 같은 실수를 반복합니다.
핵심 암기 구문: Prompt = 포스트잇(당번 유효), Memory = 메모장(영구 메모, 항상 손에), Skill = SOP 매뉴얼(단계별 절차, 필요할 때 펼침).
| 차원 | 일반 Prompt | Memory(기억) | Skills(스킬) |
|---|---|---|---|
| 지속성 | 현재 대화 | 세션 간 영구 | 세션 간 영구 |
| 로딩 시점 | 매번 컨텍스트에 포함 | 매 세션 자동 주입 | 필요 시 로딩 |
| Token 비용 | 매번 소비 | 작고 안정적 | 활성화 전 제로 |
| 내용 유형 | 임의 의도 설명 | 사용자 선호·사실 | 절차적 단계 |
| 공유 가능성 | 불편함 | 비공개 | 커뮤니티 Tap으로 배포 가능 |
MCP와의 관계: Skills는 절차적 지식 문서(Agent에게 무엇을 어떻게 할지 가르침)이고, MCP는 도구 인터페이스(Agent에 추가 도구 호출 능력을 제공)입니다. 둘은 상호 보완합니다. MCP로 DB 접근을 제공하고, Skill로 마이그레이션을 올바르게 수행하도록 가르칠 수 있습니다.
02 SKILL.md 형식과 Progressive Disclosure 3단계 로딩
모든 Hermes Skills는 agentskills.io 오픈 표준을 따르며 Hermes, Claude Code, Cursor, OpenCode 간 이식이 가능합니다. 표준 디렉터리 구조는 다음과 같습니다.
├── SKILL.md 메인 파일, 500행 이하 권장
├── references/
│ ├── api-docs.md 필요 시 로딩
│ └── examples.md
├── templates/
│ └── config.yaml
└── scripts/
└── setup.sh Agent가 직접 실행 가능
Progressive Disclosure(점진적 공개)가 Token 제어의 핵심입니다. 3단계 로딩 메커니즘은 다음과 같습니다.
| 레벨 | 내용 | 트리거 시점 | Token 비용 |
|---|---|---|---|
| Level 0 | name + description |
매 세션 시작, 모든 스킬 | 약 3K(전체 스킬 합산) |
| Level 1 | 전체 SKILL.md 본문 | /skill-name 또는 LLM 판단 |
파일 길이에 따름 |
| Level 2 | references/, scripts/ |
실행 시 LLM 판단 | 필요 시, 파일 단위 |
작성 팁: description은 Level 0의 전부이며 LLM이 전체 스킬 로딩 여부를 판단하는 근거입니다. 「무엇인지」보다 「언제 쓰는지」를 명확히 쓰는 것이 중요하며, Use when...으로 시작하는 것을 권장합니다.
---
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]
requires_toolsets: [terminal]
fallback_for_toolsets: [web]
---
# My Skill Title
## Overview
1–2단락: 무엇을 하는지, 왜 존재하는지
## When to Use
Use for / Don't use for
## Procedure
1. 단계별 절차(정확한 명령 포함)
## Common Pitfalls
실패 패턴 + 근본 원인 + 수정
## Verification Checklist
- [ ] 검증 항목
스킬 크기 제어 권장: 500행 미만은 SKILL.md에 모두 배치, 500–1000행은 상세 자료를 references/로 이동, 1000행 초과는 분할을 강력 권장, 15KB 초과는 GEPA 진화 제한을 넘으므로 반드시 분할해야 합니다.
03 Skill Bundles와 조건 활성화: 원클릭 워크플로와 환경 인식
Skill Bundles는 Hermes 2026 신규 기능으로, 여러 관련 스킬을 하나의 슬래시 명령으로 묶는 경량 YAML입니다. /bundle-name 실행 시 나열된 스킬이 동시에 로딩됩니다. 파일 위치: ~/.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)는 현재 도구 가용성에 따라 스킬을 자동으로 표시하거나 숨깁니다. metadata.hermes 아래 네 가지 규칙을 설정합니다.
| 필드 | 동작 |
|---|---|
requires_toolsets |
나열한 도구셋이 없으면 이 스킬 숨김 |
requires_tools |
나열한 도구가 없으면 이 스킬 숨김 |
fallback_for_toolsets |
나열한 도구셋이 있으면 이 스킬 숨김(대체안) |
fallback_for_tools |
나열한 도구가 있으면 이 스킬 숨김 |
대표 시나리오: FIRECRAWL_KEY / BRAVE_SEARCH_KEY 설정 후 유료 web_search가 활성화되면 DuckDuckGo 스킬은 fallback_for_tools: [web_search]로 자동 숨겨져 Token을 절약합니다. API 불가 시 대체 스킬이 자동으로 나타납니다. 플랫폼 인식 스킬은 requires_toolsets: [messaging]와 platforms: [telegram, discord]로 메시징 플랫폼을 한정할 수 있습니다.
04 Skills Hub 생태계와 Skill Tap 배포: 팀 공유 스킬셋
공식 설치 채널(릴리스 후 공식 문서를 다시 확인하십시오):
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
| 저장소 | 특징 |
|---|---|
| ChuckSRQ/awesome-hermes-skills | 프로덕션급 큐레이션, Deep Research·MLOps·Apple 통합 포함 |
| amanning3390/hermeshub | 커뮤니티 레지스트리, 보안 스캔 인증, API·마켓 지원 |
| kevinnft/ai-agent-skills | 191개 스킬·28개 분류, Hermes/Claude Code/Cursor 공용 |
| NousResearch/hermes-agent | 공식 권위 소스, 내장 Skills와 작성 규격 포함 |
Skill Tap 배포: GitHub 저장소를 Tap으로 만들어 팀이 원클릭 구독합니다. Hub 분류 표시는 skills.sh.json으로 제어합니다.
{
"groupings": [
{
"title": "MLOps & Model Deployment",
"skills": ["vllm-deploy", "model-benchmark"]
}]
}
팀 배포:
hermes skills tap add github:your-org/your-skills-tap
hermes skills tap add github:your-org/private-skills --token $GH_TOKEN
cd ~/.hermes/skills && git init && git push -u origin main
git pull && hermes skills reset
동작과 명령은 Nous Research 공식 문서를 기준으로 하며, 릴리스 후 아래 링크를 다시 확인하십시오.
05 GEPA + DSPy 자기 진화: Skills를 쓸수록 좋게
GEPA(Genetic-Pareto Prompt Evolution)는 2026 ICLR Oral 성과로 hermes-agent-self-evolution에 통합되었습니다. 핵심은 모델 가중치 미세조정 없이 실행 궤적 분석, 변형 생성, 다목적 파레토 최적화로 SKILL.md 텍스트 자체를 개선하는 것입니다. 최적화 1회당 약 $2–10(순수 API 호출, GPU 불필요)입니다.
5단계 진화 흐름:
- 실행 궤적 수집: SQLite에서 전체 추론 궤적(도구 호출, 분기, 오류)을 읽습니다.
- 반성적 실패 분석: LLM이 「실패했다」가 아니라 「왜 실패했는지」를 실행 가능한 정보로 생성합니다.
- 표적 변이: 실패 원인에 맞춰 SKILL.md 변형 10–20개를 생성합니다.
- 다목적 파레토 평가: 성공률 × Token 효율 × 속도를 동시에 최적화합니다.
- 수동 PR 검토: 최적 변형으로 PR을 만들고 승인 후 배포합니다.
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
python -m evolution.skills.evolve_skill \
--skill github-code-review \
--iterations 10 \
--eval-source mixed \
--trace-dirs ~/.claude/traces,~/.hermes/sessions
4대 안전 가드레일(변형이 모두 통과해야 PR 생성):
- 전체 테스트 스위트:
pytest tests/ -q100% 통과 필수. - 크기 제한: Skills ≤ 15KB, 도구 설명 ≤ 500자.
- Prompt 캐시 호환: 세션 중간에 캐시 무효화를 유발하는 수정 금지.
- 의미 보존 검사: 스킬 원래 핵심 목적에서 벗어나면 안 됨.
공식 5단계 진화 로드맵: Phase 1 Skill 파일(DSPy+GEPA)은 구현 완료, Phase 2 도구 설명·Phase 3 시스템 프롬프트·Phase 4 도구 구현 코드·Phase 5 완전 자동 지속 개선 루프는 계획 중입니다.
06 Plugin 스킬, 심화 작성 팁, 블로그 워크플로 실전
Plugin 스킬은 plugin:skill 네임스페이스로 로딩되며 기본 skills_list에 나타나지 않고 사용자가 명시 호출할 때만 활성화됩니다. 플러그인 내 스킬은 서로 참조할 수 있습니다. plugin.yaml에 선언합니다.
name: my-hermes-plugin
skills:
- name: writing-plans
path: skills/writing-plans/SKILL.md
- name: editing
path: skills/editing/SKILL.md
심화 작성 요점:
- description이 활성화 정확도를 좌우: 「Helps with code」 같은 모호한 문구는 피하고 트리거 조건과 제외 시나리오를 명시합니다.
- Pitfalls가 품질 분기점: 구체적 실패 패턴, 근본 원인, 실행 가능한 수정을 쓰며 추상적 경고는 피합니다.
- 스크립트화: Procedure에 Agent가 실행할
scripts/명령을 적고, 실패 시references/수동 폴백을 로딩합니다. - skill_manage 자기 유지: Agent가
skill_manage(action='patch'| 'create')로 스킬을 동적 유지할 수 있으며,config.yaml에agent_writes_require_approval: true로 수동 승인 게이트를 켤 수 있습니다.
블로그 워크플로 실전 — 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.
07 Hermes Agent Skills FAQ와 참고 자료
Q: Skill을 수정했는데 Agent가 구버전을 씁니다.
현재 세션에는 반영되지 않습니다. /reset으로 새 세션을 열거나, 설치 시 --now로 강제 새로고침(Prompt Cache 무효화로 Token 추가 소비)을 사용합니다.
Q: GEPA로 진화한 스킬은 안전합니까?
4대 가드레일 + 수동 PR 검토 + 의미 드리프트 탐지가 있습니다. 그래도 각 diff는 수동 review를 권장합니다.
Q: Claude Code에서 Hermes Skills를 재사용하려면?
SKILL.md를 ~/.claude/skills/에 복사하거나 kevinnft/ai-agent-skills로 다중 플랫폼 일괄 설치합니다.
Q: Skill 한국어 내용이 Token 효율에 영향을 줍니까?
한글 1자당 약 1–1.5 token으로 영어와 비슷합니다. 다만 description은 영어 또는 영한 병기를 권장하며, 하위 LLM은 영어 description 매칭이 더 정확합니다.
참고 자료(릴리스 후 링크 확인):
08 6단계 롤아웃 체크리스트, 인용 사양, CALMVPS 마무리
- Hermes 기준선 검증:
hermes doctor통과,~/.hermes/skills/쓰기 가능 및 백업 정책 포함을 확인합니다. - 공식 Skill Tap 설치:
hermes skills tap add로 팀·커뮤니티 저장소 구독,hermes skills tap update로 동기화합니다. - 첫 SKILL.md 작성: agentskills.io 표준으로 frontmatter + Procedure + Pitfalls + Verification을 작성하고
description은 Use when으로 시작합니다. - Bundle 워크플로 생성:
~/.hermes/skill-bundles/에 YAML을 작성하고/bundle-name으로 다중 스킬 동시 로딩을 검증합니다. - 조건 활성화 구성: 무료/유료 도구 쌍에
fallback_for_tools를 작성해 Token 노이즈를 줄입니다. - 선택 GEPA 진화: self-evolution 저장소를 클론하고 synthetic 또는 sessiondb로
evolve_skill을 실행한 뒤 PR을 검토·병합합니다.
- Progressive Disclosure Level 0 합계: 전체 스킬 name+description 약 3K Token(Nous 문서 기준).
- GEPA 1회 최적화 비용: 약 $2–10 API 호출, GPU 불필요(hermes-agent-self-evolution README).
- Skill 크기 상한(GEPA 가드레일): ≤15KB, 도구 설명 ≤500자.
- agentskills.io: Hermes / Claude Code / Cursor / OpenCode 공용,
skills-ref validate로 형식 검증 가능.
MacBook에서 Skills를 시험하는 것은 가능하지만 Gateway, 예약 작업, GEPA 궤적 축적에는 덮개를 닫아도 끊기지 않고 OS 업데이트를 통제할 수 있는 호스트가 필요합니다. Raspberry Pi는 IO·브라우저 자동화 타임아웃이 잦고, x86 Linux VPS는 macOS 전용 도구체인이 부족하며, 로컬 덮개 수면은 세션 간 Skill 복리를 끊습니다.
7×24 Hermes Agent 상주, Skill 궤적 안정 축적, iOS CI/CD·AI Agent 자동화가 필요한 프로덕션 환경에서는 CALMVPS Mac Mini 베어메탈 대여가 일반적으로 더 나은 선택입니다. Apple Silicon 단독 점유, launchd 상주, ~/.hermes/ SSH 백업 동기화, 월 단위 유연 주문, 약 120초 배포. 자세한 내용은 가격 페이지와 클라우드 주문 페이지를 참고하십시오.