Back to all posts

빠르게 변하는 API에 맞춰 AI 에이전트 스킬을 자동으로 테스트하는 방법

vm0-ai/vm0-skills 저장소에서 우리는 다양한 서드파티 SaaS 플랫폼과 연동하기 위한 수십 개의 스킬을 개발해 왔습니다. 이 스킬들 덕분에 Claude Code와 Codex 에이전트는 GitHub, Slack, Discord를 비롯한 수많은 서비스와 매끄럽게 상호작용할 수 있습니다.

이러한 연동은 대단히 유용하지만, 동시에 만만치 않은 테스트 과제를 안겨 줍니다. 제대로 된 테스트 인프라가 없다면, 스킬이 기대대로 동작하는지 신뢰성 있게 검증하거나 서드파티 API가 변경될 때 발생하는 호환성 문제를 감지하기 어렵습니다.

서드파티 AI 에이전트 스킬을 테스트하기 어려운 이유

서드파티 연동을 테스트하는 일은 본질적으로 까다롭습니다. 각 스킬은 예고 없이 바뀔 수 있는 외부 API에 의존하므로, 신뢰성을 유지하려면 끊임없이 주의를 기울여야 합니다. 전통적인 단위 테스트만으로는 부족할 때가 많습니다. 실제 API의 동작, 인증 흐름, 그리고 운영 환경에서만 드러나는 엣지 케이스를 그대로 재현할 수 없기 때문입니다.

포괄적인 테스트가 없으면 다음과 같은 핵심 문제들이 해결되지 않은 채 남습니다.

이는 상당한 유지보수 부담을 낳고, 운영 워크플로에 영향을 줄 수 있는 잠재적 신뢰성 문제로 이어집니다.

AI 에이전트로 실제 환경에서 AI 에이전트 스킬 테스트하기

이 스킬들은 애초에 Claude Code와 Codex 에이전트를 위해 설계되었으므로, 가장 자연스럽고 효과적인 접근법은 바로 그 동일한 에이전트로 스킬을 테스트하는 것입니다. 이렇게 하면 도구가 본래 의도된 환경에서 스스로를 테스트하는 자기 검증 생태계가 만들어집니다.

VM0는 Claude Code와 Codex 에이전트를 안정적으로 실행하는 데 필요한 클라우드 인프라를 제공하므로, 이러한 테스트 전략을 구현하기에 이상적인 플랫폼입니다.

AI 에이전트 스킬 테스트를 위한 엔드 투 엔드 자동화 워크플로

스킬 자동 테스트를 위한 전체 워크플로는 아래와 같습니다. 이 에이전트는 저장소의 모든 스킬을 체계적으로 테스트하고, 종합 보고서를 생성하며, 여러 채널을 통해 팀에 알립니다.

# Skills Tester Agent

## Overview

This agent performs automated testing of all skills in the vm0-skills repository.

## Critical Requirements

**MANDATORY: Complete All Tests Without Exception**

- No matter how long the task takes, it MUST be completed in full
- Continue until ALL items in `TODO.md` are tested - no early termination
- **NO skipping tasks** - every skill must be tested
- **NO selective testing** - do not cherry-pick which skills to test
- **Every example MUST have a result** - each example command in every skill's SKILL.md must be executed and recorded
- If a test fails, record the failure and continue to the next test
- Do not stop or pause until the entire test suite is complete

## Instructions

1. **Clone and Initialize**
   - Clone the repo `vm0-ai/vm0-skills`
   - Create a `TODO.md` file to track testing progress

2. **Generate Todo List**
   - For each skill folder in the repo, add a todo item to `TODO.md`

3. **Test Each Skill**
   - Create a sub-agent for each skill to test
   - Each sub-agent should:
     - Verify all required environment variables exist
     - Test each example command in the skill's SKILL.md
     - Write a temporary test result markdown file
     - Record whether the test passed, and specifically note any shell command failures or jq parsing errors

4. **Summarize Results**
   - Aggregate all test results into `result.md`

5. **Update README**
   - Based on `result.md`, update the `README.md`
   - Update or insert a skill list section with:
     - Brief description of each skill's capabilities
     - Test status (passed/failed)

6. **Commit and Push**
   - Only commit `README.md`
   - Push to the repository using `GITHUB_TOKEN` for authentication

7. **Report Issues**
   - For skills with test failures, create a GitHub issue summarizing all problems

8. **Notify Slack**
   - Post a message to Slack channel `#dev` with:
     - Total number of skills
     - Number of passed tests
     - Number of failed tests
     - Brief summary of issues
     - Link to the GitHub issue (if created)

9. **Notify Discord**
   - Post a message to the Discord `skills` channel with:
     - Confirmation that routine testing is complete
     - Number of skills that passed
     - Total number of skills tested

vm0.yaml로 에이전트 구성하기

다음으로, VM0가 이 워크플로를 실행하도록 스케줄을 잡기만 하면 됩니다. 에이전트 컨테이너 구성을 기술하기 위해 vm0.yaml 파일을 생성하세요. 이 파일에는 에이전트에 필요한 스킬, 주입할 환경 변수, 그리고 테스트 워크플로를 실행하는 방법이 명시됩니다.

version: "1.0"

