마이크로소프트 SkillOpt가 던진 질문: 에이전트는 어떻게 스스로 진화하는가 AI 업계에는 오래된 믿음이 있었습니다. 더 강력한 모델을 만들면 에이전트도 자연스럽게 똑똑해질 것이라는 믿음입니다. 그래서 사람들은 더 큰 GPU 클러스터를 만들고, 파라미터를 키우고, 프롬프트를 길게 늘렸습니다. 하지만 현실의 에이전트는 여전히 불안정했습니다. 같은 일을 두 번 시키면 다른 결과를 내놓았습니다. 환경이 조금만 바뀌어도 실패했습니다. 사람이 밤새 다듬은 스킬 문서는 몇 번의 업데이트만 지나면 낡은 운영 매뉴얼처럼 변했습니다. 마이크로소프트의 SkillOpt 논문이 흥미로운 이유는 이 문제를 정면으로 다루기 때문입니다. 이 논문은 모델 자체를 계속 바꾸는 대신, 에이전트의 스킬 문서를 학습 가능한 대상으로 봅니다. 쉽게 말하면 모델의 가중치를 바꾸는 것이 아니라, 에이전트가 일을 처리하는 절차와 행동 규칙을 최적화합니다. 이 관점은 중요합니다. 앞으로의 AI 경쟁은 단순히 더 큰 모델을 만드는 싸움만은 아닐 수 있습니다. 모델 위에서 작동하는 실행 프로토콜, 작업 습관, 실패 복구 방식, 검증 절차를 누가 더 잘 축적하느냐의 싸움으로 이동할 가능성이 있습니다. ## 스킬 문서를 학습 대상으로 본다 SkillOpt의 구조는 생각보다 단순합니다. 에이전트도 그대로 둡니다. 모델도 그대로 둡니다. 대신 스킬 문서를 훈련합니다. 기존에는 사람이 스킬 문서를 직접 작성했습니다. 프롬프트를 고치고, 실패 사례를 보고, “이 문장이 더 잘 먹힙니다”는 감각을 쌓았습니다. 일종의 장인 작업이었습니다. SkillOpt는 이 과정을 최적화 문제로 바꿉니다. 에이전트가 작업을 수행하면 실행 궤적이 남습니다. 별도의 옵티마이저 모델은 그 궤적을 분석합니다. 무엇이 성공했고, 무엇이 실패했는지 봅니다. 그다음 스킬 문서에 문장을 추가하거나, 삭제하거나, 교체합니다. 중요한 점은 수정이 바로 반영되지 않는다는 것입니다. 수정된 스킬은 검증 데이터를 통과해야 합니다. 실제 성능이 개선된 경우에만 업데이트됩니다. 실패한 수정은 버려집니다. 딥러닝에서 검증 손실을 보며 조심스럽게 파라미터를 업데이트하듯, SkillOpt는 자연어 문서 공간에서 에이전트의 행동 규칙을 천천히 조정합니다. 논문은 이를 text-space optimizer로 설명합니다. 모델 파라미터가 아니라 텍스트로 된 스킬 문서를 최적화하는 방식입니다. ## 모델이 아니라 운영 방식이 진화한다 이 개념이 흥미로운 이유는 에이전트를 단순 프로그램이 아니라 운영 체계에 가깝게 보기 때문입니다. 기존 소프트웨어는 코드가 바뀌어야 진화합니다. 하지만 SkillOpt에서는 모델이 바뀌지 않아도 외부 스킬 문서가 바뀌면 행동 방식이 달라집니다. 사람 조직으로 비유하면 직원은 그대로인데, 업무 매뉴얼과 의사결정 절차가 계속 개선되는 구조입니다. 이 방식은 경제적으로도 의미가 있습니다. 거대 모델을 다시 학습시키는 일은 매우 비쌉니다. 반면 스킬 문서를 최적화하는 방식은 모델 재학습 없이도 성능 개선을 노릴 수 있습니다. 배포 시점에는 최종 스킬 문서만 사용하면 되므로, 추가 모델 호출 없이 개선된 행동 패턴을 적용할 수 있습니다. 논문 초록 기준으로 SkillOpt는 GPT-5.5 환경에서 direct chat 기준 +23.5 포인트, Codex 실행 루프에서 +24.8 포인트, Claude Code에서 +19.1 포인트의 평균 성능 향상을 보고했습니다. 또한 학습된 스킬 문서는 특정 모델이나 특정 실행 환경에만 묶이지 않고, 다른 모델과 다른 harness로도 일정 부분 전이된다고 설명합니다. 이 지점이 중요합니다. 앞으로 경쟁력은 단순히 “어떤 모델을 쓰는가”에서 끝나지 않을 수 있습니다. 오히려 어떤 실패 경험을 축적했는가, 어떤 스킬 문서를 갖고 있는가, 어떤 검증 루프를 돌리고 있는가가 더 큰 차이를 만들 수 있습니다. ## 자기진화보다 중요한 것은 진화의 조건이다 다만 여기서 한 가지 문제가 생깁니다. 에이전트가 실패 경험을 기억하고, 스킬 문서를 고치고, 행동 규칙을 최적화하기 시작하면 그것은 더 이상 고정된 프로그램이 아닙니다. 지속적으로 변하는 실행 시스템에 가까워집니다. 이때 성능 개선만 보면 위험합니다. 어떤 변경은 일을 더 잘하게 만들 수 있습니다. 하지만 동시에 기존 절차를 우회하게 만들 수도 있습니다. 권한 경계를 넓힐 수도 있습니다. 상위 정책을 조용히 바꿀 수도 있습니다. 오염된 데이터나 잘못된 보상 신호가 반복되면 실패 전략이 오히려 강화될 수도 있습니다. 그래서 SkillOpt류 구조에서 가장 중요한 질문은 “스스로 진화하는가”가 아닙니다. 더 중요한 질문은 이것입니다. 어떤 조건에서 진화를 허용할 것인가. 성능이 좋아졌다는 것과, 그 변경이 기존 절차와 권한의 경계 안에 남아 있다는 것은 다른 문제입니다. 특히 스킬과 정책이 같은 자연어 문서 안에 섞여 있다면, 최적화 장치가 단순한 스킬 개선과 사실상의 정책 변경을 항상 안정적으로 구분한다고 보기 어렵습니다. 어떤 업데이트는 작업 방식을 개선하는 것이 아니라, 사람이 허용한 범위 자체를 바꾸는 효과를 낼 수 있습니다. 의도적일 수도 있고, 비의도적일 수도 있습니다. ## 필요한 것은 승인 버튼이 아니라 검토 구조다 그래서 승인 단계도 단순하면 안 됩니다. 사람이 마지막에 버튼만 누르는 구조는 충분하지 않습니다. 그것은 인간 통제라기보다 책임만 인간에게 남기는 절차가 될 수 있습니다. 필요한 것은 변경 전후를 구조적으로 비교하는 검토 구조입니다. 무엇이 추가됐는가. 무엇이 삭제됐는가. 기존 절차와 충돌하지 않는가. 상위 정책을 건드리지 않는가. 권한 범위를 바꾸지 않는가. 문제가 생기면 이전 상태로 되돌릴 수 있는가. 이런 질문이 자동으로 검토되어야 합니다. 즉, self-evolving agent에는 최소한 두 개의 게이트가 필요합니다. 첫 번째는 성능 게이트입니다. 이 변경이 일을 더 잘하게 만들었는가를 봅니다. 두 번째는 정책 게이트입니다. 이 변경이 허용된 경계 안에 남아 있는가를 봅니다. 성능 게이트만 있으면 에이전트는 더 잘 일하는 방향으로 움직입니다. 하지만 정책 게이트가 없으면, 더 잘 일하기 위해 사람이 정한 경계까지 조용히 바꿀 수 있습니다. ## 사람의 개입도 다시 정의되어야 한다 국방테크에서 말하는 human-in-the-loop도 결국 이 지점이 핵심이라고 봅니다. 사람이 마지막 승인 버튼을 누른다고 해서 통제가 완성되는 것은 아닙니다. 사람이 판단할 수 있는 정보가 구조화되어 올라와야 합니다. 변경 diff, 성능 변화, 정책 충돌 여부, 권한 영향, 롤백 가능성까지 함께 보여야 합니다. 그때의 인간 개입은 형식적인 승인 절차가 아니라 실제 통제 장치가 됩니다. AI 에이전트가 스스로 스킬을 고치는 시대에는 “사람이 개입합니다”는 말도 더 엄격해져야 합니다. 사람이 단순히 책임만 지는 구조가 아니라, 판단 가능한 근거를 보고 개입하는 구조여야 합니다. ## 결론 SkillOpt가 보여주는 것은 단순한 프롬프트 최적화 기법이 아닙니다. 이 논문은 에이전트의 행동 방식 자체가 학습 가능한 자산이 될 수 있음을 보여줍니다. 모델이 아니라 스킬 문서가 진화하고, 코드가 아니라 실행 프로토콜이 개선되며, 실패 경험이 다음 행동 규칙으로 축적되는 방향입니다. 앞으로 AI 경쟁은 더 큰 모델을 만드는 경쟁에서 끝나지 않을 것입니다. 누가 더 좋은 에이전트 스킬을 축적하는가. 누가 더 안정적인 검증 루프를 갖는가. 누가 더 안전하게 진화 가능한 실행 구조를 만드는가. 이 질문이 점점 더 중요해질 것입니다. SkillOpt는 그 방향을 보여준 첫 신호에 가깝습니다. 그러나 진짜 경쟁은 이제부터입니다. 자기진화하는 에이전트를 만드는 것보다 더 어려운 일은, 그 진화를 안전하게 관리하는 구조를 만드는 일입니다. ## 관련 출처 * SkillOpt 논문 arXiv: * SkillOpt 프로젝트 페이지: * SkillOpt GitHub 저장소: * Microsoft Visual Studio Agent Skills 문서: * Microsoft Visual Studio Blog, Agent Skills 소개:

