GPT-Live로 AI 전화 상담원 만들기 — 듣는 동시에 말하는 전이중 모델을 070 번호에 코드 없이
OpenAI GPT-Live(gpt-live-1)를 전화 상담원으로 쓰는 방법. ClawOps 콘솔에서 모델 선택부터 번호 연결까지 실제 화면 12장, 기존 실시간 모델과 다른 점, 1분 요금, LiveKit으로 직접 만들 때 챙겨야 할 것과 한계까지 정리했습니다.
전화 상담원이 안내를 하는 도중에 고객이 "네, 네" 하고 맞장구를 칩니다. 기존 음성 AI는 이걸 끼어들기로 알아듣고 말을 끊은 뒤, 같은 안내를 처음부터 다시 시작하곤 했습니다. 전화 회선의 작은 잡음에도 같은 일이 생깁니다.
OpenAI가 새로 내놓은 GPT-Live(gpt-live-1)는 이 문제를 모델 수준에서 다룹니다. OpenAI 문서의 표현을 빌리면 GPT-Live는 "말하는 동안에도 들을 수 있는" 전이중(full duplex) 모델입니다. 상대가 말을 얹었을 때 멈출지, 계속 이어 갈지를 모델이 스스로 판단합니다.
한국AI통신(ClawOps)에서는 이 GPT-Live를 대시보드에서 모델 하나 고르는 것만으로 070 번호의 전화 상담원으로 쓸 수 있습니다. 이 글의 화면은 모두 2026년 9월 12일 ClawOps 운영 콘솔에서 치과 예약 상담원을 새로 만들며 캡처한 것입니다.

GPT-Live는 무엇이 다른가
기존 실시간 음성 모델(GPT Realtime 등)은 한 모델이 듣기·생각·도구 호출·말하기를 모두 맡고, "상대가 말을 끝냈다"는 판단은 음성 감지(VAD)가 내립니다. GPT-Live는 구조가 둘로 나뉩니다.
- 음성 모델(GPT-Live): 대화만 맡습니다. 계속 들으면서 언제 말할지, 맞장구를 칠지, 말을 멈출지를 스스로 정합니다.
- 업무 처리 모델(백엔드): 조회, 도구 실행, 복잡한 판단을 맡습니다. 음성 모델이 일을 넘기면(OpenAI는 이를 "위임"이라고 부릅니다) 대화는 끊기지 않고 그대로 이어집니다.
전화 상담에서 이 차이는 이렇게 드러납니다.
| 항목 | 기존 실시간 모델 | GPT-Live |
|---|---|---|
| 말이 끝났는지 판단 | 음성 감지(VAD) 설정 | 모델이 스스로 판단 |
| 고객의 맞장구("네", "음") | 끼어들기로 인식해 멈추기 쉬움 | 끼어들 뜻이 아니면 이어서 말할 수 있음 |
| 도구 호출 | 말하는 모델이 직접 | 업무 처리 모델에 위임 |
| 목소리 | 모델 음성 또는 외부 TTS | 모델 음성만 |
| 콘솔 1분 가격(부가세 별도) | 약 ₩127 (GPT Realtime 2.1, 모델 음성) | 약 ₩98 (GPT-Live 1 + GPT-5.6 Luna) |
가격은 뒤에서 자세히 다룹니다. 먼저 만드는 과정부터 보겠습니다.
준비물
- ClawOps 계정과 070 번호 한 개
- OpenAI API 키는 필요 없습니다. 모델 사용료는 ClawOps 청구서에 통화 단위로 함께 청구됩니다.
1. 에이전트 만들기
대시보드 왼쪽 메뉴에서 에이전트 → 새 에이전트를 누르고 지능형 에이전트를 고릅니다. 콜 플로우(ARS)는 정해진 흐름대로 응대하는 블록형이라 GPT-Live와 관계가 없습니다.

이름을 정하고 만들고 구성하기를 누릅니다. 이름은 콘솔에서 구분하는 용도라 고객에게 들리지 않습니다.

