Conversation Flow Control: 사용자가 스크립트를 따르지 않을 때
Source: Dev.to
전통적인 흐름 설계가 실패하는 이유
대부분의 봇은 전화 메뉴처럼 구축됩니다:
Question → Answer → Next question → Next answer …
이는 사용자가 순종적인 로봇처럼 행동할 때만 작동합니다. 실제 인간은:
- 앞쪽으로 건너뛰어 바로 가격을 묻습니다.
- 뒤로 돌아가 다시 어떤 코스가 있는지 묻습니다.
- 옆으로 이동해 결정을 내리기 전에 환불 정책을 묻습니다.
- 하나의 메시지에 여러 의도, 선호도, 질문을 과부하 시킵니다.
사용자가 인간처럼 행동하는 순간, 경직된 흐름은 무너집니다.
Linear Bot을 무너뜨리는 다섯 가지 행동
-
Information dumping – 사용자가 한 메시지에 코스 관심사, 경험 수준, 일정 선호도, 예산, 시작 시점을 모두 제공합니다.
Linear bot은 대부분을 무시하고 다음 스크립트 질문을 하여 사용자가 무시당했다고 느낍니다. -
Topic jumping – Bot이 경험 수준을 물어볼 때, 사용자가 취업 지원에 대해 묻습니다.
엄격한 bot은 사용자를 차단하고 원래 답변을 요구합니다 → 이탈. -
Pre‑emptive questions – 사용자가 가격을 묻는 동안 bot은 아직 배경 정보를 수집하고 있습니다.
bot이 흐름을 따르지 않으면 답변을 거부하면, 사용자는 bot이 쓸모없다고 판단합니다. -
Vague input – 사용자가 “컴퓨터와 관련된 것” 혹은 “모든 옵션을 보여줘”라고 말합니다.
bot이 좁은 선택을 강요하지 않고 안내하지 못하면 대화가 정체됩니다. -
Multi‑intent messages – 등록 의사, 가격, 일정, 환불, 배송 방식이 한 줄에 모두 포함됩니다.
한 부분만 답변하면 사용자는 무시당했다고 느끼고, 이런 상황이 반복되면 예측 가능한 이탈이 발생합니다.
Result: 88 %의 대화가 세 번째 메시지 내에 탈선합니다.
작동하지 않은 부분
| 시도 | 설명 | 결과 |
|---|---|---|
| 엄격한 스크립트 적용 | 봇이 사용자가 순서대로 질문에 답하도록 강제했습니다. | 완성도가 약간 증가했지만, 사용자는 통제당하고 버림받는 느낌을 받았습니다. |
| 자유 형식 대화 | 봇이 언제든지 모든 것을 처리하려고 시도했습니다. | 길을 잃고, 관련 없는 답변을 제공했으며, 제어 메커니즘이 부족했습니다. |
| 맥락 없는 의도 감지 | 메시지당 의도만 감지했습니다. | 이전 맥락을 기억하지 못해 사용자 의도를 오해했습니다. |
획기적인 접근: 적응형 흐름 관리
우리는 사용자가 적응하는 가이드를 필요로 한다는 것을 깨달았습니다, 경직된 스크립트가 아니라.
3단계 흐름 제어 시스템
-
정보 추출
- 사용자가 제공하는 정보를 순서와 관계없이 모두 추출합니다.
- 감지된 모든 엔터티(코스, 일정, 예산 등)를 저장하고, 누락된 부분만 질문합니다.
-
동적 우선순위 라우팅
- 사용자가 직접적인 질문(가격, 환불, 할부 등)을 하면, 순서와 관계없이 즉시 답변합니다.
- 답변 후에는 부드럽게 등록 흐름으로 돌아갑니다.
-
맥락 인식 응답
- 사용자가 이전에 말한 내용과 이미 답변된 내용을 기억합니다.
- 질문을 반복하지 않으며, 봇이 무의미하게 행동하지 않고 “듣고” 있습니다.
적응형 흐름의 실제 예시
-
User: “데이터 사이언스나 머신러닝을 생각하고 있는데, 주말 배치가 필요하고 가격대는 어떻게 되나요?”
Bot: 세 가지 질문 모두에 답하고, 사용자의 배경에 대한 관련 후속 질문을 합니다. -
User: “환불 정책이 어떻게 되나요?”
Bot: 즉시 답변하고, 다시 코스 적합성 질문으로 돌아갑니다(다시 시작하지 않음). -
User: “파이썬을 조금 알고 있어요.”
Bot: 해당 맥락을 활용해 가장 적합한 시작 경로를 추천하고 커리큘럼 세부 정보를 제공합니다. -
User: “할부 옵션이 있나요?”
Bot: 인라인으로 할부 상세 정보를 제공하고 바로 등록 단계로 이동합니다.
Result: 마찰 없음, 강제 순서 없음, 반복 없음.
중요한 엣지 케이스
| 상황 | 원하는 봇 동작 |
|---|---|
| 다른 표현의 반복 질문 | 답변을 인정하고 이전 답변을 확인한 뒤, 해당 문제가 여전히 방해 요소인지 물어봅니다. |
| 주제와 벗어난 탈선 | 정중히 인정한 뒤, 부드럽게 등록 흐름으로 다시 안내합니다. |
| 불완전한 답변 (“별로”) | 가정하지 말고 친절하게 명확히 합니다. |
| 옵션 선택에 막힘 | 올바른 경로를 드러내는 단순한 선호 질문 하나를 합니다. |
| 연속적인 빠른 질문 | 하나씩 골라 답하기보다 한 메시지에 간결히 여러 답변을 제공합니다. |
결과
| Metric | Before Adaptive Flow | After Adaptive Flow |
|---|---|---|
| Conversation completion rate | 12 % | 78 % |
| Average messages before abandonment | ~4 | >10 |
| User sentiment | “봇은 듣지 않는다.” | Positive – “봇이 도움이 된다.” |
Adaptive Flow는 실패하던 챗봇을 고성능 등록 어시스턴트로 전환시켜, 봇과 인간 전환율 간의 격차를 크게 줄였습니다.
Recent Success
- Enrollment conversion reached 71 %.
- Complaints dropped sharply.
- Feedback shifted from frustration to surprise that the bot “actually understood everything.”
핵심 교훈
인간은 선형적으로 의사소통하지 않습니다. 인간은 급증, 여담, 방해, 그리고 다중 의도 메시지로 의사소통합니다.
- 봇이 인간을 스크립트에 억지로 맞추면 전환율이 낮게 유지됩니다.
- 봇이 인간 행동에 맞춰 적응하면 전환율이 상승합니다.
우리는 더 나은 스크립트를 작성해서 결과를 개선한 것이 아니라, 스크립트를 버리고 사용자가 있는 곳에서 만나는 적응형 시스템을 구축함으로써 결과를 개선했습니다.
당신의 차례
- 챗봇의 의도된 흐름을 따르지 않는 사용자를 어떻게 처리합니까?
- 흐름 관리에서 가장 큰 도전 과제는 무엇입니까?
- 다중 의도 메시지로 인해 봇이 중단된 경험이 있습니까?
Written by Farhan Habib Faraz
PowerInAI의 시니어 프롬프트 엔지니어 및 팀 리드
인간에 적응하는 AI 자동화 구축
Tags: conversationalai, flowcontrol, chatbot, ux, nlp, promptengineering