에이전트 스킬 성능을 A/B 테스트하는 평가 프레임워크
에이전트(Agent)에 도메인 지식을 주입하는 스킬(SKILL.md)이 실제로 모델의 성능을 높이는지 검증하는 오픈소스 평가 도구입니다. 동일한 프롬프트에 대해 스킬 적용 여부에 따른 결과를 각각 생성한 뒤, 판별 모델(Judge Model)이 두 출력물을 비교 평가하여 성능 향상을 객관적으로 증명합니다. CLI 환경에서 간단히 실행할 수 있으며 직관적인 HTML 리포트를 제공하여 스킬의 실질적인 효용성을 측정하고자 하는 AI 실무자들에게 유용합니다.
agent-skills-eval은 '에이전트 스킬(Agent Skills)'을 위한 테스트 러너입니다. SKILL.md 파일을 작성하고 몇 가지 평가(evals)를 등록해 보세요. 그러면 여러분이 만든 스킬이 실제로 모델의 작업 수행 능력을 향상시키는지 경험적으로 확인할 수 있습니다.
- 문서(Documentation) · 퀵스타트(Quickstart) · SDK · agentskills.io
왜 이 도구가 필요한가?
에이전트에 도메인 지식을 제공하기 위한 Anthropic의 개방형 표준인 '에이전트 스킬'을 사용하면, 간편하게 SKILL.md를 배포하여 에이전트가 해당 작업을 더 잘하게 되었다고 가정할 수 있습니다. 하지만 증명하는 것은 어렵습니다.
agent-skills-eval이 바로 그 빈자리를 채워줍니다. 이 도구는 동일한 프롬프트에 대해 두 번, 즉 컨텍스트에 스킬이 포함된 상태(with_skill)와 스킬이 없는 기준선 상태(without_skill)로 실행한 후, 판별 모델(judge model)이 두 출력물을 채점하고 나란히 비교한 리포트를 제공합니다. 스킬이 눈에 띄는 차이를 만들지 못한다면 결과에 명확히 나타날 것이고, 효과가 있다면 그것을 입증할 근거를 얻게 될 것입니다. 이것은 에이전트 스킬 생태계를 위한 테스트 프레임워크로서, 특정 에이전트 런타임에 종속되지 않아 스킬이 작동하는 어디서든 사용할 수 있습니다.
퀵스타트
npx agent-skills-eval ./skills \
--target gpt-4o-mini \
--judge gpt-4o-mini \
--baseline \
--strict
끝입니다. 스킬이 들어있는 폴더를 지정하고, 테스트 대상 모델(target model)과 판별 모델(judge model)을 지정하면, 전체 산출물과 정적 HTML 리포트가 포함된 워크스페이스가 생성됩니다.
agent-skills-workspace/
└── iteration-1/
├── meta.json # 실행 메타데이터
├── benchmark.json # 스킬별 통합 합격/불합격 결과
├── eval-basic/
│ ├── with_skill/ # 출력, 소요 시간, 판별 모델 채점 결과
│ └── without_skill/ # 위와 동일 (스킬 제외 상태)
└── report/
└── index.html # 시각적 리포트
생성된 iteration-1/report/index.html을 열어보면 "내 스킬이 제대로 작동하고 있는가?"라는 질문에 대한 데이터에 기반한 진짜 답변을 얻을 수 있습니다.
핵심 기능
- 스킬 적용 여부에 따른 비교 (
with_skillvswithout_skill): 모든 평가는 양쪽 방식으로 모두 실행되므로 스킬로 인한 실제 성능 향상이나 부작용을 확인할 수 있습니다. - 판별 모델 기반 출력 채점: 임의의 챗 모델을 판별 모델로 사용할 수 있습니다. 단순한 느낌이 아닌, 근거가 명시된 주장과 함께 합격/불합격 여부를 판정합니다.
- TypeScript SDK 및 CLI: CI 파이프라인을 위한 한 줄짜리 CLI 명령어부터, 사용자 지정 파이프라인, 프로바이더, 대시보드를 위한 완벽한 SDK를 제공합니다.
- OpenAI 호환성 기본 지원: OpenAI, Together, Groq, OpenAI 호환 레이어를 통한 Anthropic, 로컬 Llama 서버 등 OpenAI 챗 API를 사용하는 모든 환경에서 즉시 작동합니다.
- *도구 호출 검증(Tool-call assertions)***: 단순히 텍스트를 생성하는 것을 넘어, 에이전트가 도구를 호출하는지 확인하는 결정론적 검사를 지원합니다.
- 이식 가능한 산출물: 모든 결과가 JSON 및 JSONL 형식으로 저장됩니다. 오늘 실행하고 내일 결과를 비교(diff)하거나 자체 대시보드에 연동할 수 있습니다.
- 정적 HTML 리포트: 어디든 게시할 수 있는 즉시 사용 가능한 리포트 사이트를 생성합니다. 별도의 인프라가 필요하지 않습니다.
- 스펙 완벽 준수: agentskills.io 사양을 완벽하게 구현합니다. (
SKILL.md유효성 검사,evals/evals.json, 공식iteration-N산출물 레이아웃, 프론트매터 규칙 등)
설치 방법
npm install agent-skills-eval
또는 설치하지 않고 바로 실행할 수도 있습니다:
npx agent-skills-eval --help
작동 원리
개념은 아주 단순합니다. 스킬에 정의된 모든 평가에 대해 다음과 같은 과정을 거칩니다:
┌─────────────────────────────┐
│ 동일한 프롬프트 │
└───────────────┬─────────────┘
│
┌───────────────┴─────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ with_skill │ │ without_skill │
│ 컨텍스트에 SKILL.md 포함 │ │ 기준선, 스킬 없음 │
└────────┬─────────┘ └────────┬─────────┘
│ │
▼ ▼
대상 모델(target) 대상 모델(target)
│ │
▼ ▼
출력물 출력물
│ │
└──────────┬──────────────────┘
▼
┌─────────────────┐
│ 판별 모델 │
│ (Judge model) │
│ 두 출력물을 동일한 │
│ 기준으로 각각 채점 │
└────────┬────────┘
▼
양쪽의 합격 / 불합격 판정
판별 모델은 평가의 expected_output(예상 출력) 및 assertions(주장)을 확인하고 양쪽을 독립적으로 채점합니다. --baseline 플래그는 이 비교를 가능하게 하는 옵션입니다. 이 플래그가 없으면 with_skill 실행 결과만 얻게 됩니다.
YAML 설정
간단한 명령어 이상의 설정이 필요하다면, 프로젝트 루트에 설정 파일을 추가하면 됩니다:
# agent-skills-eval.yaml
root : ./skills
workspace : ./agent-skills-workspace
baseline : true
target : gpt-4o-mini
judge : gpt-4o-mini
baseUrl : https://api.openai.com/v1
apiKeyEnv : OPENAI_API_KEY
include :
- "skills/**"
exclude :
- "**/draft-*"
concurrency : 4
layout : iteration
strict : true
report :
enabled : true
title : Agent Skills Report
logging :
format : pretty # pretty | jsonl | silent
verbose : false
color : auto
targetParams :
temperature : 0
judgeParams :
temperature : 0