Skip to main content

LLM Agent E2E Test Missions

이 문서는 vox.ai의 LLM-facing 제품(docs, MCP, skills/plugins)이 외부 LLM 에이전트 관점에서 정상 동작하는지 검증하는 E2E 테스트 미션을 정의한다.

테스트 원칙

  • 테스트 에이전트는 vox.ai 내부 코드를 모른다. 공개된 문서와 도구만 사용한다.
  • 진입점은 항상 https://docs.tryvox.co/llms.txt 이다.
  • 각 미션은 독립적으로 수행 가능해야 한다.
  • 실패 지점은 제품(docs/MCP/skills) 중 어디의 문제인지 분류한다.

대상 제품

제품소스배포 URL
Docsdomains/voxai/docs/https://docs.tryvox.co
Skills/Plugindomains/voxai/skills/https://github.com/vox-public/vox-skills
MCPdomains/voxai/mcp/https://mcp.tryvox.co

참고 문서

Plugin 시스템별 참고 자료는 _references/ 디렉토리에 있다.
파일내용
_references/claude-code-plugins.mdClaude Code plugin 구조, 설치, 매니페스트 스키마
_references/codex-plugins.mdCodex plugin 구조, 마켓플레이스, Claude Code와의 차이
_references/cowork-plugins.mdClaude Cowork 커넥터 등록, 제약사항

실행 루프

미션은 한 번 실행으로 끝나지 않는다. 통과할 때까지 아래 루프를 반복한다.
┌─────────────────────────────────────────────────┐
│  1. 미션 하달                                     │
│     오케스트레이터가 에이전트 브리핑을 준비한다          │
│                     ↓                            │
│  2. 에이전트 spawn                                │
│     격리된 subagent를 생성하고 미션 프롬프트를 전달한다  │
│                     ↓                            │
│  3. 실패 보고 수거                                 │
│     에이전트가 막힌 지점, 원인, 에러를 수거한다         │
│                     ↓                            │
│  4. 원인 분류 → 코드 수정                           │
│     Docs / Skills / MCP 중 해당 레포를 수정한다      │
│                     ↓                            │
│  5. 배포                                         │
│     수정한 레포를 배포한다                           │
│                     ↓                            │
│  6. 재테스트                                      │
│     동일 미션으로 다시 에이전트를 spawn한다            │
│     → 통과하면 종료, 실패하면 3번으로 복귀            │
└─────────────────────────────────────────────────┘

역할 분리

역할누구하는 일
오케스트레이터사람 + 메인 Claude Code 세션미션 하달, 실패 보고 분석, 코드 수정, 배포 판단
테스트 에이전트spawn된 subagent미션 수행, 막힌 지점 보고. 내부 코드 접근 불가

실패 보고 형식

## 실패 보고

### 도달한 단계
Step N: (단계 이름)

### 막힌 지점
(구체적으로 어떤 행동을 시도했고 어디서 막혔는지)

### 에러 내용
(에러 메시지, HTTP 상태 코드, 도구 응답 등 원문)

### 시도한 우회
(다른 방법을 시도했다면 무엇을, 왜 실패했는지)

### 원인 추정
Docs / Skills / MCP / Infra 중 하나 + 이유

develop 환경

