mgechev/skillgrade
"Unit tests" for your agent skills
Skillgrade – AI 코딩 에이전트를 위한 평가 하네스
기능 – Skillgrade를 사용하면 코딩 관련 작업(예: lint 오류 수정, API 구현, 코드 검토)을 정의하고 AI 기반 코딩 에이전트를 자동으로 실행할 수 있습니다. 각 실행 후 결정적 스크립트, LLM 기반 루브릭 또는 인간 검토자로 결과를 채점하여 통과율 또는 가중 점수를 생성합니다.
사용 방법
- 전역 설치(
npm i -g skillgrade). - 폴더에서
skillgrade init을 실행하여eval.yaml템플릿을 생성합니다(SKILL.md파일과 API 키가 있으면 AI가 제안한 작업을 생성하도록 할 수도 있습니다). eval.yaml을 편집하여 작업, 작업 공간 파일, 컨텍스트 파일 및 채점자를 설명합니다.- 단일 명령으로 평가를 실행합니다(예:
skillgrade --smoke). 도구는 환경 변수(GEMINI_API_KEY,ANTHROPIC_API_KEY,OPENAI_API_KEY)에서 에이전트를 자동 감지하거나--agent로 강제할 수 있습니다. - 터미널(
skillgrade preview) 또는 브라우저 UI(skillgrade preview browser)에서 결과를 확인합니다.
주요 개념
- 에이전트 – LLM 기반 코딩 어시스턴트(Gemini, Claude, Codex, OpenCode 또는 ACP 호환 CLI). 임의의 명령을 가리킬 수도 있습니다.
- 작업 공간 vs. 컨텍스트 –
workspace파일은 에이전트가 작업하는 변경 가능한 코드입니다.context파일은 읽기 전용 참조 자료입니다. - 채점자 유형 –
- 결정적: JSON 점수를 반환하는 스크립트를 실행합니다.
- LLM 루브릭: 에이전트의 기록을 루브릭과 함께 LLM에 보내고 반환된 점수를 구문 분석합니다.
- 인간: 수동 검토를 위해 일시 중지합니다. 채점자에는 가중치를 부여할 수 있습니다. 최종 점수는 가중 평균입니다.
- 시행 및 사전 설정 – 작업을 여러 번 실행(
trials)하여 신뢰성을 추정합니다.--smoke(5회) 또는--regression(30회)과 같은 사전 설정은 빠르거나 철저한 검사를 제공합니다. - 다중 턴 작업 – 작업에는 일련의 지시(
turns)가 있을 수 있으며 작업 공간은 턴 간에 유지됩니다. - 데이터 세트 확장 – 단일 작업 템플릿을 JSONL/CSV 데이터 세트에서 확장하여 행 필드를 지시문에 보간할 수 있습니다.
- 필터링 –
--filter/--not-filter를 사용하여 메타데이터 필드를 기반으로 작업 하위 집합을 선택합니다. - 보고 – 결과를 JSON, JUnit XML, CSV 또는 Markdown으로 내보냅니다. CI 파이프라인에 유용합니다.
일반적인 워크플로 예시
# 설치
npm i -g skillgrade
# 평가 스위트 생성
mkdir my-evals && cd my-evals
skillgrade init # eval.yaml 생성
# eval.yaml 편집 – 손상된 파일에서 superlint를 실행하는 작업 추가
# (전체 구문은 README 참조)
# 기본 Gemini 에이전트에 대해 빠른 스모크 테스트 실행
GEMINI_API_KEY=… skillgrade --smoke
# 멋진 웹 UI 보기
skillgrade preview browser
# CI에서는 다음과 같이 사용할 수 있습니다:
skillgrade --regression --ci --provider=local --threshold=0.85
중요성 – AI 코딩 어시스턴트가 보편화됨에 따라 개발자는 신뢰성, 정확성 및 워크플로 준수를 체계적으로 측정할 방법이 필요합니다. Skillgrade는 많은 LLM 공급자와 함께 작동하고 자동화된 테스트 파이프라인에 통합할 수 있는 유연하고 언어에 구애받지 않는 하네스를 제공합니다.
범위 – 이 프로젝트는 AI 코딩 에이전트를 평가하기 위한 실제 소프트웨어 도구로, AI/ML 도구 생태계에 완전히 부합합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트