언제 사용하나요
- 통화 중에 외부 처리가 끝났을 때: 결제나 본인 확인 결과로 바로 안내하게 해요.
- CRM 정보를 알려 줄 때: 고객 등급이나 최근 주문을 이후 답변에 쓰게 해요.
- 잘못된 안내를 바로잡을 때:
interrupt_agent로 말을 끊고 고친 내용으로 답하게 해요.
응답 방식 고르기
response로 에이전트가 맥락을 받은 뒤 먼저 말할지 정해요.
when_idle과 interrupt_agent는 expires_in_seconds 안에 말을 시작하지 못하면 말하지 않아요. 이때도 맥락은 계속 반영돼요.
API로 맥락 넣기
cURL
Idempotency-Key 헤더는 필수예요. 같은 키와 본문으로 다시 보내면 24시간 동안 처음 결과를 돌려주고 맥락을 다시 넣지 않아요. 같은 키에 다른 본문을 보내면 409 IDEMPOTENCY_KEY_CONFLICT가 와요.
HTTP 202는 통화에 전달했다는 뜻까지예요. 응답의 control_id를 저장하고 결과는 call_context 웹훅으로 확인하세요.
주요 거절 코드예요.
409 CALL_NOT_ACTIVE: 진행 중(ongoing) 통화가 아니에요.409 CONTEXT_NOT_SUPPORTED: 음성 통화가 아니에요.409 CONTEXT_TARGET_AMBIGUOUS: 통화에 에이전트가 둘 이상이에요.400 INVALID_CONTEXT_REQUEST: 본문이 필드 규칙에 맞지 않아요.429 CONTEXT_LIMIT_EXCEEDED: 통화당 한도(초당 2회, 분당 10회, 말하기 대기 8건, 누적 64KiB)를 넘었어요.503 CONTEXT_COMMAND_UNAVAILABLE: 전달하지 못했어요.details.retryable이true면 같은 키로 다시 보내세요.false면 이미 전달됐을 수 있어 새 키로 보내면 두 번 들어갈 수 있어요.
vox call context <call-id> --text "..." --response interrupt_agent로 보내요. MCP에서는 inject_call_context 도구로 같은 요청을 보내요.
통화에서 일어나는 일
- 맥락은 업무 시스템이 보낸 데이터로 전달돼요. 에이전트는 고객의 말이나 지시로 다루지 않고, 스크립트에도 남지 않아요.
when_idle은 조용해진 뒤 잠시 기다려요. 고객과 에이전트가 말을 멈추고 기본 1.5초가 지나면 말해요. 그사이 고객이 말하면 다시 기다려요.interrupt_agent는 기다리지 않아요. 에이전트가 말하는 중이면 새 답을 준비하는 동안 그 말을 이어 가다가, 새 답의 음성이 준비되는 순간 끊어요. 고객에게는 문장이 중간에 멈추고 맥락에 대한 답이 바로 이어져요.- 끊지 않는 말도 있어요. 끼어들 수 없게 보호한 첫 메시지와 도구 실행 중인 말은 끝난 뒤 답해요.
- 말할 요청이 여러 개면 한 번에 말해요. 도착 순서대로 모아 한 번에 답하고,
interrupt_agent요청이 있으면 그 시점을 따라요. - 상담사 전환 중이나 통화 종료 중에는 반영하지 않아요. 새 요청은 거절되고, 말하기를 기다리던 요청은 취소돼요.
결과 확인하기
요청마다 결과가 정해지면 통화 데이터 웹훅 URL로call_context 이벤트가 한 번 와요. 따로 구독하지 않아도 와요. control_id로 요청과 짝을 맞추세요.
말했는지는 reply로 보세요. 끝까지 말하면 completed, 말하다 끊기면 interrupted, 고객 말에 대한 답에 합쳐지면 merged, 기한 안에 시작하지 못하면 expired예요. 값 전체는 웹훅 스키마에 있어요.
문제가 생겼을 때
에이전트가 맥락에 대해 먼저 말하지 않아요
에이전트가 맥락에 대해 먼저 말하지 않아요
response를 when_idle이나 interrupt_agent로 보내세요. none은 맥락을 기억만 하고 고객의 다음 말에 답할 때부터 반영해요.
interrupt_agent인데 에이전트의 말이 끊기지 않아요
interrupt_agent인데 에이전트의 말이 끊기지 않아요
첫 메시지 설정에서 첫 메시지 인터럽트 허용을 켜세요. 끼어들 수 없게 보호한 첫 인사나 도구를 실행하는 중인 말은 끊지 않고, 끝난 뒤 답해요.
call_context 웹훅이 오지 않아요
call_context 웹훅이 오지 않아요
에이전트나 워크스페이스에 통화 데이터 웹훅 URL을 설정하세요. URL이 없으면 결과를 보내지 않아요.