Skip to content
Back to Blog
[TUTORIAL]

Microsoft SkillOpt: 에이전트 스킬을 신경망처럼 훈련하는 오픈소스 (Claude Code +19점)

6 min read1 views

Microsoft SkillOpt: 에이전트 스킬을 신경망처럼 훈련하는 오픈소스

핵심 요약: SkillOpt는 Microsoft가 공개한 텍스트 공간 옵티마이저예요. 모델 가중치는 그대로 둔 채(frozen) 스킬 문서(best_skill.md)만 신경망 학습처럼 epoch·learning-rate·validation gate로 훈련합니다. 6개 벤치마크·7개 모델·3개 실행 환경의 52개 조합 전부에서 1등 또는 공동 1등을 기록했고, GPT-5.5 기준 Claude Code는 +19.1점, Codex는 +24.8점 올랐어요. MIT 오픈소스이고 pip install skillopt로 바로 시작할 수 있습니다.

목차 (Table of Contents)

  • 스킬을 '만드는' 시대에서 '훈련하는' 시대로
  • SkillOpt이 정확히 뭔가요
  • 어떻게 신경망처럼 훈련하나요
  • 벤치마크 결과: 52개 조합 전부 1등
  • 직접 써보기: 설치와 백엔드
  • QJC 관점: Claude Code 스킬을 만드는 사람에게
  • 자주 묻는 질문(FAQ)

AI 에이전트를 다뤄본 분이라면 한 번쯤 이런 경험이 있을 거예요. Claude Code 스킬 파일을 열어놓고 문장을 이리저리 바꿔가며 "이렇게 하면 더 잘 되나?" 하고 손으로 튜닝하는 작업이요. 2026년 6월, Microsoft가 이 작업 자체를 자동화하는 도구 SkillOpt를 오픈소스로 공개했습니다. GitHub 스타는 공개 한 달도 안 돼 5,000개를 넘겼어요(2026-06-06 기준 약 5,084개). 무엇이 그렇게 특별한지 정리했습니다.

스킬을 '만드는' 시대에서 '훈련하는' 시대로

비유하자면 이래요. 지금까지 에이전트 스킬을 만드는 방식은 요리 레시피를 손으로 고쳐 쓰는 것과 비슷했어요. 한 번 만들고, 맛이 이상하면 감으로 소금을 더 넣고, 그래도 이상하면 또 고치고. 문제는 이 과정에 "정말 더 좋아졌다"는 보장이 없다는 점이죠.

SkillOpt 논문은 기존 방식을 세 가지로 정리해요. 손으로 직접 작성하거나, 강한 LLM에게 한 번에 생성시키거나, 느슨하게 통제된 자가 수정(self-revision)으로 진화시키거나. 셋 다 "딥러닝 옵티마이저처럼" 동작하지 않고, 피드백을 받아도 출발점보다 안정적으로 좋아진다는 보장이 없습니다.

SkillOpt의 발상은 정반대예요. 스킬 문서를 frozen 에이전트의 '외부 상태(external state)'로 보고, 신경망 가중치를 학습하듯 훈련합니다. 가중치 최적화를 재현 가능하게 만드는 바로 그 규율(검증 게이트, learning rate, early stopping)을 텍스트 문서에 그대로 적용하는 거죠.

SkillOpt이 정확히 뭔가요

SkillOpt는 Microsoft 연구진(Yifan Yang 외 15명)이 만든 체계적이고 통제 가능한 텍스트 공간 옵티마이저예요. 작동 방식을 한 문장으로 요약하면 이렇습니다.

별도의 옵티마이저 모델이 채점된 rollout을 제한된 add/delete/replace 편집으로 변환하고, 그 편집은 held-out 검증 점수를 엄격히 개선할 때만 단일 스킬 문서에 수락됩니다.

여기서 중요한 두 가지가 있어요.

첫째, 모델 가중치는 전혀 건드리지 않습니다(frozen). 훈련 대상은 오직 best_skill.md라는 마크다운 문서 하나예요. 보통 300~2,000 토큰 정도의 작은 문서죠.