2. 모델을 GPT-Live 1로 바꾸기
만든 직후의 기본 모델은 GPT Realtime 2.1입니다. 모델 · 음성 탭의 대화 모델 목록을 열면 맨 아래에 전이중 (Full duplex) 묶음이 따로 있습니다. 여기서 GPT-Live 1을 고릅니다.

GPT-Live를 고르면 화면이 바뀝니다. 오른쪽 현재 구성을 보면 대화는 GPT-Live 1이, 업무 처리는 GPT-5.6 Luna가 맡는 두 단 구조가 됩니다.

업무 처리 모델은 둘 중 하나를 고릅니다.
- GPT-5.6 Luna(기본): 빠르고 저렴합니다. 진료 시간 안내나 예약 접수처럼 판단이 단순한 업무에 맞습니다.
- GPT-5.6 Terra: 판단이 복잡할 때 씁니다. 1분 약 ₩16으로 Luna(약 ₩2)보다 비쌉니다.
OpenAI도 백엔드 모델로 GPT-5.6 Terra를 먼저 권하고, 비용이 중요하면 Luna를 써 보라고 안내합니다. 전화 업무 대부분은 Luna로 충분합니다.
고급 설정을 펼치면 추론 강도가 있습니다. 높이면 답이 신중해지는 대신 도구 결과가 늦게 옵니다. 전화에서는 기본값인 낮음을 권합니다. 추론이 길어지면 고객이 결과를 기다리는 시간도 길어지기 때문입니다.
3. 목소리 고르기
음성 출력에서 목소리를 고릅니다. GPT-Live는 목소리를 모델이 직접 만들기 때문에 외부 TTS(ElevenLabs·Cartesia 등)와 함께 쓸 수 없습니다.

고를 수 있는 목소리는 22종입니다. GPT-Live 전용 12종과 기존 실시간 모델과 이름이 같은 10종(Marin, Cedar 등)이 있습니다.

목록에 붙은 "호주·여성", "영국·남성" 같은 설명은 GPT-Live 전용 목소리가 영어로 말할 때의 억양입니다. OpenAI도 억양을 보장하지는 않는다고 적어 두었습니다. 한국어로 말할 때는 억양 차이가 약하게만 드러나니, 오른쪽 재생 버튼으로 한국어 미리듣기를 들어 보고 고르세요.
4. 대화 흐름 설정은 없습니다
실시간 모델에서는 "발화 끝 감지", "끼어들기 민감도", "첫 인사 끝까지 말하기" 같은 값을 조절해야 했습니다. GPT-Live에서는 이 카드가 안내 문구로 바뀝니다. 모델이 듣는 중에도 말하고, 상대가 말하면 스스로 멈추기 때문에 조절할 값이 없습니다.

설정을 저장한 뒤 대화 탭으로 넘어갑니다.
5. 시스템 프롬프트 쓰기
GPT-Live에서 가장 신경 써야 할 부분입니다. 이번 치과 예약 상담원에는 아래 프롬프트를 넣었습니다.