강력한 거대 모델만 도입하면 에이전트가 알아서 똑똑해진다는 믿음은 현장에서 자주 깨집니다. 현실의 에이전트는 환경이 조금만 바뀌어도 오작동합니다. 엔지니어가 밤새 작성한 가이드는 몇 번의 코드 업데이트로 쉽게 무용지물이 됩니다. 마이크로소프트가 발표한 SkillOpt 는 모델 가중치를 고정한 채 에이전트의 행동 지침인 스킬 문서를 학습 대상으로 바라보며 이 문제를 해결합니다.

텍스트 공간에서 작동하는 옵티마이저

SkillOpt 는 모델 가중치 대신 자연어로 적은 스킬 문서를 직접 수정하는 텍스트 공간 옵티마이저입니다. 에이전트가 작업을 수행하며 남긴 실행 궤적을 분석해 스킬 문서에 문장을 추가하거나 삭제합니다. 구조는 단순합니다. 별도의 옵티마이저 모델이 궤적 점수를 분석해 편집을 제안하면, 이 제안은 별도로 분리한 검증 데이터셋을 통과해야만 반영됩니다. 성능이 확실히 개선되었을 때만 업데이트를 허용하는 구조입니다.

SkillOpt 방식은 기존 수동 프롬프트 튜닝을 체계적인 최적화 문제로 전환합니다. 자연어 학습률 예산(learning-rate budget)과 거절 편집 버퍼를 두어 텍스트 공간에서 일어나는 급격한 행동 변화를 막습니다. 배포할 때는 최종 최적화한 단일 스킬 문서만 사용하므로 추가 API 호출 비용이 전혀 들지 않습니다. 효율이 극대화됩니다.

