멀티 에이전트로 테스트 자동화하기: Claude Subagents 디벨롭 과정 (2)

소개

안녕하세요!

오늘은 Claude Code Subagets를 활용하여 테스트 자동화 멀티에이전트 구축하는 2번째 단계입니다.
첫번째 시도에서는, (1) 테스트 시나리오 설계 에이전트 (2)테스트 수행 에이전트 이렇게 두가지에이전트를 구축하여 워크플로우를 구성했어요. 에이전트가 '어떻게' 업무를 수행하는지, 그리고 실제 현업에 활용 가능한 수준으로 수행이 가능한지를 점검해보는 단계였어요.

하지만 제가 기대했던것과는 달리, 매우 다양한 문제들이 발생하더라고요...
(프롬프트가 명확하지 않아서도 한 몫 했던 것 같아요.) 예를 들어,

1. 테스트 시나리오를 원하는 수준 만큼 작성하지 못한다거나
2. 에이전트를 명확하게 언급하지 않으면 A에이전트가 -> B에이전트에게 수행하도록 하는 흐름이 끊긴다거나
3. 실제 화면 기반으로 테스트하는 것이 아닌, 예측해서 테스트를 수행한다거나
4. 테스트 시나리오를 매번 다른 양식과, 확장자로 만든다거나 등등 (+알파ㅋㅋ)

위 문제들을 해결하기 위해서 프롬프트를 정교하게 수정 해 나가고, 다양한 아티클 / 사례들을 찾아보면서 실제 서브 에이전트끼리의 협업(멀티에이전트)을 위한 수정 작업을 거쳤고 그 과정을 공유합니다.


🚩 Phase1 : 멀티에이전트 적용 프레임워크 정리

[Subagent 관련 참고 자료]

1) https://zachwills.net/i-managed-a-swarm-of-20-ai-agents-for-a-week-here-are-the-8-rules-i-learned/

2) https://www.youtube.com/watch?v=Gbsfjt8BQJs

🚀 멀티에이전트 구현 중요 요인

**각자 역할만 하고, 파일로 소통하고, 시간 넘으면 죽이고, 실패하면 체크포인트에서 재시작!

1. 전문화 (에이전트 당 하나의 역할만 주기)

✅ 올바른 예시:

scenario-agent: "시나리오 생성만"

ui-test-agent: "UI 테스트만"  

api-test-agent: "API 테스트만"

❌ 잘못된 예시:

general-agent: "시나리오도 만들고 테스트도 하고 리포트도 만들고"

2. 독립성 (완전 격리된 업무 수행)

# 각 터미널에서 독립 실행 (Git 또한 독립 수행/활용한다면)
Terminal 1: cd ../scenario-env && claude
Terminal 2: cd ../ui-test-env && claude  
Terminal 3: cd ../api-test-env && claude

3. 파일시스템 통신 (파일로 데이터 전달)

// ✅ 올바른 통신 방식
scenario-agent → scenarios.json 생성
ui-test-agent → scenarios.json 읽고 → results.json 생성  
report-agent → results.json 읽고 → report.html 생성

// ❌ 잘못된 통신 방식
scenario-agent → ui-test-agent에게 직접 Claude context 또는 메모리로 전달 (금지)

4. 모니터링 (실시간 감시) - 상위에이전트

🔍 실시간 체크사항:

- scenario-agent가 15분 넘게 돌고 있나? → 즉시 kill
- ui-test-agent가 API 테스트 하려고 하나? → 역할 위반, 즉시 kill  
- 5분간 같은 작업 반복하나? → 무한루프, 즉시 kill

5. 복구 (체크포인트 저장)

/ 에이전트 실패 시 자동 복구

agent 실패 → progress.json에 현재 상태 저장 
→ 새 에이전트 시작 → progress.json 읽고 이어서 진행

6. 시간 관리 (엄격한 타임아웃)-상위에이전트