당신은 클로옵스치과의 전화 예약 상담원입니다. 밝고 차분한 존댓말로, 한 번에 한두 문장씩 짧게 말하세요.
할 일
1. 진료 시간 안내: 평일 오전 9시~오후 6시, 토요일 오전 9시~오후 1시, 일요일·공휴일 휴진. 점심시간은 오후 1시~2시.
2. 예약 접수: 이름, 연락처, 원하는 날짜와 시간, 증상(스케일링·충치·임플란트 상담 등)을 차례로 여쭙고, 마지막에 한 번에 복창해 확인받으세요.
3. 예약 확정은 하지 마세요. "담당자가 확인 후 문자로 확정 안내를 드립니다"라고 전하세요.
지켜야 할 것
- 진단이나 치료비를 단정하지 마세요. "내원하시면 원장님이 직접 봐 드립니다"라고 안내하세요.
- 상대가 말하는 도중에는 "네", "아 네" 정도로만 짧게 호응하고 끼어들어 설명하지 마세요.
- 필요한 정보를 다 받고 상대가 더 묻지 않으면 인사하고 통화를 마치세요.
OpenAI의 GPT-Live 프롬프트 가이드에서 전화 상담원에 바로 쓸 만한 원칙을 추리면 다음과 같습니다.
- 짧게 쓰세요. 음성 모델이 쓰는 문맥 창은 작습니다. 역할, 말투, 해야 할 일 몇 줄이면 됩니다. 모든 질문과 대답을 대본처럼 적을 필요는 없습니다.
- 말할 언어로 쓰세요. OpenAI는 모델이 말할 언어로 프롬프트를 쓰라고 권합니다. 한국어로 응대하려면 지침과 예시 문장도 한국어로 씁니다.
- "상대가 말할 때 절대 말하지 마"라고 쓰지 마세요. 이렇게 쓰면 "네" 같은 맞장구까지 사라져 대화가 딱딱해집니다. 위 예시처럼 "짧게 호응만 하라"고 쓰는 편이 낫습니다.
- 확정하지 않은 결과를 약속하지 않게 하세요. 가이드는 백엔드가 확인하기 전에 예약을 약속하거나 가격을 추측하지 말라고 합니다. 위 프롬프트의 "예약 확정은 하지 마세요"가 그 역할입니다.
OpenAI 가이드는 음성 모델용 지침과 백엔드용 지침을 따로 쓰고, "어떤 일을 백엔드에 넘길지"를 위임 정책으로 적으라고 안내합니다. ClawOps에서는 시스템 프롬프트 하나만 쓰면 됩니다. 프롬프트는 두 모델에 모두 전달되고, 위임 정책은 에이전트에 실제로 붙어 있는 도구(통화 종료·통화 전환·지식·외부 도구 연결)를 보고 ClawOps가 채워 넣습니다.
6. 통화 흐름: 먼저 인사하기와 무응답 처리
같은 대화 탭 아래쪽에서 통화의 시작과 끝을 정합니다.

- 에이전트가 먼저 인사하기: 전화를 받자마자 상담원이 인사합니다. 인사 문장은 GPT-Live가 프롬프트에 맞춰 직접 만듭니다.
- 무응답 처리 사용: 양쪽 다 말이 없는 시간이 정한 초만큼 이어지면 "여보세요?"처럼 한 번 더 여쭙고, 그래도 대답이 없으면 통화를 끝냅니다. GPT-Live는 통화가 연결된 시간만큼 청구되므로 켜 두는 것을 권합니다.
- 키패드 입력 설정: 고객이 누른 번호(DTMF)를 언제 전달할지 정합니다. GPT-Live에서도 그대로 쓸 수 있습니다.
7. 도구와 지식
도구 탭의 구성은 다른 모델과 같습니다. 통화 종료와 DTMF 전송은 기본으로 켜져 있고, 지식 검색·통화 전환·외부 도구 연결(MCP)은 필요할 때 켭니다.

GPT-Live에서는 이 도구들을 업무 처리 모델이 부릅니다. 고객이 지식이나 외부 시스템 조회가 필요한 질문을 하면 음성 모델은 대화를 이어 가고, 그 사이 업무 처리 모델이 도구를 실행합니다. 결과가 오면 음성 모델이 이어서 안내합니다.
8. 테스트는 음성으로만
상단 테스트를 누르면 브라우저에서 바로 통화해 볼 수 있습니다. GPT-Live는 음성으로만 대화하는 모델이라 채팅 테스트는 쓸 수 없고 음성 탭만 열립니다. 마이크 권한이 필요하고, 테스트 통화도 실제 통화와 같은 요금이 청구됩니다.

9. 070 번호에 연결하기
전화번호 메뉴에서 번호를 누르고 인바운드 라우팅의 수정을 누릅니다. 에이전트를 고르고 착신 에이전트에 방금 만든 상담원을 지정한 뒤 저장하면, 그 번호로 오는 전화를 GPT-Live 상담원이 받습니다.

