Tìm hiểu về các công cụ hệ thố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.
Các công cụ hệ thống (System tools) cho phép trợ lý của bạn cập nhật trạng thái nội bộ của một cuộc hội thoại. Khác với Webhook tools hoặc Client tools, các công cụ hệ thống không thực hiện những lệnh gọi API bên ngoài hay kích hoạt các hàm phía client; thay vào đó, chúng điều chỉnh trạng thái nội bộ của cuộc hội thoại mà không cần kết nối với những hệ thống bên ngoài.
Tổng quan
Một số ứng dụng yêu cầu các agent phải kiểm soát luồng hoặc trạng thái của cuộc hội thoại. Các công cụ hệ thống cung cấp khả năng này bằng cách cho phép trợ lý thực hiện những thao tác liên quan đến trạng thái cuộc gọi mà không cần giao tiếp với các máy chủ bên ngoài hoặc phía client.
Các công cụ hệ thống khả dụng
- Kết thúc cuộc gọi (End call): Cho phép agent tự động kết thúc cuộc hội thoại khi các điều kiện phù hợp được đáp ứng.
- Phát hiện ngôn ngữ (Language detection): Cho phép agent tự động chuyển sang ngôn ngữ của người dùng trong suốt cuộc hội thoại.
- Chuyển giao agent (Agent transfer): Chuyển đổi cuộc hội thoại giữa các AI agent một cách liền mạch dựa trên các điều kiện đã xác định.
- Chuyển cuộc gọi đến số điện thoại (Transfer to number): Chuyển cuộc gọi đến các số điện thoại bên ngoài hoặc địa chỉ SIP URI.
- Bỏ qua lượt (Skip turn): Cho phép agent bỏ qua lượt nói của mình nếu mô hình ngôn ngữ lớn (LLM) xác định rằng agent chưa nên lên tiếng.
- Phát âm thanh phím bấm (Play keypad touch tone): Cho phép agent phát các tín hiệu DTMF để tương tác với những hệ thống điện thoại tự động và điều hướng menu.
- Phát hiện hộp thư thoại (Voicemail detection): Cho phép agent tự động nhận diện hệ thống hộp thư thoại và tùy chọn để lại tin nhắn.
- Cập nhật trạng thái (Update state): Cho phép agent cập nhật các biến động (dynamic variables) ngay trong cuộc hội thoại thông qua những biểu thức.
Triển khai
Khi tạo một agent thông qua API, bạn có thể thêm các công cụ hệ thống vào cấu hình agent của mình. Dưới đây là cách triển khai công cụ kết thúc cuộc gọi và công cụ phát hiện ngôn ngữ:
Tích hợp LLM tùy chỉnh
Khi sử dụng một mô hình ngôn ngữ lớn (LLM) tùy chỉnh với các agent ElevenLabs, những công cụ hệ thống sẽ được hiển thị dưới dạng các định nghĩa hàm (function definition) mà LLM của bạn có thể gọi. Mỗi công cụ hệ thống đều có các tham số và điều kiện kích hoạt cụ thể:
Các công cụ hệ thống khả dụng
Kết thúc cuộc gọi (End call)
Mục đích: Tự động kết thúc cuộc hội thoại khi các điều kiện phù hợp được đáp ứng.
Điều kiện kích hoạt: LLM nên gọi công cụ này khi:
- Nhiệm vụ chính đã hoàn tất và người dùng đã hài lòng.
- Cuộc hội thoại đã đi đến kết thúc tự nhiên với sự đồng thuận từ cả hai phía.
- Người dùng bày tỏ rõ ràng mong muốn kết thúc cuộc hội thoại.
Tham số:
reason(chuỗi, bắt buộc): Lý do kết thúc cuộc gọi.message(chuỗi, tùy chọn): Tin nhắn chào tạm biệt gửi đến người dùng trước khi kết thúc cuộc gọi.
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "end_call",
"arguments": "{\"reason\": \"Task completed successfully\", \"message\": \"Thank you for using our service. Have a great day!\"}"
}
}
Triển khai: Cấu hình dưới dạng công cụ hệ thống (system tool) trong phần cài đặt agent của bạn. Mô hình ngôn ngữ lớn (LLM) sẽ nhận được các hướng dẫn chi tiết về thời điểm gọi hàm này.
Phát hiện ngôn ngữ
Mục đích: Tự động chuyển sang ngôn ngữ của người dùng trong quá trình hội thoại.
Điều kiện kích hoạt: LLM nên gọi công cụ này khi:
- Người dùng sử dụng ngôn ngữ khác với ngôn ngữ đang dùng trong cuộc hội thoại
- Người dùng yêu cầu chuyển đổi ngôn ngữ một cách rõ ràng
- Cuộc hội thoại cần hỗ trợ đa ngôn ngữ
Các tham số:
reason(chuỗi, bắt buộc): Lý do thực hiện chuyển đổi ngôn ngữlanguage(chuỗi, bắt buộc): Mã ngôn ngữ cần chuyển sang (phải nằm trong danh sách các ngôn ngữ được hỗ trợ)
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "language_detection",
"arguments": "{\"reason\": \"User requested Spanish\", \"language\": \"es\"}"
}
}
Triển khai: Định cấu hình các ngôn ngữ được hỗ trợ trong phần cài đặt agent và thêm công cụ hệ thống phát hiện ngôn ngữ. Agent sẽ tự động chuyển đổi ngôn ngữ thoại và phản hồi cho phù hợp với ngôn ngữ được phát hiện.
Chuyển đổi agent (Agent transfer)
Mục đích: Chuyển đổi các cuộc hội thoại giữa các AI agent chuyên biệt dựa trên nhu cầu của người dùng.
Điều kiện kích hoạt: Mô hình ngôn ngữ lớn (LLM) sẽ gọi công cụ này khi:
- Yêu cầu của người dùng đòi hỏi kiến thức chuyên môn hoặc các năng lực khác mà agent hiện tại không có.
- Agent hiện tại không thể xử lý thỏa đáng truy vấn của người dùng.
- Luồng hội thoại cho thấy cần một loại agent khác.
Các tham số:
reason(chuỗi, tùy chọn): Lý do thực hiện chuyển đổi agent.agent_number(số nguyên, bắt buộc): Chỉ số (bắt đầu từ 0) của agent cần chuyển đến (dựa trên các quy tắc chuyển đổi đã được định cấu hình).
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "transfer_to_agent",
"arguments": "{\"reason\": \"User needs billing support\", \"agent_number\": 0}"
}
}
Triển khai: Xác định các quy tắc chuyển cuộc hội thoại bằng cách thiết lập điều kiện tương ứng với những ID agent cụ thể. Cấu hình để chỉ định những agent nào mà agent hiện tại có thể chuyển cuộc hội thoại tới. Trong cấu hình chuyển cuộc hội thoại, các agent được định danh bằng các con số bắt đầu từ 0.
Chuyển cuộc hội thoại tới số điện thoại (Transfer to number)
Mục đích: Chuyển giao cuộc hội thoại một cách liền mạch cho agent con người trong trường hợp sự hỗ trợ từ AI là chưa đủ.
Các điều kiện kích hoạt: LLM nên gọi công cụ này khi:
- Xuất hiện các vấn đề phức tạp đòi hỏi sự đánh giá từ con người.
- Người dùng trực tiếp yêu cầu sự hỗ trợ từ con người.
- AI đạt đến giới hạn năng lực xử lý đối với yêu cầu cụ thể đó.
- Các giao thức chuyển giao được kích hoạt.
Các tham số:
reason(chuỗi, tùy chọn): Lý do thực hiện chuyển cuộc hội thoại.transfer_number(chuỗi, bắt buộc): Số điện thoại cần chuyển tới (phải khớp với các số đã được cấu hình).client_message(chuỗi, bắt buộc): Tin nhắn/thông báo dành cho client trong thời gian chờ chuyển cuộc hội thoại.agent_message(chuỗi, bắt buộc): Tin nhắn/thông báo dành cho agent con người tiếp nhận cuộc gọi.
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "transfer_to_number",
"arguments": "{\"reason\": \"Complex billing issue\", \"transfer_number\": \"+15551234567\", \"client_message\": \"I'm transferring you to a billing specialist who can help with your account.\", \"agent_message\": \"Customer has a complex billing dispute about order #12345 from last month.\"}"
}
}
Triển khai: Cấu hình các số điện thoại chuyển tiếp và các điều kiện đi kèm. Thiết lập nội dung tin nhắn dành cho cả client lẫn nhân viên trực tổng đài tiếp nhận cuộc gọi. Hỗ trợ cả Twilio và SIP trunking.
Cho qua lượt hội thoại (Skip turn)
Mục đích: Cho phép agent tạm dừng và chờ phản hồi từ người dùng mà không cần đưa ra phản hồi bằng lời nói.
Điều kiện kích hoạt: Mô hình ngôn ngữ lớn (LLM) nên gọi công cụ này khi:
- Người dùng bày tỏ nhu cầu cần thêm thời gian (“Cho tôi một chút thời gian”, “Để tôi suy nghĩ đã”)
- Người dùng yêu cầu tạm dừng luồng hội thoại
- Agent nhận thấy người dùng cần thời gian để xử lý thông tin
Các tham số:
reason(chuỗi ký tự, tùy chọn): Lý do giải thích tại sao cần tạm dừng (có thể nhập tự do)
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "skip_turn",
"arguments": "{\"reason\": \"User requested time to think\"}"
}
}
Triển khai: Không cần cấu hình bổ sung. Công cụ này chỉ đơn giản ra tín hiệu cho agent giữ im lặng cho đến khi người dùng lên tiếng lần nữa.
Phát âm thanh phím bấm (DTMF)
Các tham số:
reason(chuỗi, tùy chọn): Lý do phát âm thanh DTMF (ví dụ: “chuyển đến máy nhánh”, “nhập mã PIN”)dtmf_tones(chuỗi, bắt buộc): Chuỗi DTMF cần phát. Các ký tự hợp lệ: 0-9, *, #, w (tạm dừng 0,5 giây), W (tạm dừng 1 giây)
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "play_keypad_touch_tone",
"arguments": "{"reason": "Navigating to customer service", "dtmf_tones": "2"}"
}
}
Phát hiện hộp thư thoại (Voicemail detection)
Các tham số:
reason(chuỗi, bắt buộc): Lý do phát hiện hộp thư thoại (ví dụ: “phát hiện lời chào tự động”, “không có phản hồi từ con người”)
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "voicemail_detection",
"arguments": "{\"reason\": \"Automated greeting detected with request to leave message\"}"
}
}
Cập nhật trạng thái (Update state)
Mục đích: Cho phép agent cập nhật một hoặc nhiều biến động (dynamic variables) dựa trên nội dung cuộc hội thoại mà không cần gọi API bên ngoài.
Điều kiện kích hoạt: LLM nên gọi công cụ này khi:
- Cuộc hội thoại cung cấp thông tin cần được ghi lại (ví dụ: dấu hiệu cần chuyển giao, tùy chọn đã chọn, hoặc giá trị do người dùng cung cấp).
- Một thao tác cập nhật trạng thái đã được cấu hình phụ thuộc vào giá trị mà LLM cần đánh giá hoặc trích xuất từ cuộc hội thoại.
Tham số:
Các tham số của hàm phụ thuộc vào cách cấu hình công cụ. Mỗi thao tác cập nhật trạng thái sử dụng giá trị do LLM trích xuất sẽ thêm một thuộc tính vào schema; thuộc tính này được đặt tên theo biến động tương ứng và có kiểu dữ liệu là chuỗi (string), số (number) hoặc giá trị logic (boolean). Các thao tác cập nhật trạng thái chỉ dựa trên hằng số hoặc các biến động khác sẽ không thêm bất kỳ tham số nào.
Định dạng gọi hàm:
{
"type": "function",
"function": {
"name": "update_state",
"arguments": "{\"should_escalate\": true}"
}
}
Cách triển khai: Trình tác vụ đánh giá mọi biểu thức đã cấu hình bằng cách sử dụng các tham số được trích xuất cộng với các biến động hiện tại của cuộc hội thoại, sau đó gán kết quả cho các biến động tương ứng. Không có yêu cầu bên ngoài nào được thực hiện.
Python
from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Each system tool is keyed by name under built_in_tools.
# Leave "description" blank to use the default, tool-specific prompt.
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
prompt={
"built_in_tools": {
"end_call": {
"type": "system",
"name": "end_call",
"description": "",
"params": {"system_tool_type": "end_call"},
},
"language_detection": {
"type": "system",
"name": "language_detection",
"description": "",
"params": {"system_tool_type": "language_detection"},
},
}
},
),
),
)
JavaScript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const elevenlabs = new ElevenLabsClient({
apiKey: "YOUR_API_KEY",
});
// Each system tool is keyed by name under builtInTools.
// Leave "description" blank to use the default, tool-specific prompt.
await elevenlabs.conversationalAi.agents.create({
conversationConfig: {
agent: {
prompt: {
builtInTools: {
endCall: {
type: "system",
name: "end_call",
description: "",
params: { systemToolType: "end_call" },
},
languageDetection: {
type: "system",
name: "language_detection",
description: "",
params: { systemToolType: "language_detection" },
},
},
},
},
},
});
Câu hỏi thường gặp
Các công cụ hệ thống có thể kết hợp với những loại công cụ khác không?
Có, các công cụ hệ thống có thể được sử dụng cùng với những công cụ webhook và công cụ client trong cùng một trợ lý. Điều này cho phép tạo ra chức năng toàn diện, kết hợp giữa việc quản lý trạng thái nội bộ và các tương tác bên ngoài.
Bạn nên đọc
-
Kiểm soát cách ElevenAgents hoạt động trong môi trường thực tế
-
Thêm âm thanh nền, áp dụng bộ lọc giọng nói cho 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
-
Cách điều chỉnh tốc độ nói của ElevenLabs agent
-
Cách thiết kế giọng nói sống động, lôi cuốn cho ElevenLabs Agents
-
Cấu hình luồng hội thoại trong ElevenAgents
-
Quản lý tài liệu trong kho kiến thức ElevenAgents
-
Thiết lập cơ sở kiến thức cho ElevenAgents
-
Cấu hình file đính kèm và nhập liệu qua bàn phím cho agent trong ElevenLabs
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