agents:
  skills-tester:
    image: skills-tester:latest
    provider: claude-code
    instructions: AGENTS.md
    skills:
      - https://github.com/vm0-ai/vm0-skills/tree/main/github
      - https://github.com/vm0-ai/vm0-skills/tree/main/slack
      - https://github.com/vm0-ai/vm0-skills/tree/main/discord
    environment:
      CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
      DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }}
      # ... additional environment variables as needed

전체 구성 파일은 vm0-skills/.vm0/vm0.yaml을 참고하세요. 이 예시에서는 간결함을 위해 일부 환경 변수를 생략했습니다.

이 에이전트 구성에는 세 가지 필수 스킬이 포함되어 있습니다.

Docker 이미지 생성하기

또한 필요한 의존성, 특히 에이전트가 저장소 작업에 사용하는 GitHub CLI(gh)를 설치하는 Docker 이미지도 구성해야 합니다.

Dockerfile을 생성하세요.

FROM node:20-slim

RUN apt-get update && apt-get install -y \\
    git \\
    curl \\
    python3 \\
    python3-pip \\
    python3-venv \\
    jq \\
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL <https://cli.github.com/packages/githubcli-archive-keyring.gpg> | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] <https://cli.github.com/packages> stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \\
    && apt-get update \\
    && apt-get install -y gh \\
    && rm -rf /var/lib/apt/lists/*

RUN npm install -g @anthropic-ai/claude-code

이 Dockerfile은 다음을 포함하는 경량 컨테이너를 만듭니다.

AI 스킬 테스트 시스템 완성하기

이게 전부입니다! AGENTS.md, Dockerfile, vm0.yaml 이 세 파일을 갖추면 완전한 자동 테스트 시스템이 완성됩니다. 전체 구현은 vm0-skills/.vm0에서 확인할 수 있습니다.

에이전트를 빌드하고 배포하려면 프로젝트 디렉터리에서 다음 명령을 실행하세요.

$ vm0 image build -f Dockerfile --name skills-tester
$ vm0 compose vm0.yaml

첫 번째 명령은 필요한 모든 의존성을 포함한 Docker 이미지를 빌드합니다. 두 번째 명령은 에이전트 구성을 VM0 플랫폼에 등록합니다.

워크플로 실행하기

이제 단 하나의 명령으로 전체 테스트 워크플로를 실행할 수 있습니다.

$ vm0 run skills-tester "do the job"

에이전트는 자율적으로 다음을 수행합니다.

  1. vm0-skills 저장소를 클론합니다
  2. 모든 스킬에 대한 테스트 체크리스트를 생성합니다
  3. 각 스킬에 대한 테스트를 체계적으로 실행합니다
  4. 종합 결과를 취합합니다
  5. 저장소 README를 업데이트합니다
  6. 실패한 항목에 대해 GitHub 이슈를 생성합니다
  7. Slack과 Discord로 알림을 보냅니다

단계별로 디버깅하기

워크플로를 점진적으로 디버깅하거나 먼저 단일 스킬만 테스트하고 싶다면, 다음과 같이 목적에 맞춘 프롬프트를 사용할 수 있습니다.

$ vm0 run skills-tester "Only do the first step, using a single skill."

에이전트가 첫 번째 단계를 완료한 뒤에는, 출력에 제공된 세션 ID를 사용해 세션을 이어갈 수 있습니다.

$ vm0 run continue SESSION_ID "Do the next step."

이 대화형 접근 방식을 통해 다음을 할 수 있습니다.

결과 및 알림

워크플로가 완료되면 여러 채널에 걸쳐 테스트 결과를 확인해 주는 알림을 받게 됩니다.

discord-test-notification.png 테스트 완료 요약을 보여 주는 Discord 커뮤니티 알림

slack-test-notification.png 상세한 테스트 결과가 담긴 Slack 팀 알림

테스트에 실패한 스킬이 있으면, 에이전트가 자동으로 종합적인 실패 세부 정보를 담은 GitHub 이슈를 생성합니다. 생성되는 이슈 형식의 예시는 Skill Test Failures - Issue #2를 참고하세요.

AI 에이전트 스킬 테스트 자동화에서 얻은 핵심 교훈

VM0 에이전트로 스킬 테스트를 자동화하면 다음과 같은 중요한 이점을 얻을 수 있습니다.

VM0의 클라우드 인프라와 Claude의 에이전트 역량을 활용하면, 유지보수 부담을 최소화하면서도 외부 서비스와의 안정적인 연동을 유지할 수 있습니다. 이 접근 방식은 스킬 테스트를 수작업의 오류투성이 과정에서 완전히 자동화된 품질 보증 시스템으로 탈바꿈시킵니다.

지금 VM0로 시작하세요

AI 에이전트로 직접 워크플로를 자동화할 준비가 되셨나요? VM0를 사용하면 운영 환경에 바로 투입할 수 있는 에이전트를 몇 주가 아닌 몇 분 만에 배포할 수 있습니다.

VM0로 만들 수 있는 것들

vm0.ai를 방문해 무료 계정을 만들고 오늘 바로 첫 에이전트를 배포하세요. Discord 커뮤니티에 참여해 다른 빌더들과 소통하고, 워크플로를 공유하며, 팀의 도움을 받아 보세요.

자동화된 워크플로의 미래를 만들어 가기 시작하세요.

Related Articles

Stay in the loop

// Get the latest insights on AI teammates and collaboration.

SubscribeJoin Discord