Yifan Yang 외, “SkillOpt: Executive Strategy for Self-Evolving Agent Skills”, arXiv:2605.23904v2, 2026-05-25. Microsoft·Shanghai Jiao Tong University·Tongji University·Fudan University 공동 연구. 27페이지, 4개 figure, 6개 table.

아래 수치와 결론은 논문이 보고한 결과를 정리한 것이다. 독립적인 재현 실험 결과가 아니다.

한 줄 결론

SkillOpt는 모델 가중치를 바꾸지 않고, 고정된 에이전트가 사용하는 하나의 자연어 skill 문서를 학습 대상으로 삼는다. 실행 trajectory에서 성공·실패 패턴을 뽑아 add/delete/replace 편집을 제안하고, 편집 수를 제한한 뒤 held-out validation 점수가 실제로 좋아질 때만 skill을 채택한다. 논문은 이 방식이 직접 대화·Codex·Claude Code 환경에서 기존 skill 생성·진화 방법보다 일관되게 강하고, 학습된 skill이 다른 모델·하네스·인접 벤치마크로도 전이된다고 보고한다.

문제의식

기존 agent skill은 사람이 직접 작성하거나, LLM이 한 번 생성하거나, 실행 실패를 바탕으로 느슨하게 자기 수정하는 방식이 많다. 이런 방법은 다음 문제가 있다.

  • 어떤 수정이 실제 성능을 높였는지 검증되지 않은 채 skill이 누적된다.
  • 한 trajectory의 특수한 실패에 과적합하기 쉽다.
  • 큰 폭의 rewrite가 이미 유효한 규칙을 지우거나 서로 충돌하는 지침을 만든다.
  • 모델 가중치를 바꿀 수 없는 폐쇄형 frontier model에서도 절차적 능력을 지속적으로 개선하기 어렵다.

SkillOpt의 관점은 skill을 단순한 prompt 부록이 아니라 고정된 agent의 외부 상태이자 학습 가능한 절차 정책으로 보는 것이다. 대상 모델과 실행 하네스는 고정하고, 모델이 도구를 호출하고 정보를 수집하고 결과를 포맷하는 방법을 담은 텍스트 문서만 최적화한다.

SkillOpt의 구조

SkillOpt에는 두 모델이 분리되어 있다.

구성 요소역할
고정된 target model현재 skill을 읽고 실제 과제를 수행한다. 가중치와 추론 시 동작은 바뀌지 않는다.
optimizer model성공·실패 trajectory를 분석하고 skill의 제한된 편집 후보를 만든다. 학습 단계에서만 호출된다.
harness adapterdirect chat, Codex, Claude Code 등 환경에 skill을 주입하고 trajectory·점수를 반환한다.
train/selection/test splittrain은 경험 수집, selection은 편집 채택, test는 최종 보고에만 사용한다.

배포 시에는 optimizer model이 필요 없다. 최종 결과는 대략 300~2,000 token 규모의 best_skill.md이며, target model은 이 파일을 일반적인 system/developer context 또는 persistent procedural memory로 사용한다.

최적화 루프

  1. Rollout 수집 — 현재 skill로 train split의 작업을 실행하고 메시지, tool call, 관찰값, 명령 출력, 최종 답변, verifier feedback을 기록한다.
  2. 성공·실패 분리 — trajectory를 성공과 실패로 나누고 reflection minibatch로 묶는다. 여러 trajectory에서 반복되는 패턴을 찾기 위한 단계다.
  3. 편집 제안 — optimizer가 실패 minibatch에서는 누락·교정 규칙을, 성공 minibatch에서는 보존할 유효 행동을 제안한다.
  4. 계층적 merge — failure 제안과 success 제안을 각각 합친 뒤 중복·충돌·task-specific 제안을 정리한다. 최종 merge에서는 failure correction을 우선한다.
  5. bounded update — 후보 편집을 효용 순으로 정렬하고 현재 텍스트 학습률 L_t 이하만 적용한다. patch mode의 원자 연산은 append, insert_after, replace, delete다.
  6. 검증 게이트 — selection split에서 candidate skill을 실행한다. 현재 selection 점수보다 엄격하게 높을 때만 채택하며, 동점도 거부한다. 최고 점수 skill은 별도로 best_skill.md로 보존한다.
  7. 실패 편집 버퍼 — 거부된 편집과 실패 패턴을 epoch 내부 buffer에 저장해 이후 optimizer가 같은 해로운 수정안을 반복하지 않게 한다.
  8. slow/meta update — epoch 끝에 같은 작업을 이전 skill과 현재 skill로 다시 비교해 개선·회귀·지속 실패·안정적 성공을 분류한다. 장기 지침은 보호된 slow-update 영역에 기록하고, optimizer 전용 meta-skill에는 어떤 편집이 도움이 됐는지 저장한다.

