할 일은 딱 하나뿐이었던 스킬들 (결국 실패)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00에이전트에게 추가적인 컨텍스트를 제공할 때 '스킬(Skills)'은 최선의 방법이 아닐 수도 있습니다. 사실 agents.md 파일로 돌아가는 것이 더 효과적일 수 있다는 결과가 나왔거든요.
00:00:08이것은 Vercel이 코딩 에이전트에게 Next.js 문서를 제공하는 최적의 방법을 테스트하던 중 발견한 놀라운 결과입니다.
00:00:15그럼 바로 본론으로 들어가서, 어떤 일이 있었고 그 이유는 무엇인지, 그리고 코딩 에이전트를 효과적으로 사용하는 방법에 대해 무엇을 배울 수 있는지 분석해 보겠습니다.
00:00:26앞서 말씀드린 것처럼 Vercel의 목표는 코딩 에이전트에게 Next.js 문서와 같은 추가 컨텍스트를 제공하는 것이었습니다. 에이전트가 Next.js 코드를 작성할 때, 학습 데이터에 아직 포함되지 않았을 수도 있는 새로운 API들을 모두 알 수 있도록 말이죠.
00:00:41아니면 반대로 구버전 Next.js를 사용하는 상황에서 해당 버전에서 사용 가능한 메서드만 쓰도록 제한하고 싶을 수도 있습니다.
00:00:47즉, 에이전트가 활용할 수 있는 '버전 맞춤형 문서 시스템'이 필요했던 겁니다.
00:00:51이를 위해 그들은 흔히 쓰이는 두 가지 접근 방식을 테스트했습니다.
00:00:54첫 번째는 '스킬'입니다.
00:00:56최근 수많은 프레임워크와 도구들이 스킬을 출시하면서 꽤 인기를 끌고 있죠.
00:01:01아이러니하게도 Vercel은 '스킬 CLI'와 스킬 저장소를 통해 이러한 흐름을 주도하는 곳 중 하나이기도 합니다.
00:01:08관심 있으신 분들은 꼭 한번 확인해 보시길 추천합니다.
00:01:09스킬이 생소하신 분들을 위해 설명하자면, 이는 Anthropic에서 만든 개방형 표준입니다. 에이전트가 작업을 더 정확하게 수행하기 위해 필요할 때마다 불러올 수 있는 지침, 스크립트, 컨텍스트의 모듈화된 번들이라고 보시면 됩니다.
00:01:20하지만 여기서 핵심은 이 정보를 언제 불러올지는 전적으로 '에이전트의 판단'에 달려 있다는 점입니다.
00:01:26그리고 바로 이 점이 현재로서는 약점으로 작용하는 것 같습니다. Vercel이 성능 평가(Evals)를 진행했을 때, 스킬이 한 번도 호출되지 않은 경우가 56%에 달했다는 사실을 발견했습니다.
00:01:35에이전트가 그냥 스킬을 사용하지 않기로 결정해버린 것이죠.
00:01:37놀랍게도 에이전트에게 스킬을 제공했을 때, 스킬이 아예 없었던 에이전트와 비교해 평가 결과에서 아무런 개선이 없었습니다.
00:01:44더 놀라운 사실은 스킬이 오히려 부정적인 영향을 미칠 수도 있다는 점이었습니다.
00:01:48스킬을 사용하지 않았을 때 때때로 기준점(Baseline)보다 낮은 성능을 보였는데, 이는 사용되지 않은 스킬이 일종의 노이즈나 주의 분산 요소로 작용할 수 있음을 시사합니다.
00:01:57이를 해결하기 위해 프롬프트에 “반드시 이 스킬을 사용하세요”라고 명시해보기도 했습니다.
00:02:02확실히 효과는 있었습니다. 스킬 트리거 비율은 95%까지 올라갔고, 평가 통과율도 79%로 상승했죠.
00:02:09하지만 또 다른 문제가 생겼습니다. 문구의 미세한 차이에 따라 결과가 극명하게 달라진다는 사실을 발견한 겁니다.
00:02:15예를 들어, “이 스킬을 반드시 사용해야 한다”라고만 하면 스킬은 사용하지만 프로젝트의 기존 컨텍스트를 무시해버리는 식이었죠.
00:02:21그래서 “스킬과 프로젝트 컨텍스트를 둘 다 사용하라”고 일일이 지시해야 했습니다.
00:02:24Vercel은 시스템의 이러한 취약성을 우려하며, 단어 몇 개 바꿨다고 동작이 크게 요동친다면 실무용으로 쓰기에는 너무 불안정하다고 판단했습니다.
00:02:33결국 에이전트가 스스로 결정할 필요가 없는, 더 신뢰할 수 있는 솔루션이 필요했습니다.
00:02:40그때 시도한 것이 바로 agents.md 파일입니다.
00:02:42이것은 이미 많은 에이전트에서 채택한 개방형 형식입니다. Claude 사용자라면 'claude.md'와 똑같은 것이라고 생각하시면 됩니다.
00:02:49코딩 에이전트에게 전달할 지침을 항상 시스템 프롬프트에 포함해 두는 용도로 사용되죠.
00:02:53스킬과 달리 에이전트가 정보를 가져올지 말지 고민할 필요가 없습니다.
00:02:58시스템 프롬프트 안에 이미 정보가 들어있으니까요. 하지만 이 방식은 컨텍스트 용량이 너무 커지는 문제를 일으킬 수도 있습니다.
00:03:03컨텍스트가 늘어날수록 출력 품질이 저하되는 현상이 발생할 수 있기 때문입니다.
00:03:06Next.js 문서 전체를 agents.md 파일에 통째로 넣고 싶다면 어떻게 해야 할까요?
00:03:10이 문제를 해결하기 위해 Vercel은 agents.md에 '문서 인덱스'를 활용했습니다.
00:03:17그냥 파일 시스템 내에 있는 개별 문서 파일들의 경로 목록을 넣어준 것이죠.
00:03:22그리고 또 다른 핵심 요소로 “Next.js 작업 시 사전 학습된 지식보다 검색 기반의 추론을 우선시하라”는 지침을 추가했습니다.
00:03:31사실 저는 처음에 이 내용을 읽고, 결국 문서를 읽기 위해 파일을 찾아가야 한다면 스킬 방식과 결과가 비슷하지 않을까 생각했습니다.
00:03:38하지만 실제 테스트 결과, 에이전트는 모든 평가 항목에서 100%를 기록했고 빌드, 린트, 테스트 평가에서 완벽한 점수를 받았습니다.
00:03:47스킬보다 훨씬 더 안정적이고 정확한 거죠. 전형적인 소프트웨어 공학의 사례라고 할까요?
00:03:53때로는 더 단순하고 투박한 방식이 최선일 때가 있습니다. 굳이 과하게 설계할 필요가 없었던 거죠.
00:03:58그런데 왜 이런 결과가 나왔을까요? 왜 agents.md 파일이 스킬보다 나은 걸까요? 사실 정확한 이유는 알기 어렵습니다.
00:04:03AI는 블랙박스와 같으니까요. 하지만 Vercel은 이를 의사 결정과 관련된 세 가지 요인 때문으로 추측하고 있습니다.
00:04:10우선 에이전트 파일 방식을 쓰면 에이전트가 선택해야 할 '결정의 순간' 자체가 사라집니다.
00:04:14시작부터 시스템 프롬프트를 통해 문서를 사용하라고 명시하고 각 파일의 정확한 위치까지 알려주기 때문입니다.
00:04:20따라서 필요할 때마다 모델이 사용할지 말지 결정하게 두는 것이 아니라, 지식을 '지속적인 컨텍스트'로 만드는 것입니다.
00:04:27이미 시스템 프롬프트에 제공되었기 때문에 추론 과정에 늘 포함되어 있는 셈이죠.
00:04:31그렇다고 스킬이 완전히 무용지물이라는 뜻은 아닙니다. 실제로 Vercel은 두 방식이 서로 상호 보완적이라는 사실을 발견했습니다.
00:04:36“앱 라우터로 전환해 줘” 또는 “프레임워크 권장 사항을 적용해 줘” 같은 요청들 말이죠.
00:04:41migrate to the app router or apply some framework best practices.
00:04:45하지만 코딩 에이전트가 갖춰야 할 일반적인 프레임워크 지식에 관해서라면,
00:04:48현재의 모델 수준에서는 agents.md를 통한 수동적 컨텍스트 제공 방식이 스킬보다 뛰어난 성능을 보입니다.
00:04:54물론 미래에는 모델들이 스킬 기반의 검색 워크플로우에 최적화되겠지만, 아직은 그 단계가 아닙니다.
00:04:59현재 Vercel이 프레임워크 개발자나 스킬/agents.md를 직접 작성하려는 분들께 권장하는 사항은 다음과 같습니다.
00:05:06스킬 성능이 개선되길 기다리기보다는 컨텍스트를 최대한 압축하세요.
00:05:10기억이 아닌 '검색'을 위해 설계하시고, 무엇보다 항상 성능 평가(Evals)를 통해 검증하시기 바랍니다.
00:05:16일반 사용자분들을 위해 Vercel은 문서를 다운로드할 수 있는 도구와
00:05:21특정 Next.js 버전에 맞게 미리 구성된 agents.md 파일을 제공하고 있으니, 지금 바로 이 새로운 방식을 활용해 보실 수 있습니다.
00:05:29다른 도구들도 이런 방식을 따르게 될지 정말 궁금하네요. 여러분의 생각은 어떠신가요?
00:05:34에이전트 파일과 스킬에 대한 여러분의 의견을 아래 댓글로 남겨주세요.
00:05:37구독도 잊지 마시고요. 그럼 다음 영상에서 뵙겠습니다!

