メインコンテンツへスキップ
イベントは、エージェントと Cartesia プラットフォーム間の通信に使う型付きの Python オブジェクトです。エージェントはハーネス(実行環境)から 入力イベント を受け取り、出力イベント を yield(生成)して会話を制御します。
どのイベントがエージェントをトリガーするか、また DTMF への応答や割り込みの抑止などの動作をカスタマイズする方法については 会話ループの制御 を参照してください。

入力イベント

入力イベントは、Cartesia ハーネスからエージェントが受け取るイベントです。すべての入力イベントには、完全な会話履歴を含むオプションの history フィールドがあります。historyNone の場合、そのイベントは履歴リスト内で使用されています。history にリストが含まれている場合、そのイベントには完全な会話コンテキストが添付されています。

通話ライフサイクル

ユーザーターンイベント

エージェントターンイベント(履歴内)

ハンドオフイベント

カスタムイベント

クライアントアプリケーションがコールストリームに custom WebSocket イベントを送信したときに受信します。イベントには、クライアントが含めた任意のキーと値のペアを持つ metadata 辞書が含まれます:

出力イベント

出力イベントは、会話を制御するためにエージェントが yield(生成)するイベントです。

発話

AgentSendText でメッセージを送信できます。
デフォルトでは、ユーザーはエージェントを中断できます。免責事項やその他の重要なメッセージで中断されたくない場合は、interruptible フラグを false に設定できます。

通話制御

動的設定

AgentUpdateCall を使って、会話の途中で通話設定(ボイス、発音、言語)を更新します:
AgentUpdateCall パラメータ: すべてのフィールドはオプションで、設定されたフィールドのみが更新されます。

ツールイベント

LlmAgent がツール実行を追跡するために発行します:

ロギング

カスタムイベント

エージェントからハーネスに任意のメタデータを送信します:
UserCustomSent と組み合わせて、メタデータの双方向交換を実現できます。

ボイスと言語の制御

通話の途中でボイスや音声認識言語を変更します:
language フィールドは ASR(音声認識)言語を設定します。Ink STT がサポートする任意の言語コード、または自動言語検出のための "multilingual" を指定できます。

イベント履歴

すべての入力イベントには、会話履歴を含むオプションの history フィールドがあります。historyNone の場合、そのイベントは履歴リスト内にあります。リストが含まれている場合は、完全な会話コンテキストが添付されています。LlmAgent はこれを自動的に処理するため、履歴を理解する必要があるのはカスタムエージェントを構築する場合のみです。

履歴へのアクセス

履歴リストに含まれるイベントは、冗長なネストを避けるため history=None を持ちます。イベントタイプは通常の入力イベントと同じです:
LlmAgent はイベント履歴を自動的に LLM メッセージに変換します:
  • ユーザーメッセージ: UserTextSent イベントから
  • アシスタントメッセージ: AgentTextSent イベントから
  • ツール呼び出し: AgentToolCalled および AgentToolReturned イベントから
つまり LLM は、過去のツール呼び出しとその結果を含む完全なコンテキストを把握できるため、不必要な API 呼び出しを行わずにその情報を参照できます。
LlmAgent を使わずにカスタムエージェントを構築する場合、コンテキスト、要約、パターン検出のために履歴を使用できます: