대화형 AI 디자인은 AI 에이전트가 무엇을, 언제 말하고, 대화가 잘못될 때 어떻게 할지 정하는 일입니다. 이 주제를 다룬 가이드는 대부분 챗봇을 위해 쓰였습니다. 이 가이드는 음성 에이전트를 위한 것입니다. 전화를 건 사람은 앞으로 돌아갈 수 없고, 모든 공백이 들리며, 음성 인식은 가끔 “열다섯”을 “쉰”으로 알아듣습니다.
Cartesia는 음성 에이전트가 돌아가는 음성 모델과 에이전트 플랫폼을 만들기 때문에, 이 가이드는 문제마다 이를 해결하는 Cartesia 설정도 함께 안내합니다. 아이디어 자체는 어떤 스택에도 적용됩니다. 요점은 작업을 중심으로 설계하고, 귀로 듣는 것을 전제로 쓰고, 일이 꼬이는 순간에 가장 많은 노력을 들이라는 것입니다. “죄송합니다, 잘 못 들었어요”를 세 번 연속 듣고 좋아한 사람은 없습니다.
음성과 채팅은 다른 설계 문제다
대화 설계 조언 중 상당수는 채팅과 음성 모두에 통합니다. 그렇지 않은 것도 많습니다.
| 채팅 | 음성 | |
|---|---|---|
| 읽기 | 다시 읽고, 훑어보고, 위로 스크롤할 수 있다 | 각 단어를 한 번, 순서대로 듣는다 |
| 길이 | 목록이 들어간 문단도 괜찮다 | 두 문장이면 이미 긴 턴이다 |
| 선택지 | 버튼과 링크 | 선택지를 기억하고 있어야 한다 |
| 침묵 | 2초를 기다려도 아무도 모른다 | 1초만 비어도 전화가 끊긴 것 같다 |
| 입력 오류 | 오타가 사용자에게 보인다 | 인식 오류는 에이전트가 되풀이하기 전까지 보이지 않는다 |
| 끼어들기 | 드물다 | 잦고, 에이전트는 말을 멈춰야 한다 |
사용성 연구는 이 점을 오래전부터 지적해 왔습니다. Nielsen Norman Group이 2018년에 음성 비서를 테스트했을 때, 음성 비서는 짧게 답할 수 있는 단순한 질문에서만 잘 작동했습니다. LLM 덕분에 에이전트가 질문을 이해하는 능력은 크게 좋아졌습니다. 하지만 사람이 들으면서 머릿속에 담아 둘 수 있는 양은 그대로입니다.
캐릭터가 아니라 작업에서 시작하라
인사말을 쓰거나 목소리를 고르기 전에, 에이전트가 완료해야 할 작업 두세 가지와 각 작업에서 “완료”가 무엇인지 적어 보세요. “예약 변경”은 새 시간이 캘린더에 들어가고 상대가 그 복창을 들었을 때 완료됩니다. “청구 문의 응대”는 작업이 아닙니다. “지난 청구서의 항목을 설명하고 중복 청구라면 환불을 제안하기”는 작업입니다.
작업마다 에이전트에게 필요한 정보, 그 정보의 출처(전화를 건 사람, CRM, 도구), 에이전트가 해서는 안 되는 일을 적으세요. 이 목록이 곧 에이전트의 지시문과 도구 설명이 됩니다. 캐릭터는 나중에 정해도 됩니다. 주문을 찾지 못하는 친절한 에이전트는 여전히 잘못된 에이전트입니다.
귀로 듣는 것을 전제로 써라
말로 하는 응답에는 글로 쓰는 응답과 다른 습관이 필요합니다.
- 턴마다 질문은 하나. “생년월일과 계정의 우편번호를 알려 주시겠어요?”라고 물으면 답은 절반만 돌아옵니다. 하나를 묻고, 그다음에 다른 하나를 물으세요.
- 답을 먼저. “주문하신 상품은 화요일에 발송되어 금요일에 도착합니다”가 배송 조회 정보로 시작해 끝에 가서야 날짜가 나오는 문장보다 낫습니다.
- 선택지는 적게. 경험상 최대 세 개입니다. 네 번째를 들을 때쯤이면 첫 번째를 잊어버립니다. 그보다 많다면 열린 질문을 하고 답의 해석은 언어 모델에 맡기세요.
- 서식은 쓰지 않기. 마크다운, 글머리 기호, 이모지는 소리 내어 읽히거나 사라집니다. 음성용으로 쓰고 있다고 모델에 알려 주세요.
숫자, 코드, 이름에는 특히 주의가 필요합니다. Sonic은 $19.99 같은 가격, 04/20/2025 같은 날짜, (415) 555-1212 같은 전화번호처럼 흔히 쓰는 표기를 알아서 올바르게 읽습니다. 한 글자씩 읽어야 하는 확인 코드는 <spell> 태그로 감싸세요. 모델이 제품명이나 지명을 잘못 발음한다면, 프롬프트마다 씨름하지 말고 발음 사전에 한 번 등록하세요. Cartesia의 프롬프트 작성 팁에는 LLM이 쓰는 음성용 텍스트를 위한 시스템 프롬프트 예시가 있고, 이 규칙들을 다룹니다. 여러분의 프롬프트 초안으로 쓰기 좋습니다.
실제로 상대가 듣게 될 문자열로 테스트하세요. 인사말은 멋지게 읽는 에이전트도 “잔액은 $1,204.50이며 납부일은 11/03입니다”는 엉망으로 읽을 수 있습니다.
타이밍을 설계하라
대화에서 사람들은 약 200밀리초 만에 말할 차례를 넘깁니다(Stivers et al., 2009). 상대가 말을 끝냈다고 확신할 때까지 꼬박 1초를 기다리는 에이전트는 느리게 들립니다. 잠깐 멈출 때마다 끼어드는 에이전트는 아직 생각 중인 사람의 말을 끊습니다.
이 판단은 고정된 무음 타이머가 아니라 턴 감지의 몫입니다. Cartesia의 음성 인식 모델 Ink는 소리뿐 아니라 말한 내용의 의미로 턴을 감지합니다. 상대가 말을 마쳤을 가능성이 높을 때 미리 신호를 보내 에이전트가 답을 준비하기 시작하게 하고, 상대가 말을 이어 가면 그 신호를 취소합니다. 자세한 내용은 음성 활동 감지와 턴 감지 가이드를 참고하세요.
타이밍에 관한 결정 중 두 가지는 엔지니어링이 아니라 설계의 문제입니다.
- 느린 작업 전에 한마디 하기. 도구 호출에 3초가 걸린다면, 3초의 침묵은 고장처럼 들립니다. “주문 내역을 찾아볼게요” 같은 짧은 한마디가 에이전트가 들었다는 것을 알려 줍니다. Managed Agents의 도구에는 이를 위한
pre_tool_speech설정이 있습니다. - 무엇을 끊을 수 있게 할지 정하기. 사람들은 수시로 끼어들고, 대개 에이전트는 말을 멈추고 들어야 합니다. 법적 고지나 결제 금액 복창은 예외입니다. 끝까지 말한 뒤 질문을 받으세요.
중요한 것만, 그것만 확인하라
모든 것을 확인하면 지루합니다. 아무것도 확인하지 않으면 에이전트가 치과 예약을 엉뚱한 화요일로 잡습니다. 정보마다 틀렸을 때의 비용으로 분류하세요.
- 비용이 낮음: 인사할 때 부르는 상대의 이름, 통화 목적. 사용하는 것으로 암묵적으로 확인합니다. “네, 주문 건 도와드릴게요.”
- 비용이 높음: 날짜, 금액, 주소, 계좌 번호처럼 되돌릴 수 없는 동작으로 이어지는 모든 것. 복창하고 “네”를 기다립니다. “10월 8일 목요일 오후 2시 30분입니다. 이대로 예약할까요?”
인식 오류는 제품명, 도로명, 계정 코드 같은 같은 단어에 몰립니다. 미리 알고 있다면 keyterms로 인식 모델에 넘겨 처음부터 제대로 알아듣게 하세요. 잘못된 전사를 나중에 고치는 것보다 막는 편이 쉽습니다.
모든 실패에 다음 단계를 주라
설계 작업의 대부분은 일이 꼬이는 경로에 있습니다. 출시 전에 다음 상황을 계획하세요.
| 상황 | 에이전트가 할 일 |
|---|---|
| 알아듣지 못함 | 질문을 더 구체적으로 바꿔 말한다. 똑같이 되풀이하지 않는다. |
| 두 번 알아듣지 못함 | 상담원이나 다른 채널을 안내한다. 세 번째 “다시 말씀해 주시겠어요?”에서 사람들은 0번을 연타하기 시작합니다. |
| 침묵 | 한 번 더 말을 걸고, 그 뒤에는 다시 전화를 제안하거나 정중하게 종료한다. |
| 범위 밖 요청 | 에이전트가 도울 수 있는 일을 말하고 연결을 제안한다. |
| 도구 오류 | 시스템을 사용할 수 없다고 알리고 다음 단계를 안내한다. 답을 지어내지 않는다. |
| 지시를 무시하라는 요청 | 거절하고 작업을 계속한다. 출시 전에 테스트한다. |
두 번까지라는 규칙을 에이전트 지시문에 명시적으로 쓰세요. LLM은 한없이 인내심이 있고, 전화에서 한없는 인내심은 덫처럼 느껴집니다.
상담원 연결을 쉽게 만들어라
모든 에이전트에는 사람에게 연결하는 방법이 필요하고, 상대는 언제든 그것을 요청할 수 있어야 합니다. Managed Agents에서는 transfer_to_number 시스템 도구가 통화를 전화번호나 SIP 주소로 연결하며, 목적지마다 “The caller has a billing or payment question” 같은 자연어 조건을 붙일 수 있습니다.
어떤 종류의 연결인지 알아 두세요. 콜드 트랜스퍼에서는 통화가 바로 목적지로 넘어가고 에이전트는 빠집니다. 웜 트랜스퍼에서는 상대가 합류하기 전에 누군가가 전화를 받는 사람에게 상황을 설명합니다. Cartesia가 현재 문서화한 연결은 콜드 트랜스퍼이며, SIP 트렁킹 문서는 이를 SIP REFER 방식의 연결로 설명합니다. 이에 맞춰 설계하세요. 에이전트가 누구에게, 왜 연결하는지 상대에게 말하게 하고, 전화를 받는 사람에게 맥락이 필요하다면 연결 전에 웹훅 도구로 CRM에 짧은 요약을 남겨 “그래서 무슨 일이시죠?”라고 다시 묻지 않게 하세요.
실제 통화로 테스트하라
작성한 팀이 직접 소리 내어 읽는 대본은 항상 통과합니다. 실제로 전화하는 사람은 대본대로 말하지 않습니다. 실제 트래픽을 보내기 전에 다음을 하세요.
- 자동화하려는 대기열에서 실제 녹음이나 전사본을 20~50건 모아 에이전트에 넣어 보세요.
- 어려운 경우도 넣으세요. 배경 소음, 억양, 말하다가 마음을 바꾸는 사람, 처음 5초 안에 상담원을 찾는 사람 등입니다.
- 느낌이 아니라 결과를 채점하세요. Managed Agents는 완료된 통화를 커스텀 지표로 평가할 수 있습니다. 직접 정의하는 LLM 평가자입니다(“상대의 문제가 해결되었는가?”). 또한 모든 통화에서 에이전트 첫 턴의 첫 오디오 바이트까지 걸린 시간을 기록합니다.
- 출시 후에는 매주 직접 샘플을 들어 보세요. 전사본에는 말투, 긴 공백, 상대의 말에 겹쳐 말한 부분이 드러나지 않습니다.
AI 콜센터 시범 운영 가이드는 이를 하나의 대기열을 위한 평가표로 정리합니다. 이렇게 테스트할 수 있는 에이전트를 만들려면 Managed Agents와 Cartesia 플레이그라운드의 무료 계정으로 시작하세요.