Key Takeaway

코딩 에이전트의 성능 극대화를 위해서는 에이전트가 정보를 선택하게 두는 '스킬' 방식보다, 시스템 프롬프트에 지침과 인덱스를 고정하는 'agents.md' 방식이 훨씬 더 안정적이고 정확합니다.

Highlights

Vercel의 테스트 결과, 코딩 에이전트에게 컨텍스트를 제공할 때 '스킬(Skills)'보다 'agents.md' 파일이 더 효과적임

스킬 방식은 에이전트의 판단에 의존하기 때문에 호출되지 않을 확률이 56%에 달하며 성능 개선이 미비함

강제적인 스킬 사용 지시는 프롬프트의 미세한 문구 차이에 따라 기존 컨텍스트를 무시하는 등 불안정성을 보임

agents.md 방식은 시스템 프롬프트에 문서 인덱스를 직접 포함하여 에이전트의 의사 결정 과정을 제거함

검색 기반 추론을 우선시하도록 설정한 agents.md 방식은 평가 항목에서 100%의 정확도를 기록함

현재 기술 수준에서는 복잡한 스킬 설계보다 지속적인 컨텍스트를 제공하는 단순한 방식이 실무에 더 적합함

Timeline

서론: 코딩 에이전트 컨텍스트 제공의 새로운 발견

