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) 중 어디의 문제인지 분류한다.
대상 제품
참고 문서
Plugin 시스템별 참고 자료는_references/ 디렉토리에 있다.
실행 루프
미션은 한 번 실행으로 끝나지 않는다. 통과할 때까지 아래 루프를 반복한다.역할 분리
실패 보고 형식
develop 환경
프로덕션 배포 전에 develop 기준으로 E2E 테스트를 수행한다.
Plugin 설치 후 MCP URL을 develop(
https://vox-mcp-develop.fly.dev/mcp)으로 바꿔서 테스트하면 된다.
실행 Runbook
미션 실행 시 아래 순서를 따른다. 각 미션이 독립적으로 실행 가능하게 유지한다.1. 환경 준비
- 오케스트레이터 세션: vox-mono 작업 디렉토리의 메인 Claude Code 세션. 세 레포(
docs,skills,mcp) 모두에 접근 가능. - 테스트 계정: vox.ai 테스트 전용 계정 1개(구매/결제 가능 상태). 프로덕션 고객 데이터와 섞이지 않도록 별도 워크스페이스를 쓴다.
- 테스트 전화번호: 수신 가능한 개인 번호 1개. Mission 완료 시 실제 통화가 걸려온다.
- MCP 환경: 프로덕션은
https://mcp.tryvox.co/mcp, develop 검증은https://vox-mcp-develop.fly.dev/mcp. - 세션 격리: 테스트 에이전트는 vox-mono 소스를 볼 수 없는 상태에서 실행한다. 오케스트레이터 세션의 Agent tool로 새 서브에이전트를 spawn하고, 브리핑에 공개 URL(
https://docs.tryvox.co/llms.txt)만 제공한다.
2. 미션 실행
- 오케스트레이터가 Mission N 브리핑을 준비하고
[CLIENT],[TEST_PHONE_NUMBER]같은 변수를 치환한다. - 서브에이전트를 spawn한다. 경로별로 AI 앱이 달라야 하므로 각 경로는 별도 실행 lane을 사용한다:
- 경로 1A(Claude Code): 동일 Claude Code 인스턴스의 subagent
- 경로 1B(Codex): 별도 Codex 세션(수동 실행 후 transcript 수집)
- 경로 1C(Cowork): Cowork 앱에서 수동 실행 후 transcript 수집
- 서브에이전트가 최종 보고를 반환하면 오케스트레이터가 기록한다.
3. 결과 기록
각 실행 결과는domains/voxai/docs/_references/test-runs/<YYYY-MM-DD>/<mission-id>-<path>.md에 남긴다(커밋하지 않을 수도 있음, gitignore 정책은 별도 판단).
- 통과 시: 체크리스트 + 각 step의 실제 명령/응답 요약
- 실패 시: “실패 보고” 섹션(도달 단계·막힌 지점·에러·시도한 우회·원인 추정)을 그대로 복사
4. 원인 분류 → 수정 → 재실행
실패 보고의원인 추정을 기준으로 수정 대상 레포를 정한다. 수정 범위가 여러 레포에 걸치면 레포별 별도 커밋으로 처리한다. 동일 미션을 다시 spawn해 통과 여부만 본다.
5. Pass/Fail 종합 판정
한 미션의 모든 경로가 통과해야 미션이 통과한 것으로 본다. 한 경로만 통과한 상태에서는 미션을 close하지 않는다.Mission 1: Plugin 설치 → 첫 아웃바운드 콜
목표
LLM 에이전트가 vox.ai 문서를 따라 plugin을 설치하고, 에이전트를 생성한 뒤, 아웃바운드 테스트 콜을 발신하기까지의 전체 온보딩 플로우를 검증한다.온보딩 경로
이 미션은 3개 클라이언트 각각에서 성공해야 한다. 각 경로별로 독립적으로 테스트한다.핵심 판정 기준
MCP 직접 연결 명령(claude mcp add ...)을 실행했다면 실패다. 세 경로 모두 Plugin 설치를 통해.mcp.json이 자동으로 MCP를 등록해야 한다. 에이전트가 docs에서claude mcp add명령을 찾아 실행하는 것은 plugin 온보딩 경로가 아닌 수동 연결이므로 실패로 판정한다.
전제조건
에이전트 브리핑
아래는 테스트 LLM 에이전트에게 전달할 미션 프롬프트다.[CLIENT]와 [TEST_PHONE_NUMBER]는 실행 시 치환한다.
검증 단계
Step 1: 진입점 접근
Step 2: Plugin 설치
경로별로 기대하는 행동이 다르다. 경로 1A (Claude Code):
경로 1B (Codex):
경로 1C (Cowork):