通話オブザーバビリティのデモ
デプロイメント
各デプロイメントには一意の ID が生成されます。ログはコンソールで確認できます。
コールログ
通話をクリックして、推論コードが生成したログ出力を確認できます。コールログ
トランスクリプト
各通話には、書き起こされた音声と生成されたテキストが独立して分かれたトランスクリプトがあります。これらのトランスクリプトを API または CLI でエクスポートすると、より詳細なターン単位のタイムスタンプも含まれます。
ロギング可能なイベント
ツール呼び出しに紐付けずにイベントを記録します。SDK
SDK では、エージェントまたはツールからLogMessage イベントを yield することでカスタムイベントを記録できます:
Websocket
SDK を使わずに素の WebSocket を使用している場合、ロギングイベントは次のようになります:Playground
プレイグラウンドでは通話のTranscript タブからこれらのイベントを確認できます。
ロギング可能なメトリクス
ワークフロー内の任意のポイントでメトリクスを記録します。SDK
SDK では、LogMetric イベントをブロードキャストすることでメトリクスを記録できます。これを示すフォーム入力テンプレートからの抜粋:
LogMetric イベントを購読しており、LogMetric がブロードキャストされたことを検出すると、デフォルトでそれを WebSocket 経由でログとして送信します。
Websocket
SDK を使わずに素の WebSocket を使用している場合、メトリクスのロギングは次のようになります:Playground
プレイグラウンドでは通話のTranscript タブからこれらのイベントを確認できます。

通話の録音
デフォルトでは、Cartesia はすべてのエージェント通話の音声とトランスクリプトを録音し、通話終了後に確認できるようにします。 録音はプレイグラウンドからダウンロードできます。プログラムからはGET /agents/calls/{call_id}/audio で WAV ファイルとして取得できます。トランスクリプトは GET /agents/calls/{call_id} のレスポンスに含まれます。

録音と保持の制御
通話中に録音を停止する、通話単位や通話中に切り替えるためのトグルはありません。通話相手が録音への同意を撤回した場合は、以下のいずれかの対応を行ってください。- 通話を終了する。 エージェント側で切断するか、通話相手に切断してもらいます。通話終了後は追加の音声は取得されません。
- 通話終了後に録音を削除する。 通話が
completedまたはfailedになったら、DELETE /agents/calls/{call_id}を呼び出します。Cartesia はトランスクリプト、音声録音、ログを削除し、通話レコードにredacted_atを設定し、以降の API レスポンスから削除されたフィールドを省略します。削除は取り消せません。進行中の通話は先にPOST /agents/calls/{call_id}/cancelでキャンセルしてください。 - そもそも通話コンテンツを保持しない。 Enterprise のお客様は組織単位で Zero Data Retention を有効化できます。ZDR が有効な場合、通話レコードの
zdr_enabledはtrueとなり、Cartesia はトランスクリプト、音声録音、ログを一切保持しません。ZDR は組織全体の設定で、通話単位や通話中の切り替えはできません。
Webhook
Cartesia は通話のライフサイクル全体を通じて、お客様の HTTPS エンドポイントに Webhook イベントを送信します。POST + application/json を公開し、x-webhook-secret ヘッダーが保存済みのシークレットと一致することを検証してください。

Webhook シークレットの検証
- Python
- TypeScript
イベントタイプ
エンベロープフィールド
すべての Webhook イベントには、以下のトップレベルフィールドが含まれます:call
call_started、call_completed、call_failed イベントに含まれます。GET /agents/calls/{call_id} のレスポンスと一致します。一部のイベント(例:call_started)では、まだ有効な値を持たない end_time などのフィールドが省略される場合があります。
turn
call_turn イベントに含まれます。エージェントまたはユーザーの発話ごとに 1 ターン。
analysis
post_call_analysis イベントに含まれます。非同期分析の完了後に送信されます(現時点では要約の生成。今後、評価とメトリクスがここに追加される予定です)。
例: call_completed
例: post_call_analysis
エンドポイントのテスト
後方互換性のため:
call_completedおよびcall_failedイベントには、トップレベルのbody(トランスクリプト配列)とトップレベルのend_reasonも含まれます。代わりにcall.transcriptとcall.end_reasonを使用してください。call_turnイベントには、生のターンペイロードを含むトップレベルのbodyも含まれます。代わりにturnを使用してください。