Điều chỉnh từng cuộc trò chuyện với ngữ cảnh được cá nhân hóa cho mỗi người dùng trong ElevenAgents
Mua gói Thành viên QuanTriMang Pro để trải nghiệm website không quảng cáo và sử dụng các tiện ích AI trên QuanTriMang.
Mặc dù tính năng Overrides vẫn được hỗ trợ để thay thế hoàn toàn các câu lệnh hệ thống (system prompt) hoặc tin nhắn mở đầu, bài viết khuyến nghị sử dụng Biến động (Dynamic Variable) làm phương thức ưu tiên để tùy chỉnh phản hồi của agent và đưa dữ liệu theo thời gian thực vào cuộc hội thoại. Biến động mang lại khả năng bảo trì tốt hơn và cách tiếp cận có cấu trúc hơn đối với việc cá nhân hóa.
Tính năng Overrides cho phép trợ lý AI điều chỉnh hành vi cho từng tương tác của người dùng. Bạn có thể truyền dữ liệu và cài đặt tùy chỉnh vào đầu mỗi cuộc hội thoại, giúp trợ lý cá nhân hóa phản hồi và kiến thức dựa trên ngữ cảnh thời gian thực. Các giá trị ghi đè sẽ thay thế hoàn toàn các giá trị mặc định đã được thiết lập trong dashboard của agent.
Tổng quan
Tính năng Overrides cho phép bạn thay đổi hành vi của AI agent theo thời gian thực mà không cần phải tạo nhiều agent khác nhau. Điều này giúp bạn cá nhân hóa phản hồi bằng dữ liệu dành riêng cho từng người dùng.
Bạn có thể kích hoạt tính năng Overrides cho các trường sau trong phần cài đặt bảo mật của agent:
- Câu lệnh hệ thống (System prompt)
- Tin nhắn mở đầu (First message)
- Ngôn ngữ (Language)
- ID giọng nói (Voice ID)
- Mô hình ngôn ngữ lớn (LLM)
- Công cụ (Tools)
- Cơ sở kiến thức (Knowledge base)
- Chế độ chỉ văn bản (Text-only mode)
- Độ ổn định (Stability)
- Tốc độ (Speed)
- Tăng cường độ tương đồng (Similarity boost)
- Từ khóa ASR (ASR keywords)
Khi tính năng Overrides được bật cho một trường, việc cung cấp giá trị ghi đè vẫn là tùy chọn. Nếu không có giá trị nào được cung cấp, agent sẽ sử dụng các giá trị mặc định đã thiết lập trong dashboard. Đối với hầu hết các trường, hệ thống sẽ báo lỗi nếu bạn cung cấp giá trị ghi đè trong khi trường đó chưa được bật tính năng này.
Đối với từ khóa ASR (ASR keywords), hệ thống áp dụng cơ chế "soft disallow": Nếu tùy chọn trong phần Security đang tắt mà phía client vẫn gửi asr.keywords, cuộc hội thoại vẫn tiếp diễn bình thường và các từ khóa đó sẽ bị bỏ qua (không gây lỗi). Hãy bật tính năng ghi đè ASR keywords trong phần cài đặt Security nếu bạn muốn áp dụng việc tăng cường từ khóa cho từng cuộc hội thoại cụ thể. Mỗi cuộc hội thoại hỗ trợ tối đa 50 từ khóa.
Dưới đây là một số ví dụ về các trường hợp sử dụng tính năng Overrides:
- Chào người dùng bằng tên của họ.
- Đưa các thông tin chi tiết về tài khoản vào phản hồi.
- Điều chỉnh ngôn ngữ hoặc giọng điệu của agent dựa trên tùy chọn của người dùng.
- Truyền dữ liệu thời gian thực như số dư tài khoản hoặc trạng thái đơn hàng.
- Tăng độ chính xác khi chuyển đổi giọng nói thành văn bản (ASR) cho các tên riêng hoặc thuật ngữ cụ thể trong từng cuộc gọi (ví dụ: tên các công ty trong hệ thống CRM).
Tính năng Overrides đặc biệt hữu ích cho các ứng dụng đòi hỏi sự tương tác cá nhân hóa hoặc xử lý dữ liệu nhạy cảm của người dùng - những dữ liệu không nên lưu trữ trong cấu hình cơ bản của agent.
Hướng dẫn
Điều kiện tiên quyết
- Một tài khoản ElevenLabs
- Một ElevenLabs Conversational Agent đã được thiết lập
Hướng dẫn này chỉ cho bạn cách ghi đè các thiết lập mặc định của agent, bao gồm: System prompt, First message, LLM, Tools, Knowledge base, TTS settings và ASR keywords.
1. Bật tính năng Overrides
Vì lý do bảo mật, tính năng Overrides bị tắt theo mặc định. Hãy bật các trường mà bạn muốn cho phép ghi đè, chẳng hạn như first_message, prompt.prompt, prompt.tool_ids, prompt.knowledge_base, language hoặc asr.keywords.
Cập nhật qua dashboard
Truy cập vào phần cài đặt agent của bạn và chọn tab Security. Bật các tùy chọn như First message, System prompt, Tools, Knowledge base, ASR keywords và bất kỳ thiết lập nào khác mà bạn muốn ghi đè, chẳng hạn như LLM.
Cập nhật qua giao diện dòng lệnh (CLI)
- Tải cấu hình agent xuống
elevenlabs agents pull --agent "<agent-name>"
- Chỉnh sửa Agent_configs/<agent-name>.json
Đặt các trường trong platform_settings.overrides.conversation_config_override thành true để cho phép ghi đè runtime cho trường đó:
{
"platform_settings": {
"overrides": {
"conversation_config_override": {
"agent": {
"first_message": true,
"language": true,
"prompt": {
"prompt": true,
"tool_ids": true,
"knowledge_base": true
}
},
"tts": { "voice_id": true },
"asr": { "keywords": true }
}
}
}
}
- Đẩy các thay đổi của bạn lên
elevenlabs agents push --agent "<agent-name>"
Cập nhật qua API
Python
from elevenlabs import ElevenLabs
elevenlabs = ElevenLabs()
elevenlabs.conversational_ai.agents.update(
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
platform_settings={
"overrides": {
"conversation_config_override": {
"agent": {
"first_message": True,
"language": True,
"prompt": {
"prompt": True,
"tool_ids": True,
"knowledge_base": True,
},
},
"tts": {"voice_id": True},
"asr": {"keywords": True},
},
},
},
)
TypeScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const elevenlabs = new ElevenLabsClient();
await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
platformSettings: {
overrides: {
conversationConfigOverride: {
agent: {
firstMessage: true,
language: true,
prompt: {
prompt: true,
toolIds: true,
knowledgeBase: true,
},
},
tts: { voiceId: true },
asr: { keywords: true },
},
},
},
});
2. Ghi đè cuộc hội thoại
Trong code của bạn, tại nơi khởi tạo cuộc hội thoại, hãy truyền các thiết lập ghi đè dưới dạng tham số. Các thiết lập ghi đè cho Tools và Knowledge base sẽ thay thế những mảng mặc định cho cuộc hội thoại đó. Các thiết lập ghi đè cho ASR keywords sẽ thay thế danh sách từ khóa mặc định của agent cho cuộc hội thoại đó (tối đa 50 từ khóa).
{
"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"]
}
}
}
Hãy đảm bảo rằng bạn đã cài đặt phiên bản SDK mới nhất.
Python
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()
JavaScript
...
const conversation = await Conversation.startSession({
...
overrides: {
agent: {
prompt: {
prompt: `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.
toolIds: [
"tool_7101k5zvyjhmfg983brhmhkd98n6"
], // Optional: replace the tools available to the agent.
knowledgeBase: [
{
type: "file",
name: "Unladen Swallow Facts",
id: "5xM3yVvZQKV0EfqQpLrJ",
usageMode: "auto",
}
], // Optional: replace the knowledge base available to the agent.
},
firstMessage: `Hi ${customer_name}, how can I help you today?`, // Optional: override the first message.
language: "en" // Optional: override the language.
},
tts: {
voiceId: "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).
similarityBoost: 0.9 // Optional: override similarity boost (0.0 to 1.0).
},
conversation: {
textOnly: 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.
}
},
...
})
Swift
import ElevenLabsSDK
let promptOverride = ElevenLabsSDK.AgentPrompt(
prompt: "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.
)
let agentConfig = ElevenLabsSDK.AgentConfig(
prompt: promptOverride, // Optional: override the system prompt.
firstMessage: "Hi \(customer_name), how can I help you today?", // Optional: override the first message.
language: .en // Optional: override the language.
)
let ttsConfig = ElevenLabsSDK.TTSConfig(
voiceId: "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).
similarityBoost: 0.9 // Optional: override similarity boost (0.0 to 1.0).
)
let conversationConfig = ElevenLabsSDK.ConversationConfig(
textOnly: true // Optional: enable text-only mode (no audio).
)
let overrides = ElevenLabsSDK.ConversationConfigOverride(
agent: agentConfig, // Optional: override agent settings.
tts: ttsConfig, // Optional: override TTS settings.
conversation: conversationConfig // Optional: override conversation settings.
)
let config = ElevenLabsSDK.SessionConfig(
agentId: "",
overrides: overrides
)
let conversation = try await ElevenLabsSDK.Conversation.startSession(
config: config,
callbacks: callbacks
)
Widget
<elevenlabs-convai
agent-id="agent_7101k5zvyjhmfg983brhmhkd98n6"
override-language="es" <!-- Optional: override the language -->
override-prompt="Custom system prompt for this user" <!-- Optional: override the system prompt -->
override-first-message="Hi! How can I help you today?" <!-- Optional: override the first message -->
override-voice-id="custom_voice_id" <!-- Optional: override the voice -->
></elevenlabs-convai>
Khi sử dụng các tùy chọn ghi đè (overrides), hãy lược bỏ những trường mà bạn không muốn thay đổi, thay vì đặt chúng thành chuỗi rỗng hoặc giá trị null. Chỉ bao gồm các trường mà bạn thực sự muốn tùy chỉnh.
Bạn nên đọc
-
Công cụ Voicemail detection trong ElevenAgents
-
Công cụ Agent transfer trong ElevenAgents
-
Công cụ Skip turn trong ElevenAgents
-
Cách phát âm thanh phím bấm trong ElevenAgents
-
Cách kết nối agent đàm thoại ElevenLabs với các công cụ và nguồn dữ liệu bên ngoài bằng MCP
-
Code tools: Chạy logic JavaScript tùy chỉnh trực tiếp trên cơ sở hạ tầng của ElevenLabs
-
Công cụ Flag issue for review trong ElevenAgents
-
Tìm hiểu về các công cụ hệ thống trong ElevenAgents
-
Webhook tools: Kết nối trợ lý của bạn với dữ liệu và hệ thống bên ngoài trong ElevenAgents
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Hướng dẫn AI
AI Tools
Học IT
Hàm Excel