둘째, 배포 시점에 추가 모델 호출이 0회입니다. 훈련은 옵티마이저가 따로 하지만, 완성된 스킬은 바뀌지 않은 타깃 모델에 그냥 얹혀서 동작해요. 추론 비용이 늘지 않는다는 뜻입니다.

어떻게 신경망처럼 훈련하나요

훈련 루프는 여섯 단계로 돌아갑니다.

rollout → reflect → aggregate → select → update → evaluate

(수행 → 반성 → 편집 취합 → 선택 → 적용 → 평가)

이 루프가 왜 "신경망 훈련"인지는 공식 문서의 매핑 표를 보면 직관적으로 이해돼요.

딥러닝 개념SkillOpt 대응설명
모델 가중치스킬 문서(.md)최적화 대상
Forward passRollout타깃 모델이 현재 스킬로 태스크 수행
Loss functionTask evaluator수행 품질 채점
BackpropagationReflect옵티마이저가 실패를 분석해 편집 패치 생성
GradientsEdit patches스킬 변경 제안
Learning rate스텝당 적용하는 편집 수너무 많으면 노이즈, 너무 적으면 느림
MomentumSlow updateepoch 경계에서 종단 비교
Validation setSelection split수락 전 개선 여부 게이트
Early stoppingGate patience개선 없는 업데이트 거부

핵심은 "함부로 바꾸지 않는다"는 규율이에요. 옵티마이저가 아무리 좋아 보이는 편집을 제안해도, held-out 검증 점수를 확실히 올리지 못하면 그 편집은 버려집니다. 딥러닝의 validation 기반 선택, early stopping과 똑같은 원리죠. 여기에 텍스트 learning-rate 예산, 거부된 편집을 모아두는 버퍼, epoch별 slow/meta 업데이트가 더해져 훈련이 안정적으로 수렴합니다.

흥미로운 건 딥러닝 직관이 그대로 전이된다는 점이에요. 공식 문서에 따르면 코사인 스케줄이 상수보다 낫고, 적당한 learning rate(416)가 극단값보다 좋으며, slow update가 epoch 간 망각을 막아줍니다. 반대로 배치 크기를 키운다고 무조건 좋아지지 않고(API 비용만 늘어요), epoch도 24회면 충분히 수렴합니다. 신경망보다 오히려 빨리 수렴하는 셈이죠.

벤치마크 결과: 52개 조합 전부 1등

숫자가 분명합니다. SkillOpt는 **6개 벤치마크, 7개 타깃 모델, 3개 실행 하네스(direct chat, Codex, Claude Code)**에 걸쳐 평가됐어요. 가능한 모든 조합을 다 돌린 건 아니고, 실제로 평가된 52개의 (모델, 벤치마크, 하네스) 셀 전부에서 best 또는 공동 best를 기록했습니다.

비교 대상도 만만치 않았어요. 사람이 직접 만든 스킬, one-shot LLM 생성, 그리고 Trace2Skill·TextGrad·GEPA·EvoSkill 같은 기존 최적화 기법들. SkillOpt는 셀 단위로 이들을 전부 능가했습니다.

향상 폭이 특히 인상적입니다. GPT-5.5 기준, 스킬 없이 돌렸을 때 대비 평균 정확도가 이렇게 올랐어요.

  • Direct chat: +23.5점
  • Codex 에이전트 루프: +24.8점
  • Claude Code: +19.1점

Claude Code를 매일 쓰는 분이라면 이 마지막 숫자가 와닿을 거예요. 스킬 문서 하나를 훈련하는 것만으로 같은 모델의 정확도를 19점 끌어올린다는 거니까요.

전이(transfer) 실험도 강점이에요. 한 번 최적화한 스킬 산출물이 ① 모델 규모가 달라져도, ② Codex와 Claude Code 실행 환경 사이를 오가도, ③ 인접한 수학 벤치마크로 옮겨도, 추가 최적화 없이 가치를 유지했습니다. 한 번 훈련하면 여기저기 재사용할 수 있다는 뜻이죠.

