오픈소스 프레임워크를 사용하여 에이전트 스킬 평가

1. 소개

개요

이 Codelab에서는 오픈소스 프레임워크 Inspect를 사용하여 에이전트 기술 세트에 대한 평가를 수행하는 방법을 알아봅니다. Docker 컨테이너를 사용하여 자체 머신에서 이 평가를 실행합니다. Gemini CLI는 Inspect SWE를 통해 평가를 실행하는 소프트웨어 엔지니어링 에이전트로 사용됩니다.

실습할 내용

맞춤 프롬프트 평가를 사용하여 에이전트 기술 세트에 대해 평가를 실행합니다.

학습 내용

  • 오픈소스 프레임워크를 사용하여 스킬에 대해 평가를 실행하는 방법
  • 질문과 답변 채점 도구에서 평가 질문으로 사용할 프롬프트를 작성하는 방법

2. 시작하기 전에

Gemini API 설정

Gemini API를 사용하려면 Google AI Studio에서 API 키를 생성하세요.

선택사항: 키 테스트

curl가 있는 명령줄에 액세스할 수 있는 경우 다음 블록의 첫 번째 줄에 키를 추가한 다음 터미널에서 실행하여 API 키를 테스트합니다.

export GEMINI_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GEMINI_API_KEY}"

models/gemini-3.1-pro-preview와 같은 모델 목록이 JSON 형식으로 표시됩니다. 이는 작동했음을 의미합니다.

시스템 종속 항목 설치

이 튜토리얼을 완료하려면 머신에 다음 소프트웨어를 설치해야 합니다.

  • Docker
    • 샌드박스 환경에서 평가를 실행하는 데 사용됩니다.
  • Python
    • Inspect가 작성된 프로그래밍 언어입니다.
  • Node.js 및 NPM
    • Gemini CLI가 작성된 프로그래밍 언어입니다.
  • git
    • 평가 중인 스킬 저장소의 사본을 가져오는 데 사용됩니다.

3. 평가할 기술 식별

Agent Skills는 AI 에이전트에게 새로운 기능과 전문성을 제공하는 표준화된 방법입니다.