프로덕션 배포 전에 develop 기준으로 E2E 테스트를 수행한다.
제품프로덕션develop
Docshttps://docs.tryvox.comintlify dev (로컬)
Skills/Pluginmain branchmain branch (직접 push)
MCPhttps://mcp.tryvox.co/mcphttps://vox-mcp-develop.fly.dev/mcp
Plugin 설치 후 MCP URL을 develop(https://vox-mcp-develop.fly.dev/mcp)으로 바꿔서 테스트하면 된다.

Mission 1: Plugin 설치 → 첫 아웃바운드 콜

목표

LLM 에이전트가 vox.ai 문서를 따라 plugin을 설치하고, 에이전트를 생성한 뒤, 아웃바운드 테스트 콜을 발신하기까지의 전체 온보딩 플로우를 검증한다.

온보딩 경로

이 미션은 3개 클라이언트 각각에서 성공해야 한다. 각 경로별로 독립적으로 테스트한다.
경로클라이언트plugin 설치 방법MCP 등록 방식
1AClaude Codeclaude plugin add vox-ai.mcp.json 자동 등록
1BCodexgit clone → /plugins → 마켓플레이스에서 설치.mcp.json 자동 등록
1CClaude CoworkCowork 앱 Browse plugins 또는 커스텀 plugin 업로드.mcp.json 자동 등록

핵심 판정 기준

MCP 직접 연결 명령(claude mcp add ...)을 실행했다면 실패다. 세 경로 모두 Plugin 설치를 통해 .mcp.json이 자동으로 MCP를 등록해야 한다. 에이전트가 docs에서 claude mcp add 명령을 찾아 실행하는 것은 plugin 온보딩 경로가 아닌 수동 연결이므로 실패로 판정한다.

전제조건

항목요구사항
런타임경로별 클라이언트 (Claude Code / Codex / Cowork)
인증vox.ai 계정 (OAuth 또는 API 키)
전화번호테스트 수신용 전화번호 1개
네트워크docs.tryvox.co, mcp.tryvox.co, github.com 접근 가능

에이전트 브리핑

아래는 테스트 LLM 에이전트에게 전달할 미션 프롬프트다. [CLIENT][TEST_PHONE_NUMBER]는 실행 시 치환한다.
당신은 vox.ai를 처음 사용하는 개발자입니다.
현재 [CLIENT]를 사용하고 있습니다.

아래 문서를 시작점으로 삼아 음성 에이전트를 만들고 테스트 통화까지 완료하세요.

진입점: https://docs.tryvox.co/llms.txt

목표:
1. vox.ai plugin을 설치하세요.
2. 에이전트를 만들 수 있는 도구(MCP)에 연결되었는지 확인하세요.
3. 간단한 고객 상담 에이전트를 만드세요.
4. 만든 에이전트로 [TEST_PHONE_NUMBER]에 테스트 전화를 거세요.

규칙:
- 위 진입점 문서에서 출발하여 필요한 정보를 스스로 찾으세요.
- 문서에 없는 정보는 추측하지 마세요.
- plugin 설치를 통해 MCP 연결이 자동으로 되는 것이 이상적입니다.
- 각 단계를 완료할 때마다 결과를 기록하세요.
- 막히는 부분이 있으면 어디서 왜 막혔는지 상세히 기록하세요.

최종 보고:
- 모든 단계를 완료했으면 각 단계의 결과를 요약하세요.
- 막힌 단계가 있으면 아래 형식으로 보고하세요:

  ## 실패 보고
  ### 도달한 단계
  ### 막힌 지점
  ### 에러 내용
  ### 시도한 우회
  ### 원인 추정 (Docs / Skills / MCP / Infra 중 하나 + 이유)

검증 단계

Step 1: 진입점 접근

항목내용
행동https://docs.tryvox.co/llms.txt fetch
성공 기준200 응답, 문서 인덱스 수신
실패 → Docsllms.txt 미배포 또는 경로 오류

Step 2: Plugin 설치

경로별로 기대하는 행동이 다르다. 경로 1A (Claude Code):
항목내용
행동docs에서 plugin 설치 명령을 찾아 실행
기대 명령npx skills add https://github.com/vox-public/vox-skills --skill vox-best-practice
성공 기준plugin 설치 완료, skill 목록에 vox 관련 skill 등록
실패 → Docs설치 명령을 문서에서 찾지 못함
실패 → SkillsGitHub 레포 접근 불가, 매니페스트 오류, skill 미등록
경로 1B (Codex):
항목내용
행동docs에서 Codex plugin 설치 방법을 찾아 실행
기대 행동/plugins에서 vox.ai 검색 또는 마켓플레이스 추가 후 설치
성공 기준plugin 설치 완료, vox.ai 도구 사용 가능
실패 → DocsCodex 경로 안내 누락
실패 → Skills.codex-plugin/plugin.json 미제공 또는 구조 오류
경로 1C (Cowork):
항목내용
행동docs에서 Cowork plugin 설치 방법을 찾아 실행
기대 행동Cowork 앱 Browse plugins에서 설치 또는 커스텀 plugin 업로드
성공 기준plugin 설치 완료, 도구 호출 가능
실패 → DocsCowork plugin 설치 안내 누락 또는 불명확
실패 → Skillsplugin 파일 구조 오류, Cowork 호환 문제

Step 3: MCP 자동 등록 확인

항목내용
행동plugin 설치 후 MCP 도구 사용 가능 여부 확인
성공 기준list_agents 등 vox MCP 도구가 자동으로 사용 가능
자동 실패 조건에이전트가 claude mcp add 명령을 실행함 (모든 경로)
실패 → Skills.mcp.json 누락 또는 자동 등록 실패
실패 → MCP서버 다운, 도구 미노출

Step 4: 에이전트 생성

항목내용
행동create_agent MCP 도구 호출
성공 기준agent_id 반환, get_agent로 조회 성공
실패 → Skillsonboarding skill의 가이드 부족
실패 → MCPcreate_agent schema 불명확, API 에러

Step 5: 아웃바운드 콜 발신

항목내용
행동create_call MCP 도구로 테스트 번호에 전화 발신
성공 기준call_id 반환, 실제 전화 수신
실패 → MCP발신 번호 없음 안내 부족, 파라미터 설명 부족
실패 → InfraSIP/텔레포니 문제 (이 테스트 범위 밖)

실패 원인 분류

분류수정 대상배포 방법
Docsdomains/voxai/docs/Mintlify 자동 배포 (push to main)
Skillsdomains/voxai/skills/GitHub push (vox-public/vox-skills)
MCPdomains/voxai/mcp/Fly.io 배포
Infra범위 밖별도 대응

경로별 체크리스트

경로 1A: Claude Code

[ ] Step 1: llms.txt 접근 — 200 응답
[ ] Step 2: Plugin 설치 — skill 목록에 vox 등록
[ ] Step 3: MCP 자동 등록 — claude mcp add 실행 없이 도구 사용 가능
[ ] Step 4: 에이전트 생성 — agent_id 반환
[ ] Step 5: 아웃바운드 콜 — 전화 수신

경로 1B: Codex

[ ] Step 1: llms.txt 접근 — 200 응답
[ ] Step 2: Plugin 설치 — Codex plugin directory에서 설치 성공
[ ] Step 3: MCP 자동 등록 — 수동 설정 없이 도구 사용 가능
[ ] Step 4: 에이전트 생성 — agent_id 반환
[ ] Step 5: 아웃바운드 콜 — 전화 수신

경로 1C: Claude Cowork

[ ] Step 1: llms.txt 접근 — 200 응답
[ ] Step 2: Plugin 설치 — Cowork 앱에서 plugin 설치 성공
[ ] Step 3: MCP 자동 등록 — 수동 설정 없이 도구 사용 가능
[ ] Step 4: 에이전트 생성 — agent_id 반환
[ ] Step 5: 아웃바운드 콜 — 전화 수신

Mission 2: (미정)

Mission 3: (미정)