챗봇 대화 흐름의 완전성, 순환, 데드엔드를 검증하는 방법론. '대화 흐름 검증', '시나리오 테스트', '엣지케이스 확인', '폴백 검증', '멀티턴 테스트' 등 대화 품질 검증 시 사용한다. 단, 실제 사용자 테스트 진행, A/B 테스트 인프라 구축은 이 스킬의 범위가 아니다.
Scanned 5/29/2026
Install via CLI
openskills install revfactory/harness-100---
name: conversation-flow-validator
description: "챗봇 대화 흐름의 완전성, 순환, 데드엔드를 검증하는 방법론. '대화 흐름 검증', '시나리오 테스트', '엣지케이스 확인', '폴백 검증', '멀티턴 테스트' 등 대화 품질 검증 시 사용한다. 단, 실제 사용자 테스트 진행, A/B 테스트 인프라 구축은 이 스킬의 범위가 아니다."
---
# Conversation Flow Validator — 대화 흐름 검증 방법론
dialog-tester와 conversation-designer의 대화 품질 검증을 강화하는 스킬.
## 대상 에이전트
- **dialog-tester** — 대화 시나리오를 체계적으로 검증한다
- **conversation-designer** — 설계 단계에서 흐름 결함을 사전 발견한다
## 대화 흐름 그래프 분석
### 노드 유형
```
[START] → 시작점
[BOT] → 봇 발화 노드
[USER] → 사용자 입력 기대 노드
[ACTION] → 백엔드 API 호출
[CONDITION] → 분기 조건
[END] → 종료점
[FALLBACK] → 미인식 처리
[HANDOFF] → 상담원 전환
```
### 결함 유형 탐지
| 결함 | 설명 | 심각도 | 탐지 방법 |
|------|------|--------|----------|
| 데드엔드 | 대화가 막다른 곳에 도달 | P0 | END 없는 말단 노드 탐색 |
| 무한 루프 | 동일 노드 무한 순환 | P0 | 사이클 탐지 (DFS) |
| 도달 불가 | 어떤 경로로도 도달 불가 | P1 | START에서 BFS 미도달 노드 |
| 폴백 블랙홀 | fallback에서 복귀 경로 없음 | P0 | fallback 후 유효 전이 확인 |
| 슬롯 누수 | 필수 슬롯 미수집 상태로 진행 | P0 | 슬롯 충족 조건 추적 |
| 컨텍스트 손실 | 멀티턴에서 이전 정보 미유지 | P1 | 세션 변수 추적 |
## 테스트 시나리오 생성 프레임워크
### Happy Path (정상 경로)
```
목적: 가장 일반적인 사용 흐름 검증
구조:
1. 인사 → 의도 표현 → 슬롯 제공 → 확인 → 완료
예시 (카페 주문):
USER: "안녕하세요"
BOT: "안녕하세요! 무엇을 도와드릴까요?"
USER: "아메리카노 두 잔 주문할게요"
BOT: "아메리카노 2잔, 맞으시죠? 사이즈를 선택해주세요."
USER: "톨이요"
BOT: "아메리카노 톨 2잔, 총 9,000원입니다. 주문하시겠어요?"
USER: "네"
BOT: "주문이 접수되었습니다! 감사합니다."
```
### Sad Path (실패 경로)
```
목적: 오류 상황에서의 복구 능력 검증
시나리오 유형:
1. 없는 메뉴 주문 → 유사 메뉴 제안
2. 재고 부족 → 대안 제안 또는 다른 매장 안내
3. API 실패 → 재시도 또는 상담원 연결
4. 결제 실패 → 다른 결제 수단 안내
```
### Edge Case (경계 사례)
```
1. 의도 전환: 주문 중 갑자기 "영업시간 알려줘"
→ 현재 컨텍스트 보존 후 응답, 복귀 유도
2. 다중 의도: "주문하고 영수증도 보내줘"
→ 순차 처리 또는 복합 처리
3. 애매한 표현: "그거 하나 더"
→ 이전 컨텍스트 참조 또는 확인 질문
4. 부정 확인: "아니요" 후 반복 질문
→ 최대 2회 후 대안 제시
5. 빈 입력 / 특수문자 / 이모지만
→ 안전한 폴백 응답
```
## 멀티턴 검증 체크리스트
```
[ ] 3턴 이상 대화에서 컨텍스트 유지되는가?
[ ] 사용자가 이전 정보를 수정할 수 있는가?
[ ] "아니요" 응답 후 대안 경로가 있는가?
[ ] 의도 전환 후 원래 흐름 복귀가 가능한가?
[ ] 세션 타임아웃 후 적절한 안내가 있는가?
[ ] 동일 질문 3회 반복 시 에스컬레이션되는가?
[ ] 슬롯 수정 시 이미 수집된 다른 슬롯이 유지되는가?
```
## 폴백 전략 계층
```
Level 1: 재입력 요청
"죄송합니다, 이해하지 못했어요. 다시 말씀해 주세요."
→ 1회 허용
Level 2: 선택지 제안
"다음 중 어떤 것을 원하시나요? 1. 주문 2. 메뉴 조회 3. 기타"
→ 2회째 미인식 시
Level 3: 상담원 전환
"정확한 도움을 위해 상담원에게 연결해 드릴게요."
→ 3회째 미인식 또는 사용자 요청 시
```
## 품질 메트릭
| 메트릭 | 공식 | 기준 |
|--------|------|------|
| 의도 인식률 | 정확 인식 / 전체 발화 | >= 85% |
| 작업 완료율 | 성공 완료 / 시작된 작업 | >= 70% |
| 폴백 비율 | fallback 횟수 / 전체 턴 | <= 15% |
| 평균 턴 수 | 총 턴 / 완료 세션 | 작업별 기준 ±2 |
| 에스컬레이션율 | 상담원 전환 / 전체 세션 | <= 20% |
## 검증 보고서 템플릿
```markdown
## 대화 흐름 검증 보고서
### 테스트 요약
- Happy Path: N/M 통과
- Sad Path: N/M 통과
- Edge Case: N/M 통과
### 발견된 결함
| # | 유형 | 시나리오 | 심각도 | 수정 방안 |
### 폴백 분석
- 폴백 비율: N%
- 주요 미인식 발화: [목록]
### 메트릭
| 메트릭 | 결과 | 기준 | 판정 |
```
No comments yet. Be the first to comment!