이 Codelab에서는 Google Agent Skills 저장소 (https://github.com/google/skills)를 예로 사용하지만, 에이전트 기술이 포함된 GitHub 저장소로 변경할 수 있습니다.

저장소의 콘텐츠를 기반으로 스킬 세트에 포함된 것으로 알려진 일련의 프롬프트 질문과 답변을 사용합니다. 이러한 질문과 답변은 소프트웨어 엔지니어링 에이전트가 제공된 기술로 주어진 질문에 답변할 수 있는지 확인하는 데 사용됩니다.

Google Agent Skills 저장소에는 Cloud Run과 관련된 기능이 포함되어 있으므로 다음과 같은 질문을 할 수 있습니다.

"내 로컬 머신에 있는 코드를 사용하여 Cloud Run에 서비스를 배포하려면 어떻게 해야 해?"

이 질문의 답은 'gcloud run deploy'입니다. 이 질문과 답변, 스킬의 GitHub 저장소가 평가자에게 제공되며, 평가자는 제공된 에이전트 스킬로 질문에 답변할 수 있는지 확인합니다.

4. 평가 실행

이 단계에서는 평가 예시를 실행합니다.

Python 종속 항목 설치

로컬 머신에서 다음을 실행하여 Python 종속 항목을 설치합니다.

pip install inspect-ai inspect-swe google-genai

기술 저장소 사본 만들기

Google Agent Skills 저장소의 로컬 사본을 google-skills 폴더에 만듭니다.

git clone https://github.com/google/skills.git --depth 1 google-skills

Python 애플리케이션 검토

실행할 평가는 다음과 같습니다.

from pathlib import Path
import os

from inspect_ai import Task, task
from inspect_ai.dataset import Sample
from inspect_ai.scorer import model_graded_qa
from inspect_swe import gemini_cli

if "GEMINI_API_KEY" not in os.environ:
  raise ValueError("Missing GEMINI_API_KEY. Please set GEMINI_API_KEY environment variable.")

@task
def skills_eval(agent_skills_folder, model="google/gemini-3.1-pro-preview"):

    # For the provided folder, find all folders containing skills
    skill_files = (Path.cwd() / agent_skills_folder).rglob("SKILL.md")
    all_skills = [str(s.parent) for s in skill_files]

    # Example question and answers
    questions = [
        Sample(
            input="How do I deploy a Cloud Run service?",
            target="gcloud run deploy"
        ),
        Sample(
            input="How can I connect to a Cloud SQL instance",
            target="cloud sql proxy"
        ),
        Sample(
            input="How can I list the roles available in IAM?",
            target="fortune | cowsay",
        ),
    ]

    return Task(
        dataset=questions,
        solver=gemini_cli(skills=all_skills),
        scorer=model_graded_qa(),
        sandbox="docker",
        model=model,
    )

이 파일을 skills-eval.py로 저장합니다.

이 코드에는 다음 로직을 사용하는 데코레이터 함수 skills_eval가 포함되어 있습니다.

  • 제공된 디렉터리를 가져와 해당 저장소 내의 모든 기능 파일 목록을 만듭니다.
  • 정적 질문과 답변 세트를 데이터 세트로 사용합니다.
    • 참고: 질문 중 하나에 의도적으로 잘못된 답변이 포함되어 있습니다.
  • 다음을 사용하여 평가를 실행합니다.
    • Gemini CLI를 솔버로 사용
    • 모델 그레이더 QA를 채점자로 사용
    • Docker를 샌드박스로 사용
    • Gemini Pro 3.1을 모델로 사용합니다.

다음 단계에서는 검사를 사용하여 이 평가를 실행합니다.

평가 실행

평가를 실행하려면 다음 명령어를 사용합니다.

inspect eval skills-eval.py -T agent_skills_folder=google-skills

이 평가를 처음 실행하면 Docker 컨테이너가 다운로드되고 Node.JS 및 Python 종속 항목이 설치됩니다. 네트워크 연결에 따라 완료하는 데 시간이 걸립니다. 평가를 다시 실행하면 이 설정이 캐시됩니다.

다운로드 후 Inspect에서 평가를 실행합니다. 터미널 내에 대화형 인터페이스가 표시되어 평가가 진행되는 동안 상호작용할 수 있습니다.

실행 중인 태스크

평가 중에 '샘플 실행'을 클릭하여 현재 진행 상황을 확인하거나 프로세스를 취소할 수 있습니다.

샘플 실행

다음 단계에서는 결과를 검토합니다.

5. 결과 보기 및 해석

평가가 완료되면 평가 결과를 확인할 수 있습니다.

결과 보기

평가에서 .eval 파일을 logs/ 폴더에 썼습니다. 이 파일은 바이너리 파일이며 직접 볼 수 없습니다.

평가 결과를 보려면 검사 뷰어를 사용하세요.

inspect view

이렇게 하면 http://127.0.0.1:7575에 웹 서버가 생성됩니다. 이 URL을 열어 결과를 확인합니다.

뷰 검사

결과 해석

이 평가에서는 모델 그레이더를 사용했으며, 다음 등급이 부여됩니다.

  • 'C': 완료
    • 답이 완전히 정확함
  • 'P': 부분
    • 대답이 대부분 정확함
  • 'I': 불완전한
    • 정답이 아닙니다.

이 Codelab에는 의도적으로 잘못된 답변이 하나 있으며, 'I' (불완전)로 표시되고 일반적인 정확도를 0.667 (3개 중 2개 정답)로 낮춥니다.

탭을 클릭하면 사용된 방법, 사용된 토큰, 평가에 관한 기타 정보에 대한 추가 정보를 확인할 수 있습니다.

6. 평가 연장

이 평가를 변경하여 범위를 확장할 수 있습니다.

추가 질문 제공

기술이 여러 개인 저장소의 경우 기술 저장소의 콘텐츠를 기반으로 질문과 답변을 더 추가해 보세요. 검사에서는 CSV, JSON, JSON Line 형식의 기본 제공 데이터 세트 리더를 비롯하여 파일을 이러한 데이터 세트로 사용하는 것을 지원합니다.

테스트 중인 상담사 기술 업데이트

Agent Skills 저장소가 업데이트되면 코드의 로컬 사본을 업데이트하고 새 정보를 기준으로 평가를 다시 실행할 수 있습니다. 이를 통해 시간이 지남에 따라 스킬의 실적을 추적할 수 있습니다. 에이전트 기능이 업데이트되면 로컬 사본에서 git pull를 실행하여 코드를 업데이트한 다음 평가를 다시 실행하여 변경사항을 확인합니다.

다른 스코어러 사용

이 Codelab에서는 모델 등급 스코어러를 사용했습니다. Inspect는 여러 기본 제공 스코어러를 제공하며 자체 맞춤 스코어러를 만들 수 있는 옵션도 제공합니다.

다양한 솔버 모델 사용

이 Codelab에서는 Gemini 3.1 Pro를 솔버 모델로 사용했습니다. 코드를 변경하지 않고 모델 이름을 명령줄 매개변수로 제공하여 이를 변경할 수 있습니다. 다음 명령어를 사용하여 다른 Gemini 모델로 평가를 다시 실행할 수 있습니다.

inspect eval skills-eval -T agent_skills_folder=google-skills \
  -T model=google/gemini-3.1-flash-live-preview

이 '작업 인수'는 검사 뷰어에 표시되므로 평가를 실행하는 데 사용된 인수를 추적할 수 있습니다.

다양한 기술 평가

이 Codelab에서는 Google 에이전트 기술 저장소를 평가할 기술로 사용했습니다.

다양한 기능 저장소를 평가할 수 있지만 질문과 답변도 이에 맞게 업데이트해야 합니다. 예를 들어 Flutter Agent Skills는 Cloud Run 관련 질문에 대한 답변을 제공하지 않습니다.

7. 축하합니다

오픈소스 프레임워크를 사용하여 스킬에 대한 평가를 실행하는 방법과 질문 및 답변 평가 도구에서 평가 질문으로 사용할 프롬프트를 작성하는 방법을 배웠습니다.