실제 평가에서 SkillOpt는 높은 성능 향상을 증명했습니다. GPT-5.5 환경에서 작동하는 Codex 에이전트 루프 기준 평균 24.8 포인트 성능 향상을 기록했습니다. Claude Code 환경에서도 성능이 19.1 포인트 올랐습니다. 자산이 쌓입니다.

스스로 진화하는 시스템의 경계

실패 경험을 학습해 스스로 스킬 문서를 고치는 에이전트는 더는 정적인 프로그램이 아니라 동적 실행 체계에 가깝습니다. 성능 지표만 보고 자동 업데이트를 허용하면 보안 사고로 이어집니다. 목표를 달성하려고 개발 보안 절차를 우회하거나 권한 경계를 임의로 확장할 위험이 큽니다. 통제가 필요합니다.

최근 개발 도구 생태계에서도 스킬 관리 방식이 구체화되는 흐름입니다. 개발 환경에서 .github/skills/ 같은 특정 디렉토리에 스킬 파일을 명시해 관리하는 방식이 대표적입니다. 스킬을 파일로 격리해두면 형상 관리 도구로 변경 사항을 추적하기 쉽습니다. 에이전트가 스킬 파일을 직접 수정하게 둔다면 단순한 자동 승인 버튼으로는 부족합니다.

진화하는 에이전트에는 이중 검증 구조가 필수입니다. 변경한 스킬이 기존 상위 보안 정책을 위반하지 않는지 자동으로 검사하는 장치가 성능 측정과 동시에 돌아가야 합니다. 엔지니어가 변경 전후 차이점(diff)과 권한 영향도를 한눈에 파악하도록 검토 인터페이스를 제공해야 합니다. 그래야 사람이 안전장치 역할을 실질적으로 수행합니다. 판단이 핵심입니다.

미래 에이전트 경쟁력은 거대 모델 크기보다 안전하게 진화하는 실행 프로토콜을 설계하는 구조적 역량이 결정합니다. 이제 출발선에 섰습니다.

요약

  • SkillOpt는 모델의 가중치를 바꾸는 대신 에이전트의 행동 지침인 스킬 문서를 최적화하여 비용 효율적으로 성능을 개선합니다.
  • 스스로 진화하는 에이전트 시스템에서는 성능 검증을 위한 성능 게이트와 권한 및 보안 경계를 지키는 정책 게이트의 이중 검증 구조가 필수적입니다.
  • 진정한 인간 개입(Human-in-the-loop)을 위해서는 단순 승인 버튼을 넘어 변경 전후의 차이점과 권한 영향을 가시화하는 검토 구조가 제공되어야 합니다.