Vercel은 Next.js 문서를 코딩 에이전트에게 효율적으로 제공하는 방법을 테스트하던 중 놀라운 사실을 발견했습니다. 기존에 널리 사용되던 '스킬' 방식보다 'agents.md' 파일을 사용하는 고전적인 방식이 더 효과적이라는 결과가 나왔습니다. 이 실험의 목적은 에이전트가 최신 API 정보를 학습하거나 특정 구버전의 메서드만 사용하도록 제한하는 '버전 맞춤형 문서 시스템'을 구축하는 것이었습니다. 개발자는 에이전트에게 추가적인 문맥을 제공할 때 어떤 경로가 가장 오류가 적고 정확한지 분석하고자 했습니다. 이 섹션은 이후 전개될 두 가지 접근 방식의 비교 연구에 대한 배경을 제시합니다.

스킬(Skills) 방식의 한계와 성능 평가 결과

Anthropic의 개방형 표준인 '스킬'은 에이전트가 필요할 때 호출하는 모듈화된 번들이지만, 실제 테스트 결과는 실망스러웠습니다. 에이전트가 스스로 판단하여 스킬을 호출하지 않은 경우가 56%나 되었고, 이는 스킬이 없는 베이스라인과 차이가 없거나 오히려 노이즈로 작용했습니다. 강제로 스킬을 사용하게 하면 호출율은 높아졌지만, 단어 하나에 따라 프로젝트 컨텍스트를 무시하는 등 동작이 매우 불안정했습니다. Vercel은 이러한 취약성이 실무용 도구로 적합하지 않다고 판단했습니다. 결국 에이전트의 자율적인 판단에 맡기는 방식이 지닌 예측 불가능성이 가장 큰 문제로 지적되었습니다.

agents.md와 문서 인덱스를 활용한 해결책

Vercel은 대안으로 시스템 프롬프트에 지침을 상주시키는 'agents.md' 형식을 채택했습니다. 컨텍스트 용량이 커지는 문제를 해결하기 위해 문서 전체를 넣는 대신 파일 시스템 내 문서들의 '경로 인덱스'를 제공했습니다. 또한 에이전트에게 사전 학습된 지식보다 검색 기반의 추론을 우선하라는 명확한 지침을 추가했습니다. 이 방식은 에이전트가 정보를 찾을지 말지 고민할 필요를 없애주었으며, 결과적으로 평가 항목에서 100%의 점수를 기록하는 놀라운 성과를 거두었습니다. 복잡한 설계보다 단순하고 투박한 소프트웨어 공학적 접근이 승리한 전형적인 사례로 평가됩니다.

결론: 효율적인 에이전트 활용 전략과 권장 사항

실험 결과 agents.md가 우세했던 이유는 에이전트의 '결정의 순간'을 제거하고 지식을 '지속적인 컨텍스트'로 변환했기 때문입니다. 다만 스킬 방식도 앱 라우터 전환과 같은 특정 작업 지시에는 보조적으로 유용할 수 있음을 확인했습니다. 현재 수준의 모델에서는 정보를 압축하여 검색 가능하게 만들고, 항상 성능 평가(Evals)를 통해 검증하는 것이 가장 중요합니다. Vercel은 사용자들이 바로 적용해 볼 수 있도록 특정 버전에 맞춘 agents.md 파일과 도구들을 제공하고 있습니다. 이 영상은 미래의 모델이 발전하더라도 현재로서는 수동적인 컨텍스트 제공이 가장 강력한 전략임을 강조하며 마무리됩니다.

Community Posts

View all posts