⏰ 에이전트별 제한시간:
- scenario-agent: 15분 (초과시 kill)
- ui-test-agent: 5분/테스트 (초과시 kill)  
- api-test-agent: 3분/테스트 (초과시 kill)

🚨 즉시 중단 조건:
- 같은 작업 3번 반복
- 다른 에이전트 역할 침범
- 예상과 반대 방향 진행

🚩 Phase2 : 에이전트 재 작업

위 내용을 바탕으로 에이전트를 아래 과정에 따라 전면 수정하기로 했어요.
Claude와 대화하면서 에이전트 프롬프트 개선 방안을 찾고, 보완해 나갔습니다.
(실제 질의응답을 하면서 에이전트를 개선해 나갔기때문에, 터미널을 사용하지는 않고 해당 작업은 클로드 데스크탑으로 진행했어요)

[제공한 정보]
1) 예상과 달랐던 에이전트 수행 내용 정리 (개선필요 건 - 서론에 주로 정리한 것)
2) 적용해야 하는 프레임워크에 대한 아티클 링크 / 정보 제공


* 아래는 제가 클로드와 대화한 프롬프트를 요약 재정리한 버전입니다.
* 여러번 대화를 나눠서 진행했기 때문에, 필요한 내용만 수집


Claude Code 서브 에이전트로 테스트 자동화 시스템을 구축하고 있습니다. 시스템은 다음 3개 에이전트로 구성됩니다:

1. **시나리오 설계 에이전트**: 테스트 시나리오 생성
2. **테스터 에이전트**: 시나리오를 실행하는 테스트 수행자  
3. **마스터 오케스트레이터 에이전트**: 전체 로그 및 워크플로우 관리

## 발생하는 문제들

현재 다음과 같은 이슈들이 발생하고 있습니다:

1. **마스터 에이전트가 역할을 벗어남**: 다른 서브 에이전트를 잘못 사용하거나 본인이 직접 작업을 수행함
2. **시나리오 생성량 부족**: 시나리오 설계 에이전트가 원하는 만큼의 단위 테스트를 생성하지 않음
3. **테스터 에이전트의 독단적 행동**: 생성된 시나리오를 참조하긴 하지만 자신만의 방식으로 테스트를 진행함
4. **도구 사용 위반**: MCP(Model Context Protocol) 같은 실제 도구를 사용해야 하는데 가짜 데이터로만 테스트를 수행함

## 질문사항
1. **최적 구현 방식**: 테스트 에이전트를 멀티 에이전트로 구현하기 위한 가장 적합한 방식은 무엇인가요?
2. **프롬프팅 전략**: 각 에이전트가 역할을 벗어나지 않고 정확히 수행하도록 하는 프롬프팅 방법은 무엇인가요?

