모든 전화를 받는
접수원

작은 사업장을 위한 오픈소스 AI 접수원입니다. Cartesia Managed Agent가 전화를 받습니다. 작은 Python 서버가 도구를 제공해 Cal.com이나 내장 캘린더에 예약하고, 메시지를 받고, 통화를 사람에게 넘깁니다.
라이트 모드의 통화 상세 페이지. +14155550123에서 건 시뮬레이션 통화가 Booked로 표시되어 있고, 지연 시간 중앙값(음성 인식 178 ms, 텍스트 음성 변환 88 ms)과 "I'm an AI assistant, and this call may be recorded"로 시작하는 대화 기록이 있으며, 그 사이사이에 check_availability와 book_appointment 도구 호출이 들어 있습니다

스크린샷. 로컬에서 실행 중인 템플릿입니다.

모델
ink-2, sonic-3.6
언어
영어
라이선스
Apache-2.0
기술 스택
PythonFastAPIhtmxSQLiteuv
Cartesia 제품
Managed AgentsInk 2Sonic 3.6Phone numbers

하는 일

모든 통화가 기록, 녹음, 그리고 에이전트가 턴마다 얼마나 빨리 답했는지와 함께 대시보드에 쌓입니다. Cartesia API 키만 있으면 브라우저에서 전부 써 볼 수 있습니다. 배포한 뒤에는 전화번호를 연결할 수 있습니다.

직접 실행하기

  1. 설치하고 에이전트 만들기

    Python 3.12 이상과 uv로 아래 명령어를 실행하세요. setup_agent.py가 에이전트와 도구 네 개를 만듭니다.

    npx degit cartesia-ai/cookbook/examples/front-desk front-desk
    cd front-desk
    # put your key in CARTESIA_API_KEY
    cp .env.example .env
    uv sync
    # creates the agent and its tools, writes CARTESIA_AGENT_ID
    uv run scripts/setup_agent.py
    uv run uvicorn front_desk.main:app --port 8000
    

    환경 변수
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    CARTESIA_AGENT_ID
    scripts/setup_agent.py가 기록
    BUSINESS_NAME
    선택 사항, 다른 BUSINESS_ 설정과 함께 사용. 기본값은 로스앤젤레스의 미용실
    PUBLIC_BASE_URL
    전화 통화용. 서버의 공개 HTTPS 주소
    DASHBOARD_PASSWORD
    배포 후 필수. 대시보드와 통화 라우트의 HTTP Basic 비밀번호
    UVICORN_HOST
    선택 사항. --host 없이 실행할 때 uvicorn이 바인딩하는 주소
    TRUST_PROXY
    선택 사항. Render, Fly, Railway 같은 프록시 뒤에서는 1
    CALCOM_API_KEY
    선택 사항, CALCOM_EVENT_TYPE_ID와 함께 사용. Cal.com에 예약
  2. 브라우저에서 전화 걸기

    http://localhost:8000/try를 열고 Start call을 누른 뒤 예약을 요청하세요. 헤드폰을 쓰세요. 그렇지 않으면 에이전트가 자기 목소리를 듣습니다.

  3. 전화번호에 연결

    HTTPS가 되는 호스트에 배포하고 PUBLIC_BASE_URL과 DASHBOARD_PASSWORD를 설정한 뒤 설정 스크립트를 다시 실행하세요. 그다음 Cartesia 번호, Twilio 번호, SIP 트렁크 중 하나를 에이전트에 연결하세요.

코딩 에이전트로 만들기

어디서 시작하고 무엇을 먼저 읽어야 하는지 코딩 에이전트에게 알려 주는 프롬프트입니다.

프롬프트

Claude CodeCursorCodex

Build an AI phone receptionist on a Cartesia Managed Agent. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/front-desk and follow its AGENTS.md for the commands, files and rules. scripts/setup_agent.py creates the agent with POST /v1/agents and its tools with POST /v1/agents/tools. Without PUBLIC_BASE_URL the tools are client tools for browser calls; with it they become webhook tools and a call webhook is registered. The browser gets a 60 second access token with only the agent grant. Check x-webhook-secret in constant time, as front_desk/webhooks.py does. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