이 구조는 딥러닝의 용어를 그대로 흉내 내는 것이 아니라 운영상의 대응 관계를 만든다.

딥러닝 최적화SkillOpt의 대응
parameterskill document
gradient directiontrajectory에서 얻은 편집 방향
learning rate한 번에 허용하는 edit budget
validationheld-out selection gate
momentum/long-horizon stateepoch-wise slow/meta update
negative signalrejected-edit buffer

실험 설정

논문은 다음 여섯 벤치마크를 사용했다.

  • SearchQA — 검색 맥락 기반 extractive QA
  • SpreadsheetBenchopenpyxl·pandas runtime을 사용하는 실제 spreadsheet 조작
  • OfficeQA — 문서·표·수치에 대한 multi-turn grounded reasoning
  • DocVQA — 문서 이미지 기반 시각 질의응답
  • LiveMathematicianBench — 수학적 주장·정리 강도를 판단하는 객관식 추론
  • ALFWorld — 최대 50 step의 embodied sequential decision making

대상 모델은 GPT-5.5, GPT-5.4, GPT-5.4-mini, GPT-5.4-nano, GPT-5.2, Qwen3.5-4B, Qwen3.6-35B-A3B 등 7개다. 실행 방식은 direct chat, Codex harness, Claude Code harness 세 가지이며, harness 실험은 GPT-5.5에서 수행했다.

비교 기준은 no skill, human-written skill, one-shot LLM skill, Trace2Skill, TextGrad, GEPA, EvoSkill이다. 모든 비교는 같은 target model·test split·scorer를 사용해 skill adaptation procedure의 차이를 비교하도록 설계했다.

기본 설정은 4 epochs, rollout batch 40, reflection minibatch 8, edit budget 4, cosine decay(최솟값 2), held-out gate, epoch당 slow-update sample 20개, rejected buffer 및 optimizer-side meta-skill 활성화다.

주요 결과

논문이 보고한 headline result는 52개(model, benchmark, harness) 평가 셀 중 52개에서 best 또는 tied-best라는 것이다.

GPT-5.5 direct chat에서 6개 벤치마크 평균은 다음처럼 변했다.

조건평균 정확도
No skill58.8
SkillOpt82.3
절대 개선+23.5 points

벤치마크별 no-skill → SkillOpt 결과는 다음과 같다.

벤치마크No skillSkillOpt변화
SearchQA77.787.3+9.6
SpreadsheetBench41.880.7+38.9
OfficeQA33.172.1+39.0
DocVQA78.891.2+12.4
LiveMathematicianBench37.666.9+29.3
ALFWorld83.695.5+11.9

하네스가 있는 환경에서도 GPT-5.5 평균 개선은 Codex에서 +24.8 points, Claude Code에서 +19.1 points였다. Codex에서는 5개 측정 벤치마크 모두에서 best였고, 다음 baseline인 EvoSkill보다 평균 14.0 points 높았다. Claude Code에서도 5개 모두 best였으며 EvoSkill보다 평균 3.2 points 높았다.

모델 규모가 작아져도 효과가 유지됐다. 논문은 direct chat 6개 벤치마크 평균 기준으로 GPT-5.4 +12.7, GPT-5.4-mini +15.4, GPT-5.4-nano +26.7, GPT-5.2 +16.6, Qwen3.5-4B +19.2, Qwen3.6-35B-A3B +9.1 points의 개선을 보고한다. 작은 모델에서 절차 지식이 가중치에 충분히 들어 있지 않을수록 외부 skill의 상대적 효과가 커질 수 있다는 해석이다.