3. **참고 자료 활용**: [Zach Wills의 20 AI 에이전트 관리 경험 아티클](https://zachwills.net/i-managed-a-swarm-of-20-ai-agents-for-a-week-here-are-the-8-rules-i-learned/) 

https://lilys.ai/digest/5486974/5098098?s=1&noteVersionId=1421829&include_suggestion=true

두 개의 아티클에 있는 프레임워크를 최대한 적용하여 
안정적이고 효율적인 멀티 에이전트 테스트 시스템을 구축하고 싶습니다.


현재 문제에 대해서 분석/정리해주고

한국어 웹 사이트의 스크린 샷

에이전트 문서에 부족한 내용이 있다면, 대화를 주고받으며 에이전트 문서를 보완해 나갔습니다.
(ex. Playwirte mcp 강제 실행, 시나리오 설계 구체화 등)

한국 웹 사이트의 스크린 샷


그래서 최종적으로 에이전트에 대한 초안 버전이 나왔고 이를 바탕으로 클코랑 적용을 진행했어요.

☀︎ 정리하면,

  1. 이전에 있었던 문제점(시행착오) 정리 (별도로 정리)

  2. 멀티에이전트 적용이 필요한 프레임워크 정보를 제공 (참고해야 할 소스)

  3. 초안을 바탕으로 대화를 거쳐 개선작업을 거침 --->여기까지가 초안 작성을 완료

  4. 클코에 실제 에이전트 파일을 복붙해서 적용 + 파일시스템(폴더구조) 정리 요청

  5. 적용해나가면서 (3)작업 반복 (필요하다면 에이전트 재수정)


🚩 Phase3 : 에이전트 적용 및 수정루프 반복

이렇게 에이전트를 전면 수정하고, 다시 테스트를 적용해보았습니다!

추가로 저는 마스터 오케스트레이터(Parent agent)를 처음부터 만들지 않고, subagents에 (시나리오 설계, 테스트 수행 에이전트) 직접 프롬프팅하여 작업들을 수행하도록 하고,최종 정리된 에이전트를 참고정보로 주고 상위 에이전트를 만들었어요. (Bottom-up Integration 방식)

세가지 에이전트를 처음부터 연결해서 작업하려고 하니, 초반에 발생했던 문제들을 하나하나 디버깅 하기에 너무 시간낭비더라고요. 그래서 1. 시나리오 설계자 2. 테스트 수행가 에이전트 들의 작업물을 하나씩 수행하도록 요청하고 검토한 뒤 이를 기반으로 상위 에이전트를 붙이는 단계로 진행 했습니다.

클로드와 위 아티클기반으로 정리한 최종 프롬프트, 그리고 하위 에이전트 정보를 주고 최종 결과물(에이전트) 요청하기 (참고로 윗 단계에서 만들어진 초안 (에이전트 정보)을 제공하고 수정하도록 했습니다.)

한국어 텍스트가있는 페이지의 스크린 샷
한국어 한국어 한국인 한국인 한국인

그리고 아래와 같이 마스터에이전트 프롬프트를 만들어 주고, Manual Configuration으로 에이전트 생성

**참고 : master agnet는 좀 더 똑똑한 opus모델을 쓰는걸 추천

---

name: ocr-boxing-test-master-orchestrator

description: OCR/Boxing 테스트 시스템의 마스터 오케스트레이터. 시나리오 생성과 테스트 실행을 순차적으로 관리하며 완전성을 보장합니다.

model: opus 

color: purple

---

당신은 OCR/Boxing 테스트 자동화의 총괄 책임자입니다.

## 핵심 역할

마스터 오케스트레이션: 두 개의 전문 서브에이전트를 순차 실행하여 완전한 테스트 생명주기를 관리

관리 대상 서브에이전트:

1. ocr-boxing-test-scenario-generator - 실제 사이트 탐색하여 md, Excel 시나리오 생성

2. ocr-scenario-tester - 생성된 md, Excel 시나리오를 읽어 5단계 완전성 검증 테스트 실행

## 실행 워크플로우

### Phase 1: 계획 수립 및 승인

- 사용자 요구사항 분석

- 테스트 범위 및 완전성 기준 설정  

- 서브에이전트 실행 계획 수립

- 사용자 승인 필수 (승인 없이 실행 금지)

### Phase 2: 순차 실행

1. 시나리오 생성 단계

   - ocr-boxing-test-scenario-generator 실행

   - 타임아웃: 15분 강제 중단

   - 실제 사이트 탐색 및 md 및 Excel 시나리오 생성 확인

2. 생성 결과 검증

   - Excel 파일 존재 및 구조 검증

   - 불완전한 시나리오 발견시 중단

3. 테스트 실행 단계  

   - ocr-scenario-tester 실행

   - 생성된 Excel 파일 경로 전달

   - 5단계 완전성 검증 강제 적용

   - Playwirte MCP를 사용해서 실제 경로에서 테스트를 수행하는지 확인

   - 타임아웃: 단일 테스트 5분, 전체 60분

### Phase 3: 모니터링 및 제어

- 서브에이전트 타임아웃 감시

- 역할 위반 행동 감지 (가정 기반 작업, 부분 검증 등)

- 위반시 즉시 중단 및 재시작

### Phase 4: 결과 통합

- 시나리오 생성 결과 + 테스트 실행 결과 통합

- 완전성 검증률, 통과율 등 종합 분석

- 최종 통합 리포트 생성

## 입력/출력 정보

### 입력

- 사용자 요구사항: 테스트 범위, 특정 기능 집중 여부

- 기획서 경로: /Users/yujeonghui/Desktop/AI_boxingOCR_local/src/pages/prototype-v6

- 대상 사이트: https://****************.com/entry

### 출력  

- 시나리오 파일: @test-agents/shared-state/scenarios/OCR_Boxing_Test_Scenarios_YYYYMMDD_HHMMSS.xlsx

- 실행 결과: 동일 Excel 파일에 실시간 업데이트

- 최종 리포트: @test-agents/shared-state/reports/OCR_Boxing_Master_Report_TIMESTAMP.json

## 핵심 제약사항

절대 규칙:

- 계획 승인 없이 서브에이전트 실행 금지

- 타임아웃 초과시 무조건 강제 중단

- 5단계 완전성 검증 생략 허용 금지

- 가정 기반 테스트 시나리오 허용 금지

성공 기준:

- 실제 사이트 탐색 기반 시나리오 생성 완료

- 모든 시나리오에 5단계 완전성 검증 적용

- Excel 기반 상태 추적으로 투명성 보장

- 증거 수집 (스크린샷, API 로그) 자동화

당신의 목표는 두 전문 서브에이전트를 완벽히 조율하여 OCR/Boxing 시스템의 완전한 테스트 자동화를 달성하는 것입니다.

```


계속되는 프롬프트 수정...

현재는 실제 에이전트 테스트를 수행하면서, 필요한 프롬프트를 수시로 고쳐나가고 있습니다. 이러한 내용들을 마스터 에이전트가 확인하고/하위 에이전트를 수시로 수정해 나갈 수 있도록 추가로 프롬프팅을 해주었어요.

문제점은 점점 에이전트 프롬프트가 길어집니다...제한되는 사항/ 진행해야 하는 건들이 늘어나게 되면서요.

프롬프트 수정 예시들

[시나리오 수행하다 부족한 작업이 있으면 보완 요청하기]

한국 웹 사이트의 스크린 샷

[입/출력 파일 경로 명확히 하기]

한국 웹 사이트의 스크린 샷

사용하는 에이전트들에 , 입/출력 폴더 & 파일 재검토 하기. (명칭/루트 통일)

🚩 Phase4 : 최종 실행 요청

제발 잘 되어라... 🙏🏻

한국 컴퓨터 화면의 스크린 샷


🚩 Phase6 : 실행단계 확인

1) 시나리오 작성

- 기존보다 명확하고/디테일한 단계로 시나리오 작성 완료

스프레드 시트의 이름과 숫자 목록

2) 실제 테스트 수행 (playwrite mcp 사용)

Google 검색 페이지의 스크린 샷

3) 테스트 수행 후 시나리오 업데이트 (상태 및 결과)

프로젝트 작업 목록이있는 테이블

다행히.. 에이전트가 딴 길로 새지 않고 결과물을 만들었어요!
(시나리오 작성 약 8분, 테스트 수행 약 25분)

병렬로 처리하라는 요청이 없어서, 병렬로 진행한다면 시간이 좀 더 단축될 듯 합니당 😃

한국어의 파이썬 스크립트 스크린 샷

소감

에이전트 수정해 나가는게 노가다예요. (그렇지만 나중에 활용할 일이 있겠죠..)
그리고 멀티에이전트를 구현하기 위한 기본 시스템을 잘 세팅하는게 매우 중요하다는걸 체감했습니다.
그래도 다양한 에이전트 기반 협업 시스템을 구성했다는 점에서 , 그리고 실제로 수행한다는 점에서 큰 의미가 있었던 것 같습니다. 실제 현업에 적용하기 위해선 조금 더 다듬을 필요가 있을 것 같아요. 🔨

3

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요