vm0-ai/vm0-skills 저장소에서 우리는 다양한 서드파티 SaaS 플랫폼과 연동하기 위한 수십 개의 스킬을 개발해 왔습니다. 이 스킬들 덕분에 Claude Code와 Codex 에이전트는 GitHub, Slack, Discord를 비롯한 수많은 서비스와 매끄럽게 상호작용할 수 있습니다.
이러한 연동은 대단히 유용하지만, 동시에 만만치 않은 테스트 과제를 안겨 줍니다. 제대로 된 테스트 인프라가 없다면, 스킬이 기대대로 동작하는지 신뢰성 있게 검증하거나 서드파티 API가 변경될 때 발생하는 호환성 문제를 감지하기 어렵습니다.
서드파티 AI 에이전트 스킬을 테스트하기 어려운 이유
서드파티 연동을 테스트하는 일은 본질적으로 까다롭습니다. 각 스킬은 예고 없이 바뀔 수 있는 외부 API에 의존하므로, 신뢰성을 유지하려면 끊임없이 주의를 기울여야 합니다. 전통적인 단위 테스트만으로는 부족할 때가 많습니다. 실제 API의 동작, 인증 흐름, 그리고 운영 환경에서만 드러나는 엣지 케이스를 그대로 재현할 수 없기 때문입니다.
포괄적인 테스트가 없으면 다음과 같은 핵심 문제들이 해결되지 않은 채 남습니다.
- 기능 검증: 실제 사용 시나리오에서 스킬이 의도대로 동작하는지 확인할 수 없습니다
- 호환성 깨짐 감지: 서드파티 SaaS API가 변경될 때, 호환성 문제를 자동으로 식별할 방법이 없습니다
- 인증 검증: OAuth 흐름, 토큰 갱신 메커니즘, 권한 범위는 지속적으로 검증해야 합니다
- 오류 처리: 외부 서비스가 사용 불가능할 때도 우아하게 동작이 저하되도록 보장해야 합니다
이는 상당한 유지보수 부담을 낳고, 운영 워크플로에 영향을 줄 수 있는 잠재적 신뢰성 문제로 이어집니다.
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을 참고하세요. 이 예시에서는 간결함을 위해 일부 환경 변수를 생략했습니다.
이 에이전트 구성에는 세 가지 필수 스킬이 포함되어 있습니다.
- GitHub 스킬: 저장소 작업, 이슈 생성, README 업데이트용
- Slack 스킬: 팀 채널에 테스트 결과를 게시하기 위함
- Discord 스킬: 테스트 완료에 대한 커뮤니티 알림용
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은 다음을 포함하는 경량 컨테이너를 만듭니다.
- Node.js 20: Claude Code 실행 환경
- Git: 버전 관리 작업
- GitHub CLI: GitHub API 상호작용을 간소화
- Python 3: 스킬 테스트 스크립트 실행용
- jq: 셸 명령에서의 JSON 파싱
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"
에이전트는 자율적으로 다음을 수행합니다.
- vm0-skills 저장소를 클론합니다
- 모든 스킬에 대한 테스트 체크리스트를 생성합니다
- 각 스킬에 대한 테스트를 체계적으로 실행합니다
- 종합 결과를 취합합니다
- 저장소 README를 업데이트합니다
- 실패한 항목에 대해 GitHub 이슈를 생성합니다
- 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 커뮤니티 알림
상세한 테스트 결과가 담긴 Slack 팀 알림
테스트에 실패한 스킬이 있으면, 에이전트가 자동으로 종합적인 실패 세부 정보를 담은 GitHub 이슈를 생성합니다. 생성되는 이슈 형식의 예시는 Skill Test Failures - Issue #2를 참고하세요.
AI 에이전트 스킬 테스트 자동화에서 얻은 핵심 교훈
VM0 에이전트로 스킬 테스트를 자동화하면 다음과 같은 중요한 이점을 얻을 수 있습니다.
- 지속적인 검증: 서드파티 API의 호환성 깨짐을 운영에 영향을 주기 전에 즉시 포착합니다
- 현실적인 테스트 환경: 에이전트가 스킬이 실제로 사용되는 바로 그 맥락에서 테스트하므로, 테스트와 운영 사이의 간극이 사라집니다
- 수작업 제로: 한 번 구성해 두면 테스트 워크플로가 일정에 따라 자동으로 실행되며, 사람의 개입이 필요 없습니다
- 포괄적인 커버리지: 모든 스킬이 체계적으로 테스트되어 빠뜨리는 부분이 없습니다
- 팀 인지: 다중 채널 알림으로 모두가 테스트 결과와 문제를 항상 파악할 수 있습니다
VM0의 클라우드 인프라와 Claude의 에이전트 역량을 활용하면, 유지보수 부담을 최소화하면서도 외부 서비스와의 안정적인 연동을 유지할 수 있습니다. 이 접근 방식은 스킬 테스트를 수작업의 오류투성이 과정에서 완전히 자동화된 품질 보증 시스템으로 탈바꿈시킵니다.
지금 VM0로 시작하세요
AI 에이전트로 직접 워크플로를 자동화할 준비가 되셨나요? VM0를 사용하면 운영 환경에 바로 투입할 수 있는 에이전트를 몇 주가 아닌 몇 분 만에 배포할 수 있습니다.
VM0로 만들 수 있는 것들
-
자동화된 테스트 파이프라인
이 스킬 테스터처럼 예약된 테스트 작업을 실행해 서드파티 API의 호환성 깨짐을 조기에 포착하세요.
-
콘텐츠 생성 워크플로
리서치, 메모, 원본 입력을 일일이 복사-붙여넣기 하지 않고도 블로그 글, 문서, 릴리스 노트로 바꿔 보세요.
-
데이터 처리 에이전트
여러 소스에서 데이터를 가져와 정제한 뒤 하위 단계로 전달하며, 실패와 재시도를 명시적으로 처리하세요.
-
고객 지원 자동화
들어오는 요청을 분류하고, 답변 초안을 작성하며, 필요할 때 엣지 케이스를 사람에게 넘기세요.
-
코드 리뷰 및 분석
풀 리퀘스트를 검토하고, 잠재적 문제를 표시하며, 사람이 코드를 보기 전에 기본 규칙을 적용하세요.
vm0.ai를 방문해 무료 계정을 만들고 오늘 바로 첫 에이전트를 배포하세요. Discord 커뮤니티에 참여해 다른 빌더들과 소통하고, 워크플로를 공유하며, 팀의 도움을 받아 보세요.
자동화된 워크플로의 미래를 만들어 가기 시작하세요.


