オーバーライド

ユーザーごとにパーソナライズされたコンテキストで、各会話を最適化します。

オーバーライドはシステムプロンプトや最初のメッセージを完全に置き換える場合にも引き続き利用できますが、 エージェントの応答をカスタマイズし、リアルタイムデータを挿入するには、推奨される方法である動的 変数の使用をおすすめします。動的変数は、より優れた 保守性と、パーソナライズのためのより構造化されたアプローチを提供します。

オーバーライドを使うと、アシスタントの動作をユーザーごとのやり取りに合わせて調整できます。各会話の開始時にカスタムデータと設定を渡すことで、リアルタイムのコンテキストに基づき、アシスタントの応答や知識をパーソナライズできます。オーバーライドは、エージェントのダッシュボードで定義されたデフォルト値を完全に上書きします。

概要

オーバーライドを使用すると、複数のエージェントを作成せずに、AIエージェントの動作をリアルタイムで変更できます。これにより、ユーザー固有のデータを使って応答をパーソナライズできます。

エージェントのセキュリティ設定では、以下のフィールドに対してオーバーライドを有効にできます。

  • システムプロンプト
  • 最初のメッセージ
  • 言語
  • 音声ID
  • LLM(大規模言語モデル)
  • ツール
  • ナレッジベース
  • テキストのみモード
  • 安定性
  • 速度
  • 類似性ブースト
  • ASRキーワード

フィールドのオーバーライドを有効にしても、オーバーライドの指定は任意です。指定しない場合、エージェントはダッシュボードで定義されたデフォルト値を使用します。ほとんどのフィールドでは、そのフィールドのオーバーライドが有効でない状態でオーバーライドを指定するとエラーになります。

ASRキーワードにはソフトな拒否処理が適用されます。セキュリティトグルがオフでもクライアントが asr.keywordsを送信した場合、会話は継続され、キーワードは無視されます(エラーにはなりません)。会話ごとのキーワードブーストを 適用するには、セキュリティ設定でASRキーワードのオーバーライドを有効にしてください。1会話あたり最大50個のキーワードをサポートします。

オーバーライドが役立つ例をいくつか紹介します。

  • ユーザーを名前であいさつする
  • 応答にアカウント固有の詳細を含める
  • ユーザーの好みに応じてエージェントの言語やトーンを調整する
  • アカウント残高や注文状況などのリアルタイムデータを渡す
  • ASRキーワードを通じて、通話ごとの名前や用語(CRMの会社名など)の文字起こし精度を高める

オーバーライドは、パーソナライズされた対話が必要なアプリケーションや、エージェントの基本設定に保存すべきでない 機密性の高いユーザーデータを扱う場合に特に役立ちます。

ガイド

前提条件

このガイドでは、デフォルトのエージェントのシステムプロンプト、最初のメッセージ、LLM、ツール、ナレッジベース、TTS設定、ASRキーワードをオーバーライドする方法を説明します。

1

オーバーライドを有効にする

セキュリティ上の理由から、オーバーライドはデフォルトで無効になっています。first_message、prompt.prompt、prompt.tool_ids、prompt.knowledge_base、language、asr.keywordsなど、オーバーライドを許可するフィールドを有効にしてください。

エージェントの設定に移動し、Securityタブを選択します。First message、System prompt、Tools、Knowledge base、ASR keywords、およびLLMなど必要なその他のオーバーライドを有効にします。

オーバーライドを有効化

2

会話をオーバーライド

会話を開始するコードで、オーバーライドをパラメータとして渡します。ツールとナレッジベースのオーバーライドは、その会話のデフォルト配列を置き換えます。ASRキーワードのオーバーライドは、その会話におけるエージェントのデフォルトキーワードリストを置き換えます(最大50キーワード)。

Conversation initiation payload
{
"conversation_config_override": {
"agent": {
"prompt": {
"tool_ids": ["tool_7101k5zvyjhmfg983brhmhkd98n6"],
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto"
}
]
}
},
"asr": {
"keywords": ["Acme Corp", "Contoso", "Globex"]
}
}
}

最新バージョンのSDKがインストールされていることを確認してください。

from elevenlabs.conversational_ai.conversation import Conversation, ConversationInitiationData
...
conversation_override = {
"agent": {
"prompt": {
"prompt": f"The customer's bank account balance is {customer_balance}. They are based in {customer_location}.", # Optional: override the system prompt.
"llm": "gpt-4o", # Optional: override the LLM model.
"tool_ids": [
"tool_7101k5zvyjhmfg983brhmhkd98n6"
], # Optional: replace the tools available to the agent.
"knowledge_base": [
{
"type": "file",
"name": "Unladen Swallow Facts",
"id": "5xM3yVvZQKV0EfqQpLrJ",
"usage_mode": "auto",
}
], # Optional: replace the knowledge base available to the agent.
},
"first_message": f"Hi {customer_name}, how can I help you today?", # Optional: override the first_message.
"language": "en" # Optional: override the language.
},
"tts": {
"voice_id": "custom_voice_id", # Optional: override the voice.
"stability": 0.7, # Optional: override stability (0.0 to 1.0).
"speed": 1.1, # Optional: override speed (0.7 to 1.2).
"similarity_boost": 0.9 # Optional: override similarity boost (0.0 to 1.0).
},
"conversation": {
"text_only": True # Optional: enable text-only mode (no audio).
},
"asr": {
"keywords": ["Acme Corp", "Contoso"] # Optional: boost ASR for per-call terms (max 50). Requires Security → ASR keywords.
}
}
config = ConversationInitiationData(
conversation_config_override=conversation_override
)
conversation = Conversation(
...
config=config,
...
)
conversation.start_session()

オーバーライドを使用する場合は、空文字列やnull値を設定するのではなく、オーバーライドしたくないフィールドを省略してください。カスタマイズしたいフィールドのみを含めてください。

正しいLLMモデル文字列を確認するには、対応するすべてのLLMモデルとその正確な文字列識別子が記載されているAgent APIリファレンスを参照してください。