入力イベント
入力イベントは、Cartesia ハーネスからエージェントが受け取るイベントです。すべての入力イベントには、完全な会話履歴を含むオプションのhistory フィールドがあります。history が None の場合、そのイベントは履歴リスト内で使用されています。history にリストが含まれている場合、そのイベントには完全な会話コンテキストが添付されています。
通話ライフサイクル
| イベント | 説明 |
|---|---|
CallStarted | 通話が接続された |
CallEnded | 通話が終了した |
ユーザーターンイベント
| イベント | 説明 |
|---|---|
UserTurnStarted | ユーザーが発話を開始(デフォルトで割り込みをトリガー) |
UserTurnEnded | ユーザーが発話を終了(デフォルトで新しいエージェントターンをトリガー) |
UserTextSent | ユーザーのテキスト内容(UserTurnEnded.content 内) |
UserDtmfSent | ユーザーが DTMF ボタンを押した |
エージェントターンイベント(履歴内)
| イベント | 説明 |
|---|---|
AgentTurnStarted | エージェントがターンを開始 |
AgentTurnEnded | エージェントがターンを終了 |
AgentTextSent | エージェントが話したテキスト |
AgentDtmfSent | エージェントが送信した DTMF トーン |
ハンドオフイベント
| イベント | 説明 |
|---|---|
AgentHandedOff | ハンドオフツールに制御を移譲した |
カスタムイベント
| イベント | 説明 |
|---|---|
UserCustomSent | クライアントが WebSocket の custom イベント で送信したカスタムメタデータ |
custom WebSocket イベントを送信したときに受信します。イベントには、クライアントが含めた任意のキーと値のペアを持つ metadata 辞書が含まれます:
出力イベント
出力イベントは、会話を制御するためにエージェントが yield(生成)するイベントです。発話
AgentSendText でメッセージを送信できます。
interruptible フラグを false に設定できます。
通話制御
動的設定
AgentUpdateCall を使って、会話の途中で通話設定(ボイス、発音、言語)を更新します:
| フィールド | 型 | 説明 |
|---|---|---|
type | Literal["update_call"] | イベントタイプ識別子(自動設定) |
voice_id | Optional[str] | エージェントのボイスを更新 |
pronunciation_dict_id | Optional[str] | 発音辞書を更新 |
language | Optional[str] | 音声認識(STT)および音声合成(TTS)モデルで使用される言語を更新 |
ツールイベント
LlmAgent がツール実行を追跡するために発行します:
ロギング
カスタムイベント
エージェントからハーネスに任意のメタデータを送信します:UserCustomSent と組み合わせて、メタデータの双方向交換を実現できます。
ボイスと言語の制御
通話の途中でボイスや音声認識言語を変更します:language フィールドは ASR(音声認識)言語を設定します。Ink STT がサポートする任意の言語コード、または自動言語検出のための "multilingual" を指定できます。
イベント履歴
すべての入力イベントには、会話履歴を含むオプションのhistory フィールドがあります。history が None の場合、そのイベントは履歴リスト内にあります。リストが含まれている場合は、完全な会話コンテキストが添付されています。LlmAgent はこれを自動的に処理するため、履歴を理解する必要があるのはカスタムエージェントを構築する場合のみです。
履歴へのアクセス
履歴に含まれるイベントタイプ
履歴に含まれるイベントタイプ
履歴リストに含まれるイベントは、冗長なネストを避けるため
history=None を持ちます。イベントタイプは通常の入力イベントと同じです:| イベントタイプ | 説明 |
|---|---|
CallStarted | 通話が開始 |
UserTurnStarted | ユーザーが発話を開始 |
UserTextSent | ユーザーの書き起こされた発話 |
UserDtmfSent | ユーザーの DTMF ボタン押下 |
UserTurnEnded | ユーザーが発話を終了 |
AgentTurnStarted | エージェントが応答を開始 |
AgentTextSent | エージェントが話したテキスト |
AgentDtmfSent | エージェントの DTMF トーン |
AgentTurnEnded | エージェントが応答を終了 |
CallEnded | 通話が終了 |
LlmAgent による履歴の処理
LlmAgent による履歴の処理
LlmAgent はイベント履歴を自動的に LLM メッセージに変換します:- ユーザーメッセージ:
UserTextSentイベントから - アシスタントメッセージ:
AgentTextSentイベントから - ツール呼び出し:
AgentToolCalledおよびAgentToolReturnedイベントから
カスタムエージェント: 履歴の利用
カスタムエージェント: 履歴の利用
LlmAgent を使わずにカスタムエージェントを構築する場合、コンテキスト、要約、パターン検出のために履歴を使用できます: