설치
프로젝트에 패키지를 설치하세요.사용법
바닐라 JavaScript 프로젝트에서 바로 쓸 수 있고, 프레임워크별 라이브러리의 기반으로도 쓸 수 있습니다. React를 쓴다면 React를, React Native를 쓴다면 React Native를 확인해 보세요.세션 초기화
Conversation.startSession(options)으로 세션을 시작합니다.
세션 설정
startSession에 전달하는 옵션으로 세션 방식을 설정합니다. Agent ID는 vox.ai 대시보드에서 확인하세요.
| 옵션 | 타입 | 필수 | 설명 |
|---|---|---|---|
agentId | string | O | Agent ID |
apiKey | string | O | API Key |
agentVersion | string | 에이전트 버전 ("current", "production", "v1" 등). 기본값 "current" | |
textOnly | boolean | true면 마이크/오디오 없이 텍스트 전용으로 연결. 기본값 false | |
dynamicVariables | Record<string, string | number | boolean> | 에이전트 프롬프트에 주입할 동적 변수 | |
metadata | Record<string, unknown> | 콜 메타데이터 (웹훅, 통화 기록에 포함) |
콜백
startSession 옵션으로 콜백을 등록할 수 있습니다.
- onConnect — 세션이 연결되면 불립니다.
- onDisconnect — 연결이 끊기면 불립니다.
- onMessage — 메시지가 들어올 때 불립니다. 사용자 음성의 텍스트 변환이나 에이전트 응답이 여기로 옵니다.
- onError — 에러 발생 시 불립니다.
- onStatusChange — 연결 상태가 바뀔 때 불립니다.
"disconnected","connecting","connected"중 하나가 넘어옵니다. - onModeChange — 에이전트가
"speaking"↔"listening"사이를 오갈 때 불립니다.
반환값
startSession은 세션을 제어할 수 있는 Conversation 인스턴스를 돌려줍니다. 마이크 권한이 거부되거나 연결이 실패하면 에러를 throw합니다.
메서드
endSession
세션을 종료합니다. 연결을 끊고 리소스를 정리합니다.getId
현재 세션 ID를 돌려줍니다.getMessages
세션에서 주고받은 메시지를 timestamp 순으로 돌려줍니다.sendUserMessage
에이전트에게 텍스트 메시지를 보냅니다. 마이크 대신 텍스트로 입력할 때 쓰세요.setVolume
에이전트 음성의 출력 볼륨을 조절합니다. 0~1 사이 값을 넣으세요.setMicMuted
마이크를 음소거하거나 해제합니다.getInputVolume / getOutputVolume
현재 입출력 볼륨을 0~1 스케일로 돌려줍니다.getInputByteFrequencyData / getOutputByteFrequencyData
입출력 주파수 데이터를Uint8Array로 돌려줍니다. 오디오 시각화에 쓸 수 있습니다.
오디오 모니터링 메서드는 음성 세션에서만 동작합니다.
changeInputDevice
세션 중에 오디오 입력 디바이스를 바꿉니다.changeOutputDevice
세션 중에 오디오 출력 디바이스를 바꿉니다.디바이스 전환은 음성 세션에서만 동작합니다.
deviceId를 지정하지 않으면 브라우저 기본 디바이스가 쓰입니다.
사용 가능한 디바이스 목록은 MediaDevices.enumerateDevices() API로 조회하세요.상태 조회
Text Only 모드
마이크 없이 텍스트만으로 에이전트와 대화할 수 있습니다.- Text Only 세션은 마이크 권한을 요청하지 않습니다.
- 오디오 관련 API(
getInputVolume등)는 zero-value를 돌려줍니다.
Dynamic Variables와 Metadata
dynamicVariables— 에이전트 프롬프트에서{{userName}}형식으로 참조됩니다. 동적 변수에서 자세히 알아보세요.metadata— 웹훅과 통화 기록에 포함됩니다.
연관 검색어
연관 검색어
JavaScript SDK, JS SDK, @vox-ai/client, 웹 연동, web integration, startSession, 바닐라 자바스크립트