쿡북 / 음성 채팅
말을 끊을 수 있는
음성 채팅

스크린샷. 로컬에서 실행 중인 템플릿입니다.
- 모델
- ink-2, sonic-3.6
- 언어
- 영어
- 라이선스
- Apache-2.0
- 기술 스택
- Next.js 16React 19shadcn/uiagents-web
- Cartesia 제품
- Managed AgentsInk 2Sonic 3.6
하는 일
에이전트 전체를 Cartesia가 실행하므로 서버가 하는 일은 하나입니다. 브라우저에 수명이 짧은 토큰을 건네며, API 키는 페이지에 닿지 않습니다. 같은 에이전트로 전화도 받을 수 있으며, 접수 담당 Front desk 템플릿에서 그 방법을 보여 줍니다.
직접 실행하기
설치
Node 22.22 이상에서 아래 명령어를 실행하세요. pnpm도 쓸 수 있습니다.
npm run setup:agent가POST /v1/agents로 에이전트를 만들며, 저장된 에이전트가 아직 있으면 아무것도 하지 않습니다. 배포한다면 먼저 로컬에서 실행하세요. Vercel 버튼이 이 id를 묻기 때문입니다.환경 변수 - CARTESIA_API_KEY
play.cartesia.ai/keys- CARTESIA_AGENT_ID
npm run setup:agent가 기록- AGENT_MODEL_ID
- 선택 사항. 에이전트의 LLM,
GET /v1/agents/models에서 확인 - CARTESIA_VOICE_ID
- 선택 사항.
play.cartesia.ai/voices의 음성 - APP_PASSWORD
- 로컬에서는 선택 사항. Vercel에서는 필수이며, none으로 두면 앱이 공개됨
- TRUST_PROXY
- 선택 사항. 자체 리버스 프록시 뒤에서는 1
통화 시작
http://localhost:3000을 열고 Start call을 누르세요. 헤드폰을 쓰세요. 에코 제거가 켜져 있지만 노트북 스피커 소리는 여전히 마이크로 들어가 에이전트가 스스로 말을 끊습니다.
코딩 에이전트로 만들기
어디서 시작하고 무엇을 먼저 읽어야 하는지 코딩 에이전트에게 알려 주는 프롬프트입니다.
Build a browser voice chat with a Cartesia Managed Agent. Start from https:/ and follow its AGENTS.md for the commands, files and rules. The server route mints a 60 second access token with only the agent grant through @cartesia/cartesia-js (client.accessToken.create), and the browser opens wss:/ with useCartesiaAgent from lib/agents-web. Create the agent once with npm run setup:agent, which calls POST /v1/agents. The agent runs Ink 2 and Sonic 3.6 for you, so do not add TTS or STT model fields to its config. If I don't have a Cartesia API key yet, follow https:/ to get one.
작동 방식
claude-haiku-4.5, AGENT_MODEL_ID로 변경이렇게 만든 이유
끼어들면 오디오 대기열이 비워집니다
에이전트가 말할 때 끼어들면 Cartesia가 audio_output_clear 이벤트를 보냅니다. 앱은 대기 중이던 오디오를 버리고, 에이전트의 마지막 메시지를 실제로 말한 단어까지로 자릅니다.
브라우저는 키가 아니라 60초짜리 토큰을 받습니다
서버는 에이전트 통화에만 쓸 수 있고 60초 뒤 만료되는 토큰을 만듭니다. 토큰 경로는 API 키가 없으면 503을, 한 주소에서 1분에 10개를 넘으면 429를 반환합니다.
원하는 대로 바꾸기
하는 말 바꾸기
scripts/prompt.ts의 지침과 인사말을 수정한 뒤 npm run setup:agent -- --force를 실행하세요.
다른 음성이나 LLM 사용
CARTESIA_VOICE_ID나 AGENT_MODEL_ID를 설정하고 npm run setup:agent -- --force를 실행하세요.
다른 언어로 대화
scripts/setup-agent.ts의 buildBody에서 language.primary를 설정하고, 그 언어로 프롬프트를 쓴 뒤 그 언어를 말하는 음성을 고르세요.
자주 묻는 질문
Cartesia API 키를 브라우저에 노출하지 않으려면 어떻게 하나요?
서버에서 수명이 짧은 토큰을 만들어 브라우저에는 그것만 건네세요. 토큰은 60초 뒤 만료되고 에이전트 통화에만 쓸 수 있으며, 음성 합성이나 음성 인식에는 쓸 수 없습니다. 서버는 주소당 1분에 최대 10개까지만 발급합니다.
왜 말을 멈춘 뒤에야 내 말이 나타나나요?
에이전트는 내가 말하는 동안이 아니라 내 차례가 끝났을 때 내 말을 돌려주므로, 그때까지 내 메시지에는 점이 표시됩니다. 에이전트의 말은 말하는 대로 나타납니다. 레시피에는 내 LLM을 직접 쓰는 버전도 있으며, 그 버전에서는 말하는 동안 내 말이 실시간으로 나타납니다.
통화 비용은 얼마인가요?
Managed Agent 통화는 분당 $0.06에 LLM 토큰 비용이 더해집니다. Cartesia 크레딧 잔액이 아니라 달러로 청구되며, 토큰 가격은 LLM마다 다릅니다.
통화가 녹음되나요?
네. Cartesia는 기본으로 모든 에이전트 통화의 오디오와 기록을 녹음합니다. 사용자에게 알리고, 필요 없는 통화는 Cartesia API로 삭제하세요.
이 템플릿의 단계별 가이드가 있나요?
네. 레시피에서 코드를 따라가며 설명하고, README에서 설정, 환경 변수, 배포를 다루며, Managed Agents 문서에서 Cartesia 쪽을 설명합니다.
쿡북 더 보기
오늘 시작하세요
전문가와 상담하세요.
팀원과 연결해 Cartesia가 세계적 수준의 음성 경험을 만드는 데 어떻게 도움이 되는지 알아보세요.
개발을 시작하세요.
API로 모델을 사용하고 몇 분 만에 음성 에이전트를 프로덕션에 배포하세요.

