에이전트 스킬은 작업이 반복될수록 누락·중복·노후화가 쌓이기 때문에, 작성만큼 유지보수의 설계가 중요해진다.
Skill Evolution은 이 문제를 관찰 → 제안 → 평가 → 사람 승인 → 적용으로 분리한다.[4]
공개 저장소는 Hermes와 Claude Code 어댑터를 제공하며, 세션 기록과 설치된 스킬을 비교해 구조화된 Markdown proposal을 만들도록 설계됐다.[1][2][4]
무엇을 해주는 도구인가
fetch_sessions.py는 아직 처리하지 않은 세션을 가져오고, skill_index.py는 설치된 스킬 목록을 만든다.[3][4]
호스트 에이전트는 이 입력을 바탕으로 개선안을 작성하며, 결과는 YAML frontmatter를 포함한 Markdown proposal로 proposals/에 남는다.[3][4]
제안은 기존 스킬 수정(improve_existing), 새 스킬 생성(create_new), 중복 스킬 통합(merge_skills), 노후 스킬 정리(deprecate_skill)의 네 유형을 지원한다.[4][7]
과거 세션 + 설치된 스킬 인덱스
→ LLM 분석
→ 개선 제안 Markdown
→ 사람 검토·승인
→ 평가 게이트
→ 호스트별 적용 단계
왜 유용한가
- 분석 단계는 proposal만 만들고, 스킬 변경 도구를 직접 호출하지 않도록 설계됐다.[3][4]
- Hermes에서는 통과한 proposal이 별도 에이전트가 실행할
skill_manageinstruction을 반환한다.[4][8] - Claude Code 어댑터는 검증된 변경을 직접 파일에 쓸 수 있다.[4][8]
- 기본 평가 조합은 deterministic 검사, LLM judge, regression 검사이며 provider 오류나 evaluator 실패는 통과로 간주하지 않는다.[4][6]
- 평가 이력은 JSONL로 누적하고, 크기·증감·누적 drift 제한도 함께 적용한다.[4][6]
이런 분리는 “스킬을 자동으로 고친다”보다 스킬 변경을 검토 가능한 change-management 작업으로 만든다는 점에서 더 가치가 있다.
설치와 첫 사용법
공식 README와 SKILL.md는 Hermes에서 다음 설치·로딩 경로를 제시한다.[3][4]
hermes skills install https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/SKILL.md
hermes -s skill-evolution
그 다음 세션에서 최근 기록 분석을 요청하면 proposal을 만드는 흐름이다.[3][4]
이 저장소는 완성된 cron prompt나 자동 적용 job을 함께 배포하지 않으므로, 스케줄·전달 채널·apply 담당자는 운영자가 정해야 한다.[3][4]
Claude Code에서는 저장소를 clone해 스킬 디렉터리로 불러오고 SKILL_EVOLUTION_HOST=claude_code를 설정한다.[3][4]
이 값을 생략하면 기본값인 Hermes 어댑터가 선택되므로, 다른 호스트에서 잘못된 세션 DB와 스킬 트리를 바라볼 수 있다.[4][8]
평가 게이트는 무엇을 막는가
apply_proposal()은 proposal 상태와 confidence를 확인하고, 쓰기 가능한 호스트인지 검사한 뒤 평가를 실행한다.[6][7]
평가가 실패하거나 provider 설정이 잘못되면 변경을 허용하지 않는 fail-closed 방식이다.[4][6][7]
| 보호 장치 | 의미 |
|---|---|
| 크기·증감 제한 | 새 스킬의 절대 크기와 기존 스킬의 한 번당 증가·감소 폭을 제한한다. |
| 누적 drift 검사 | 여러 번의 작은 변경이 합쳐져 원본에서 크게 벗어나는 문제를 막는다. |
| LLM judge | 정확성·절차 준수·간결성을 기준으로 평가한다. |
| regression 검사 | 이전에 통과한 결과보다 품질 점수가 떨어지지 않도록 확인한다. |
| 사람 검토 | 기본 흐름은 proposal을 사람이 읽고 승인하는 review-only 방식이다. |
LLM judge를 기본 구성으로 사용하려면 provider credential이 필요하다.[3][4]
자격 증명이 없으면 게이트가 실패한 채 proposal이 계속 남을 수 있다.[3][4][6]
주의할 점
저장소는 provider 호출 전 secret redaction과 PII masking을 수행한다고 설명한다.[4][6]
하지만 실제 세션·도구 결과·프로젝트 경로에 무엇이 남는지는 사용 환경에 따라 다르므로, 외부 LLM provider를 쓰기 전에는 샘플 proposal과 전송 경계를 직접 점검하는 편이 안전하다.[4][6]
GitHub API 기준 저장소 생성일은 2026년 7월 29일이고, 조사 시점에는 GitHub Release와 tag가 없다.[2]
MIT 라이선스와 Python 3.10+ 요구사항은 명확하지만, 대규모 스킬 트리와 장기 운영에서의 품질·비용·오탐률은 사용자가 검증해야 한다.[2][5]
AUTO_APPLY를 켠 뒤에도 사람 또는 별도 단계가 apply_proposal()을 호출하는 구조이며, Hermes의 최종 skill_manage 실행은 별개의 agent step이다.[4][7][8]
내 판단
Skill Evolution은 “자율 에이전트가 자기 자신을 고친다”는 과장보다, 스킬 유지보수에 필요한 통제면을 구체적으로 구현한 초기 도구다.
여러 스킬을 운영하면서 반복 작업과 오래된 지시를 정리하고 싶다면, 먼저 review-only로 작은 스킬 집합의 proposal 품질을 확인한 뒤 적용 범위를 넓히는 접근을 추천한다.
Sources
[1] https://github.com/Carlo1911/skill-evolution — Carlo1911/skill-evolution [2] https://api.github.com/repos/Carlo1911/skill-evolution — GitHub repository API metadata [3] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/README.md — skill-evolution README [4] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/SKILL.md — skill-evolution SKILL.md [5] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/pyproject.toml — skill-evolution pyproject.toml [6] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/scripts/evaluate.py — skill-evolution evaluation gate [7] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/scripts/proposal.py — skill-evolution proposal application logic [8] https://raw.githubusercontent.com/Carlo1911/skill-evolution/main/scripts/host.py — skill-evolution host adapters