Ablation: 무엇이 실제로 중요한가

  • 충분한 rollout evidence — SpreadsheetBench는 train evidence를 1 example에서 전체 train split으로 늘릴 때 47.5→78.0, LiveMath는 59.1→70.5로 상승했다. SearchQA는 20% 정도에서 이미 포화했다.
  • bounded edit budget — edit budget을 없애거나 동적으로만 두는 것보다 제한된 textual learning rate가 안정적이었다. 무제한 rewrite는 유용한 규칙을 지우고 local failure에 과적합할 수 있다.
  • rejected-edit buffer — buffer를 제거하면 SearchQA 87.1→85.5, SpreadsheetBench 77.5→72.9, LiveMath 61.3→58.9로 하락했다.
  • slow/meta update — meta-skill과 slow update를 모두 제거하면 SpreadsheetBench가 77.5→55.0으로 크게 하락했다. 단기 trajectory만 보는 것보다 epoch 간 장기 회귀와 지속 실패를 추적하는 것이 중요하다는 결과다.
  • 엄격한 gate — selection 점수가 좋아지지 않은 후보를 거부하면 skill이 검증 없이 drift하지 않는다. 편집별 edit_apply_report.json으로 어떤 변경이 채택·거부됐는지도 추적할 수 있다.

전이 실험

SkillOpt의 결과물이 특정 task나 runtime에만 맞춘 prompt인지 확인하기 위해 세 방향의 전이를 테스트했다.

모델 간 전이

GPT-5.4에서 학습한 SpreadsheetBench skill은 GPT-5.4-mini에서 +9.4, GPT-5.4-nano에서 +3.0 points를 추가했고, LiveMath skill도 두 작은 모델에서 각각 +4.5, +5.6 points를 추가했다. 모든 실제 cross-model 전이 행은 target no-skill baseline보다 높았다.

하네스 간 전이

가장 큰 신호는 SpreadsheetBench였다.

  • Codex에서 학습한 skill을 Claude Code로 옮기면 22.1→81.8로 +59.7 points
  • Claude Code에서 학습한 skill을 Codex로 옮기면 27.5→71.1로 +43.6 points
  • LiveMath에서도 Codex→Claude Code +1.6, Claude Code→Codex +12.8의 양의 전이가 있었다.

저자들은 이 결과가 skill이 특정 CLI 명령어가 아니라 workbook 구조 우선 검사, formula-aware verification, static-value materialization 같은 더 일반적인 절차를 담기 때문일 수 있다고 해석한다.

인접 벤치마크 전이

OlympiadBench에서 학습한 math skill을 Omni-MATH로 옮겼을 때 GPT-5.4, GPT-5.4-mini, GPT-5.4-nano에서 각각 +3.7, +1.8, +1.3 points의 양의 전이가 나왔다. 도메인과 문제 인스턴스가 바뀌어도 일부 절차 지식은 남는다는 제한적인 증거다.

학습된 skill의 형태와 비용

최종 best_skill.md는 3791,995 token, 중앙값 약 920 token이었다. 실제로 채택된 편집 수는 14개, 중앙값 2.5개에 불과했다. 많은 후보를 제안하더라도 held-out gate를 통과한 소수의 편집만 배포 artifact에 남는다.

대표적으로 학습된 규칙은 특정 정답을 암기하기보다 다음과 같은 절차 규칙이었다.

  • SearchQA: 단서 표현에서 기대 답변 유형을 먼저 추론하고, 공통 근거가 뒷받침하는 canonical entity를 선택
  • SpreadsheetBench: workbook 구조와 formula를 먼저 검사하고, grader가 읽는 범위에는 평가된 static value를 기록
  • OfficeQA: parsed page를 1차 근거로 삼고 표·날짜·단위 맥락을 고정한 뒤 요구된 반올림 값만 출력
  • DocVQA: 질문을 정확한 visual row/header/field에 묶은 뒤 정렬된 answer span만 복사
  • LiveMath: 참이지만 약한 명제보다 근거가 있는 더 강한 정리 선택지를 우선
  • ALFWorld: 방문 위치·frontier를 기록하고 반복 실패 뒤 탐색을 다양화하며 목적지 재방문을 줄임

학습 비용은 벤치마크에 따라 absolute test-point당 0.6M46.4M training token이었다. SpreadsheetBench·OfficeQA·LiveMath처럼 짧고 실행 가능한 검증이 있는 과제는 0.6M3.6M token/point였고, 긴 trajectory나 multimodal context가 필요한 SearchQA·DocVQA는 더 비쌌다. 이 비용은 deployment가 아니라 offline skill training에서 한 번 지불한다.