참고로 이 수치들은 공식 GitHub README와 arXiv 논문(2605.23904) 양쪽에서 동일하게 확인됩니다. 두 Tier 0 소스가 일치하는 검증된 데이터예요.

직접 써보기: 설치와 백엔드

설치는 한 줄이면 됩니다.

pip install skillopt

옵션 익스트라도 있어요. skillopt[webui]는 Gradio 모니터링 대시보드, skillopt[claude]는 Claude 백엔드, skillopt[alfworld]는 ALFWorld 벤치마크를 추가합니다.

멀티 백엔드를 지원해요. OpenAI, Azure OpenAI(권장), Anthropic Claude, Qwen(로컬 vLLM), MiniMax까지. 실행 백엔드로 codex_exec, claude_code_exec도 들어 있습니다.

내장 벤치마크는 6종이에요. SearchQA(QA), ALFWorld(임바디드 에이전트), DocVQA(문서 QA), LiveMathematicianBench(수학), SpreadsheetBench(코드 생성), OfficeQA(툴 증강 QA). 다만 대부분의 벤치마크 데이터셋은 repo에 포함돼 있지 않아서 직접 준비해야 합니다(SearchQA split만 제공돼요). 그리고 도구 자체는 MIT 오픈소스로 무료지만, 옵티마이저와 타깃 모델을 돌리는 API 호출 비용은 별도라는 점은 꼭 염두에 두세요.

훈련을 시작하면 각 run이 best_skill.md, step별 스냅샷, resume 체크포인트를 남겨요. 같은 명령을 다시 실행하면 마지막 스텝부터 자동으로 이어집니다.

QJC 관점: Claude Code 스킬을 만드는 사람에게

QJC가 매일 다루는 게 Claude Code 스킬과 에이전트예요. 그래서 SkillOpt는 단순한 연구가 아니라 실무에 바로 닿는 도구입니다.

생각해보면 우리는 그동안 스킬 파일을 "감"으로 튜닝해왔어요. 어떤 문장을 넣고 빼면 더 잘 되는지, 직접 돌려보고 눈으로 판단하면서요. SkillOpt는 이 과정을 검증 점수 기반의 자동 루프로 바꿉니다. 사람이 "이게 더 나은 것 같다"고 추측하는 대신, held-out 데이터에서 실제로 점수가 오를 때만 편집을 채택하는 거죠.

물론 만능은 아니에요. 벤치마크 데이터를 직접 준비해야 하고, API 비용이 들고, 논문 수치는 default 설정 기준입니다. 하지만 "프롬프트를 손으로 다듬는다"에서 "스킬을 훈련한다"로 넘어가는 패러다임 전환의 첫 실용 도구라는 점은 분명해요. 2026년 6월 3일 시점에 이미 gbrain, darwin-skill 같은 프로젝트들이 SkillOpt를 통합했다는 소식도 나왔습니다.

스킬을 쓰는 시대에서, 스킬을 훈련하는 시대로. 여러분이 만든 Claude Code 스킬을 한번 훈련시켜 볼 차례예요.

자주 묻는 질문(FAQ)

Q. SkillOpt는 모델을 파인튜닝하나요? 아니요. 모델 가중치는 전혀 건드리지 않습니다(frozen). 훈련 대상은 스킬 문서(best_skill.md) 하나뿐이고, 배포 시 추가 모델 호출도 없어요.

Q. 무료인가요? 도구 자체는 MIT 오픈소스로 무료예요. 다만 옵티마이저와 타깃 모델을 돌리는 LLM API 비용은 별도로 발생합니다.

Q. Claude Code에서도 쓸 수 있나요? 네. 논문이 Claude Code CLI를 실행 하네스 중 하나로 명시 측정했고, GPT-5.5 기준 +19.1점 향상을 보고했어요. 백엔드로 claude_code_exec가 들어 있습니다.

Q. 어디서 더 자세히 볼 수 있나요? 아래 출처의 GitHub repo와 arXiv 논문에서 전체 방법론, ablation, 셀별 결과를 확인할 수 있어요.


출처

접속: 2026-06-06 KST

© 퀀텀점프클럽 정상록