거꾸로 상담원이 먼저 전화를 거는 것도 됩니다. 에이전트 상단 전화 걸기 버튼이나 API로 발신하면 됩니다. OpenAI의 GPT-Live SIP 연결은 발신 통화를 직접 지원하지 않지만, ClawOps에서는 수신과 발신이 같은 에이전트로 동작합니다.
API로 만들기
콘솔 대신 REST API로도 같은 에이전트를 만들 수 있습니다. configuration.outputMode를 live로 지정합니다.
curl -X POST "https://api.claw-ops.com/v1/accounts/$CLAWOPS_ACCOUNT_ID/agents" \
-H "Authorization: Bearer $CLAWOPS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "클로옵스치과 예약 상담",
"instructions": "당신은 클로옵스치과의 전화 예약 상담원입니다. ...",
"configuration": {
"outputMode": "live",
"llm": {
"provider": "openai-live",
"model": "gpt-live-1",
"voice": "marin"
}
}
}'
backend_model(업무 처리 모델)을 생략하면 gpt-5.6-luna, backend_reasoning_effort(추론 강도)를 생략하면 low가 들어갑니다. GPT-Live에는 음성 감지(vad)나 외부 TTS(tts) 설정이 없으므로 이런 값을 함께 보내면 400으로 거절됩니다. 전체 필드는 API 레퍼런스에 있습니다.
요금: 1분 약 ₩98
모델 · 음성 탭 오른쪽 가격 카드에 1분 기준 요금이 나옵니다(부가세·통화료 별도).
| 구성 | 음성 대화 | 업무 처리 | 1분 합계 |
|---|---|---|---|
| GPT-Live 1 + GPT-5.6 Luna | 약 ₩96 | 약 ₩2 | 약 ₩98 |
| GPT-Live 1 + GPT-5.6 Terra | 약 ₩96 | 약 ₩16 | 약 ₩112 |
| GPT Realtime 2.1 mini + Cartesia | – | – | 약 ₩97 |
| GPT Realtime 2.1 (모델 음성) | – | – | 약 ₩127 |
청구 방식에서 알아 둘 점이 두 가지 있습니다.
- 음성 대화는 통화가 연결된 시간만큼 초 단위로 청구됩니다. OpenAI가 GPT-Live 세션을 1분 $0.05, 초 단위로 청구하기 때문입니다. 말을 하지 않는 시간도 포함되므로 무응답 처리를 켜 두면 불필요한 대기 요금을 줄일 수 있습니다.
- 업무 처리 모델은 실제로 쓴 토큰만큼 청구됩니다. 표의 ₩2와 ₩16은 평균적인 사용량을 가정한 값이라, 도구를 많이 부르는 통화일수록 늘어납니다.
통화별 실제 청구 금액은 대시보드 에이전트 사용 기록에서 확인할 수 있습니다.
LiveKit으로 직접 만든다면
GPT-Live를 직접 붙이는 가장 빠른 길은 LiveKit Agents입니다. LiveKit은 1.8 계열(1.8.1)부터 GPTLiveModel을 제공합니다.
from livekit.agents import AgentSession
from livekit.plugins.openai.realtime import GPTLiveModel
session = AgentSession(
llm=GPTLiveModel(
voice="marin",
responses_options={"model": "gpt-5.6-luna"}, # 업무 처리(백엔드) 모델
),
)
코드는 짧지만, 이걸 한국 전화번호로 받는 서비스로 만들려면 몇 가지를 더 챙겨야 합니다.
- OpenAI 계정 권한: LiveKit 문서는 GPT-Live 알파 접근 권한이 있는 OpenAI 계정이 필요하다고 안내합니다.
- 전화망 연결: 070 번호, SIP 트렁크, 미디어 서버가 필요합니다. OpenAI의 GPT-Live SIP 연결은 통화 음성에 SRTP를 요구하고, 발신 통화 생성은 지원하지 않습니다.
- 재생 버퍼: OpenAI 문서는 서버에서 오디오를 중계할 때 재생과 버퍼링을 앱이 책임진다고 적고 있습니다. GPT-Live는 음성을 실시간 속도로 조금씩 보내기 때문에, 버퍼가 얕으면 인터넷 지연이 쌓이는 순간 소리가 뚝뚝 끊깁니다. ClawOps는 말이 잠깐 멈춘 쉼에서 재생 여유를 조금씩 늘리는 방식으로 이 끊김을 줄였습니다.
- 통화 종료 타이밍: 끊는 도구는 업무 처리 모델이 부르지만, 그 순간 음성 모델은 아직 작별 인사를 하고 있을 수 있습니다. 바로 끊으면 "좋은 하루 보내세요"가 잘립니다. ClawOps는 상담원이 말을 멈춘 뒤에 끊습니다.
- 정확한 과금: 마지막 사용 시간은 세션이 닫힐 때 오는 이벤트에 담겨 옵니다. 그 전에 사용량을 읽으면 통화마다 끝부분이 빠집니다.
ClawOps의 GPT-Live 상담원은 위 과정을 모두 처리한 상태로 제공됩니다. 모델만 고르면 됩니다.
알아 둘 한계
GPT-Live가 모든 전화 업무에 맞지는 않습니다. 이런 경우에는 다른 구성을 고르세요.
- 정해진 문구를 한 글자도 틀리지 않고 읽어야 할 때: GPT-Live는 대본을 그대로 읽는 모델이 아닙니다. 법정 고지문처럼 문구가 정해져 있다면 콜 플로우(ARS)나 TTS를 쓰는 구성이 맞습니다.
- 특정 TTS 목소리가 꼭 필요할 때: 외부 TTS와 함께 쓸 수 없습니다. 브랜드 목소리가 있다면 실시간 모델 + 외부 TTS 구성을 쓰세요.
- 한국어 지원 범위: 운영 통화에서 한국어 대화는 자연스럽게 동작했지만, OpenAI 문서에는 GPT-Live의 지원 언어 목록이 아직 없습니다. 한국어 전용 목소리도 없고, 새 목소리 12종은 영어·브라질 포르투갈어 억양 기준입니다.
- 이름·번호 받아 적기: 프롬프트로 정확한 받아 적기를 보장할 수는 없습니다. 연락처처럼 틀리면 안 되는 값은 복창해 확인받게 하세요(위 예시 프롬프트의 2번).
- 말을 끊어도 진행 중인 작업은 계속됩니다: 고객이 말을 막아 음성이 멈춰도, 업무 처리 모델이 이미 시작한 조회는 따로 취소되지 않습니다.
어떤 구성을 고를까
| 상황 | 추천 구성 |
|---|---|
| 자연스러운 대화, 맞장구와 말 겹침이 잦은 상담 | GPT-Live 1 + GPT-5.6 Luna |
| 판단이 복잡한 상담(조건이 많은 예약·견적) | GPT-Live 1 + GPT-5.6 Terra |
| 브랜드 전용 목소리가 필요한 응대 | 실시간 모델 + 외부 TTS |
| 정해진 안내문·메뉴 선택 | 콜 플로우(ARS) |
정리
GPT-Live는 "상대가 말을 끝냈는지"를 설정으로 맞추던 음성 AI의 오래된 숙제를 모델에게 넘깁니다. 고객의 맞장구에 말을 끊지 않고, 도구를 쓰는 동안에도 대화를 이어 갑니다. 콘솔 기준 요금은 GPT Realtime 2.1보다 낮고 GPT Realtime 2.1 mini + Cartesia 구성과 비슷합니다.
ClawOps에서는 모델 목록에서 GPT-Live 1을 고르고, 한국어로 짧은 프롬프트를 쓰고, 070 번호에 연결하면 끝입니다. 전화망, 재생 버퍼, 통화 종료 타이밍, 과금은 ClawOps가 맡습니다.