논문의 기여와 기존 하네스 관점의 연결

SkillOpt는 2026-05-24-agent-harness-engineering-survey가 하네스의 한 계층으로 분류한 context·tooling·lifecycle·verification을 “하나의 외부 텍스트 artifact를 개선하는 학습 루프”로 연결한다. 특히 skill 자체를 바꾸더라도 target model과 harness를 고정하므로 모델 성능과 시스템 설계의 기여를 분리해 볼 수 있다.

2026-07-04-harness-engineering-for-self-improvement가 제시한 instruction prompts → structured context → workflow → harness code → optimizer code의 이동 중 SkillOpt는 structured procedural context/skill을 먼저 최적화하는 사례다. 하네스 전체를 자기 수정하기 전에, 권한 경계와 evaluator를 그대로 둔 채 편집 가능한 외부 상태를 좁게 설정한다는 점도 실용적이다.

moc-ai-agents-memory 관점에서는 skill이 장기 대화 기록을 통째로 저장하는 memory가 아니라, 실패·성공 경험을 재사용 가능한 절차 규칙으로 압축한 procedural memory에 가깝다. rejected-edit buffer와 optimizer-side meta-skill은 배포 skill에 모두 넣지 않고 학습 과정의 별도 상태로 남긴다.

한계와 적용 조건

  1. 신뢰할 수 있는 점수 필요 — 자동 verifier, exact-match, 실행 가능한 테스트처럼 selection gate가 판단할 수 있는 피드백이 있어야 한다. 연구 taste·novelty·장기 과학적 가치처럼 평가가 모호한 과제에는 바로 적용하기 어렵다.
  2. offline 학습 비용 — 배포 시 추가 호출은 없지만 rollout과 optimizer reflection을 반복해야 한다. 동일 skill을 여러 번 재사용할 때 비용이 상쇄된다.
  3. 단일 skill 중심 — 하나의 compact skill을 최적화하며 대규모 skill library나 model-weight adaptation은 다루지 않는다. 절차가 매우 이질적인 도메인에는 부족할 수 있다.
  4. 분포 이동 위험 — 학습 분포의 domain heuristic이 skill에 들어갈 수 있으므로 다른 모델·하네스·과제로 전이하기 전 held-out 평가가 필요하다.
  5. 비교 범위 — 논문이 보고한 52/52와 전이 수치는 저자 실험의 결과다. 실제 운영 환경의 비용·실패 모드·보안 영향까지 일반화된다고 보기는 어렵다.

실무 적용 메모

  • 먼저 자동 검증이 가능한 업무 하나를 고르고, 동일 모델·동일 harness·동일 예산의 no-skill baseline을 만든다.
  • 모든 trajectory를 skill에 누적하지 말고, 여러 실패에서 반복되는 원인만 절차 규칙으로 추출한다.
  • skill 변경은 add/delete/replace 범위를 제한하고, held-out regression test를 통과한 경우에만 merge한다.
  • 실패한 편집을 버리지 말고 rejected buffer로 보존해 같은 회귀를 반복하지 않게 한다.
  • deployment artifact와 optimizer 메모리를 분리한다. 사용자가 읽고 감사할 skill에는 장기 편집 이력 전체를 넣지 않는다.
  • evaluator·permission·security boundary는 skill optimizer가 임의로 바꿀 수 없는 계층으로 둔다.
  • 스킬의 성능 향상은 모델 자체의 지능 향상이 아니라 고정 모델 + 외부 절차 지식 + 실행 하네스의 조합 개선으로 해석한다.

관련 노트

서지정보

@article{yang2026skillopt,
  title={SkillOpt: Executive Strategy for Self-Evolving Agent Skills},
  author={Yang, Yifan and Gong, Ziyang and Huang, Weiquan and Yang, Qihao and Zhou, Ziwei and Huang, Zisu and Li, Yan and Gao, Xuemei and Dai, Qi and Liu, Bei and Qiu, Kai and Yang, Yuqing and Chen, Dongdong and Yang, Xue and Luo, Chong},
  journal={arXiv preprint arXiv:2605.23904},
  year={2026},
  url={https://arxiv.org/pdf/2605.23904}
}