darwin-skill 소개
에이전트 스킬(SKILL.md) 생태계가 빠르게 커지면서 새로운 유지보수 문제가 생겼습니다. Claude Code, Codex, OpenClaw, Trae, CodeBuddy 등 여러 도구가 같은 SKILL.md 형식을 지원하고, 스킬이 10개일 때는 손으로 관리할 수 있지만 60개를 넘어가면 체계가 필요합니다. 게다가 기존의 스킬 검토는 형식이 맞는지, 단계에 번호가 붙었는지, 경로가 유효한지 같은 구조 점검에 머물러서, 형식은 완벽한데 실제 출력은 형편없는 스킬을 걸러내지 못합니다.
darwin-skill 은 이 문제를 모델 학습의 방법론으로 푸는 스킬 최적화 시스템으로, Andrej Karpathy의 autoresearch에서 직접 영감을 받아 alchaincyf가 공개했습니다. 자율 실험 루프를 모델 학습에서 스킬 최적화 영역으로 옮긴 것으로, 스킬을 평가하고, 한 가지를 고치고, 테스트로 검증한 뒤, 점수가 오른 변경만 남기고 나머지는 되돌립니다. 저자는 이를 "앞으로만 도는 래칫(a ratchet that only turns forward)" 이라고 부릅니다.
2.0 버전은 Microsoft Research의 두 논문 SkillLens와 SkillOpt를 흡수한 구조적 업그레이드입니다. 평가 루브릭이 9개 차원으로 늘었고, 검증 게이트 설계가 SkillOpt의 validation-gated 프레임워크에 맞춰졌습니다. 본 게시물에서는 darwin-skill의 핵심 루프와 평가 루브릭, 래칫 메커니즘을 정리합니다.
autoresearch에서 스킬 최적화로
darwin-skill은 autoresearch의 구성 요소를 스킬 최적화에 그대로 대응시킵니다.
| autoresearch | darwin-skill | 이유 |
|---|---|---|
program.md |
darwin-skill의 SKILL.md | 평가 기준과 제약 정의 |
train.py |
최적화 대상 SKILL.md | 실험당 편집 가능한 단일 자산 |
val_bpb |
9차원 가중 점수 (100점 만점) | 정량화 가능한 최적화 목표 |
| git ratchet | keep / revert 메커니즘 | 개선된 커밋만 살아남음 |
| test set | test-prompts.json |
개선이 진짜인지 검증 |
| 완전 자율 | 사람 개입(Human in the loop) | 스킬 품질은 손실값보다 주관적 |
마지막 행이 핵심 차이입니다. autoresearch는 손실값이라는 숫자만 보면 되므로 완전 자율로 돌지만, 스킬 품질에는 사람의 판단이 필요한 지점이 있다는 것이 darwin-skill의 입장입니다. 그래서 스킬 하나의 최적화 사이클이 끝날 때마다 시스템이 멈춰 diff와 점수 변화를 보여주고 사용자 확인을 기다립니다.
누구에게 유용한가
여러 코딩 에이전트에 걸쳐 수십 개의 스킬을 운영하면서 어떤 스킬이 실제로 효과가 있는지 감으로만 판단해 온 사용자에게 잘 맞습니다. git 저장소 안에서 실험을 커밋 단위로 관리하므로, 스킬을 이미 저장소로 버전 관리하고 있다면 도입 마찰도 작습니다. 반면 스킬이 한두 개뿐이라면 루프를 돌리는 비용이 얻는 것보다 크고, 사람 확인 없이 완전 무인으로 돌리는 최적화를 원한다면 darwin-skill이 의도적으로 거부한 설계이므로 SkillOpt 같은 전자동 프레임워크가 더 맞습니다.
darwin-skill의 핵심 루프
루프는 평가 → 개선 생성 → 테스트 검증 → 사람 확인 → 유지/되돌리기의 순환입니다. 실험당 편집 자산은 SKILL.md 하나이고, 한 라운드에는 한 차원만 고칩니다(한 번에 하나를 바꿔야 무엇이 효과였는지 알 수 있습니다). 편집 후에는 독립 서브에이전트 2개 가 다시 채점하고, 다음 라운드에는 앵커링을 피하기 위해 새 심사자를 띄웁니다. 고친 에이전트가 채점까지 하는 것은 금지인데, README가 인용하는 SkillLens 실증에 따르면 LLM 자기 평가의 정확도는 46.4%에 그치기 때문입니다.
점수가 오르면 git commit으로 유지하고, 내려가면 git revert 로 되돌립니다(git reset --hard 는 안티패턴 블랙리스트 2번으로 금지). 한 라운드의 상승 폭이 1점 미만이면 점수를 채우려는 군더더기 편집을 막기 위해 자동으로 조기 종료합니다.
darwin-skill 2.0의 9차원 루브릭과 안티패턴 블랙리스트
평가는 구조 점수(정적 분석)와 실효성 점수(테스트 프롬프트 실행)를 합쳐 100점 만점으로 계산하며, 실행 성능의 가중치가 가장 높습니다. 2.0에서 추가된 세 차원은 SkillLens의 루브릭 설계에서 그대로 가져왔습니다. 알려진 실패 경로를 스킬에 명시적으로 기록하는 실패 메커니즘 인코딩, "~을 고려할 수 있다 / 상황에 따라" 같은 모호한 표현을 금지하는 실행 가능한 구체성, 그리고 rm 이나 git reset --hard, force push 같은 파괴적 조작을 스킬 안에 명시적으로 금지 목록으로 적게 하는 고위험 행동 블랙리스트 입니다.
시스템 자체의 안티패턴 블랙리스트도 8가지가 명문화되어 있습니다. 같은 AI가 고치고 채점하기, 점수를 채우기 위한 군더더기 추가, 테스트 프롬프트를 건너뛴 채점, 한 라운드에 여러 차원 수정, 드라이런 비율 30% 초과, 예외를 조용히 삼키기 등이 여기에 들어갑니다. 저자가 공개한 실측치로는 huashu-gpt-image 스킬이 80.8점에서 91.65점까지 올랐고(독립 심사자 6명 합의 기준 +10.85), darwin-skill 자체도 86.05점에서 92.7점으로 올랐다고 README에 적혀 있습니다.
darwin-skill의 래칫 메커니즘
점수는 위로만 움직입니다. 위 그림처럼 라운드 2가 75점으로 현재 최고점 78점보다 낮으면 자동으로 되돌려지고, 실효 기준선은 78점에 머뭅니다. 이후의 개선은 75가 아니라 78 위에 쌓이므로, 시간이 지나도 퇴행이 누적되지 않습니다. 한편 저자는 2026년 6월 Microsoft의 SkillOpt 저장소가 "gbrain, gbrain-evals, and darwin-skill have all integrated SkillOpt" 라며 darwin-skill을 공식 통합 목록에 올렸다고 소개합니다.
darwin-skill 설치 및 사용법
SKILL.md 형식을 지원하는 도구라면 어디서든 동작합니다.
npx skills add alchaincyf/darwin-skill
설치 후 에이전트에게 "optimize all skills" 또는 "optimize [skill-name]" 이라고 요청하면 됩니다. 저자가 안내하는 안전 수칙 두 가지는 지킬 만합니다. 최적화는 git 저장소 안에서 실행하고 로컬 스킬 수정분을 먼저 커밋(또는 stash)해 두어야 실험 변경을 깔끔하게 유지·되돌릴 수 있으며, 셸 명령·git 조작·자격증명·파일 게시를 건드리는 스킬이라면 다음 라운드로 넘어가기 전에 체크포인트 diff를 반드시 검토하라는 것입니다.
darwin-skill의 라이선스
darwin-skill은 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
darwin-skill GitHub 저장소
이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. ![]()
이 도구를 직접 설치해 사용해보셨다면, 파이토치 한국 사용자 모임
회원들을 위해 경험이나 팁을 댓글로 남겨주세요! ![]()


