すべての電話に
出る受付

小さなビジネス向けのオープンソースの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がエージェントとその4つのツールを作成します。

    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に保存

この設計にした理由

ブラウザー通話と電話で同じツール一覧

4つのツールは、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のツールを作成し、2つのツールのルートの両方がそれを使います。

よくある質問

自分の電話番号を使えますか?

はい。持っているTwilioの番号をインポートするか、自社の通信事業者をSIPでつなぐか、Cartesiaの無料の米国番号を使えます。人への転送はTwilioかSIPの通話でのみ動きます。

ブラウザーから電話してもらうとき、CartesiaのAPIキーは安全ですか?

はい。キーはサーバーに残ります。ブラウザーが受け取るのは60秒で切れるトークンで、エージェントとの通話にしか使えません。

公開したら、他人に通話を見られませんか?

DASHBOARD_PASSWORDを設定すれば見られません。ダッシュボードのすべてのページと録音でパスワードが必要になり、パスワードがないと公開アドレスではアプリが起動しません。

相手がAIだと発信者に伝えますか?

はい。初期設定のあいさつで、AIアシスタントが対応していることと、通話が録音される場合があることを伝えます。

通話は録音されますか?

はい。Cartesiaは既定で、エージェントのすべての通話の音声と書き起こしを録音し、ダッシュボードはそこから録音を再生します。サーバーには通話の情報と書き起こしが残りますが、音声は残りません。どちらも削除するまで消えません。

このテンプレートの詳しい手順ガイドはありますか?

はい。レシピでコードを順に解説しています。セットアップ、環境変数、デプロイはREADMEに、Cartesia側の仕様はManaged Agentsのツールのドキュメントにまとめています。

今すぐ始める

専門家に相談する。

音声体験の開発にCartesiaをどう活用できるか、私たちのチームにご相談ください。

営業に問い合わせる

開発を始める。

APIでモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

Cartesiaを試す