작동 방식

발신자/try에서 브라우저 통화, 또는 전화번호
Ink 2발신자의 말을 들음
LLMcheck_availability, book_appointment, take_message, transfer_call 호출
Sonic 3.6답변을 말함
대시보드통화, 대화 기록, 녹음, 지연 시간을 SQLite에 저장

이렇게 만든 이유

브라우저 통화와 전화에 같은 도구 목록

네 가지 도구는 front_desk/tools.py에서 한 번만 정의합니다. 노트북에서는 브라우저 통화가 도구 요청을 서버로 넘깁니다. 공개 주소로 배포하면 전화든 브라우저든 Cartesia가 서버를 직접 호출합니다.

Cartesia 요청에는 공유 비밀값이 붙습니다

Cartesia는 등록한 비밀값을 요청마다 x-webhook-secret 헤더에 담아 돌려보냅니다. 서버는 이를 상수 시간으로 비교하고, 다른 에이전트용 이벤트는 무시하며, 이미 처리한 재시도는 건너뜁니다.

지연 시간은 통화 데이터에서 나옵니다

Cartesia는 통화마다 음성 인식, LLM, 음성 합성의 턴별 소요 시간을 기록합니다. 대시보드는 직접 재지 않고 그 값을 읽어 옵니다.

원하는 대로 바꾸기

내 비즈니스

BUSINESS_NAME, BUSINESS_SERVICES, BUSINESS_TIMEZONE, BUSINESS_HOURS, APPOINTMENT_MINUTES를 설정한 뒤 설정 스크립트를 다시 실행하세요.

접수원이 하는 말

front_desk/prompt.py를 수정한 뒤 설정 스크립트를 다시 실행하세요. 인사말에 AI라는 사실과 녹음 고지는 남겨 두세요.

다른 도구

front_desk/tools.py에 명세와 메서드를 추가하세요. 설정이 Cartesia 도구를 만들고, 두 도구 라우트 모두 새 도구를 인식합니다.

자주 묻는 질문

내 전화번호를 쓸 수 있나요?

네. 이미 가진 Twilio 번호를 가져오거나, 내 통신사를 SIP로 연결하거나, Cartesia의 무료 미국 번호를 쓸 수 있습니다. 사람에게 넘기기는 Twilio나 SIP 통화에서만 됩니다.

사람들이 브라우저에서 전화할 때 Cartesia API 키는 안전한가요?

네. 키는 서버에 남습니다. 브라우저는 60초 뒤 만료되고 에이전트 통화에만 쓸 수 있는 토큰을 받습니다.

공개하면 다른 사람이 내 통화를 볼 수 있나요?

DASHBOARD_PASSWORD를 설정하면 볼 수 없습니다. 대시보드의 모든 페이지와 녹음에 그 비밀번호가 필요해지고, 비밀번호가 없으면 공개 주소에서는 앱이 시작되지 않습니다.

발신자에게 AI와 통화 중이라고 알리나요?

네. 기본 인사말에서 발신자가 AI 어시스턴트와 통화 중이며 통화가 녹음될 수 있다고 알립니다.

통화가 녹음되나요?

네. Cartesia는 기본으로 모든 에이전트 통화의 오디오와 기록을 녹음하고, 대시보드는 거기서 녹음을 재생합니다. 서버에는 통화 정보와 기록이 남지만 오디오는 남지 않으며, 직접 지우기 전까지는 아무것도 삭제되지 않습니다.

이 템플릿의 단계별 가이드가 있나요?

네. 레시피에서 코드를 단계별로 살펴보고, README에서 설정, 환경 변수, 배포를 다루며, Managed Agents 도구 문서에서 Cartesia 쪽 동작을 설명합니다.

오늘 시작하세요

전문가와 상담하세요.

팀원과 연결해 Cartesia가 세계적 수준의 음성 경험을 만드는 데 어떻게 도움이 되는지 알아보세요.

영업팀 문의

개발을 시작하세요.

API로 모델을 사용하고 몇 분 만에 음성 에이전트를 프로덕션에 배포하세요.

Cartesia 사용해 보기