クックブック / 受付
すべての電話に
出る受付

スクリーンショット. ローカルで動かしたテンプレート。
- モデル
- ink-2, sonic-3.6
- 言語
- 英語
- ライセンス
- Apache-2.0
- 技術スタック
- PythonFastAPIhtmxSQLiteuv
- Cartesia の製品
- Managed AgentsInk 2Sonic 3.6Phone numbers
できること
すべての通話が、書き起こし、録音、各ターンでエージェントがどれだけ速く答えたかとともにダッシュボードに入ります。CartesiaのAPIキーだけあれば、全体をブラウザーで試せます。デプロイしたら電話番号を割り当てられます。
自分で動かす
インストールしてエージェントを作成する
Python 3.12以降とuvで下のコマンドを実行します。
setup_agent.pyがエージェントとその4つのツールを作成します。環境変数 - 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に予約を入れる
ブラウザーから電話する
http://localhost:8000/tryを開き、Start callを押して予約を頼みます。ヘッドホンを使ってください。使わないと、エージェントが自分の声を聞き取ります。電話番号に接続する
HTTPSが使えるホストにデプロイし、
PUBLIC_BASE_URLとDASHBOARD_PASSWORDを設定してセットアップをもう一度実行します。その後、Cartesiaの番号、Twilioの番号、またはSIPトランクをエージェントに接続します。
コーディングエージェントで作る
どこから始めて、最初に何を読むべきかをコーディングエージェントに伝えるプロンプトです。
Build an AI phone receptionist on a Cartesia Managed Agent. Start from https:/ 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:/ to get one.
仕組み
/tryでのブラウザー通話、または電話番号check_availability、book_appointment、take_message、transfer_callを呼ぶこの設計にした理由
ブラウザー通話と電話で同じツール一覧
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でモデルにアクセスし、数分で音声エージェントを本番環境に導入できます。

