एजेंट ट्रांसफर

तय की गई शर्तों के आधार पर यूज़र को ElevenLabs एजेंटों के बीच आसानी से ट्रांसफर करें।

परिचय

एजेंट-से-एजेंट ट्रांसफर की मदद से, तय शर्तें पूरी होने पर एक ElevenLabs एजेंट चल रही बातचीत दूसरे निर्धारित एजेंट को सौंप सकता है। इससे बहु-स्तरीय कन्वर्सेशनल वर्कफ़्लो बनाए जा सकते हैं, जहाँ अलग-अलग एजेंट खास काम या जटिलता के स्तर संभालते हैं।

उदाहरण के लिए, एक शुरुआती एजेंट (ऑर्केस्ट्रेटर) सामान्य पूछताछ संभाल सकता है और फिर बातचीत के संदर्भ के आधार पर कॉल को किसी विशेष एजेंट को ट्रांसफर कर सकता है। ट्रांसफर नेस्टेड भी हो सकते हैं:

Orchestrator Agent (Initial Qualification)
│
├───> Agent 1 (e.g., Availability Inquiries)
│
├───> Agent 2 (e.g., Technical Support)
│ │
│ └───> Agent 2a (e.g., Hardware Support)
│
└───> Agent 3 (e.g., Billing Issues)
एजेंट ट्रांसफर पदानुक्रम का उदाहरण

उद्देश्य: यूज़र की ज़रूरतों के आधार पर विशेष AI एजेंट्स के बीच बातचीत ट्रांसफ़र करें।

ट्रिगर स्थितियां: LLM को यह टूल तब कॉल करना चाहिए जब:

  • यूज़र के अनुरोध के लिए विशेष जानकारी या अलग एजेंट क्षमताओं की ज़रूरत हो
  • मौजूदा एजेंट क्वेरी को पर्याप्त रूप से संभाल न सके
  • बातचीत का प्रवाह अलग एजेंट प्रकार की ज़रूरत दिखाए

पैरामीटर्स:

  • reason (string, वैकल्पिक): एजेंट ट्रांसफ़र का कारण
  • agent_number (integer, आवश्यक): जिस एजेंट को ट्रांसफ़र करना है उसका शून्य-आधारित नंबर (कॉन्फ़िगर किए गए ट्रांसफ़र नियमों के आधार पर)

फ़ंक्शन कॉल फ़ॉर्मैट:

{
"type": "function",
"function": {
"name": "transfer_to_agent",
"arguments": "{\"reason\": \"User needs billing support\", \"agent_number\": 0}"
}
}

इम्प्लीमेंटेशन: स्थितियों को खास एजेंट IDs से मैप करने वाले ट्रांसफ़र नियम तय करें। कॉन्फ़िगर करें कि मौजूदा एजेंट किन एजेंट्स को ट्रांसफ़र कर सकता है। ट्रांसफ़र कॉन्फ़िगरेशन में एजेंट्स को शून्य-आधारित नंबरों से संदर्भित किया जाता है।

एजेंट ट्रांसफर सक्षम करना

एजेंट ट्रांसफर को transfer_to_agent सिस्टम टूल का उपयोग करके कॉन्फ़िगर किया जाता है।

1

ट्रांसफर टूल जोड़ें

Agent टैब में अपने एजेंट के कॉन्फ़िगरेशन में transfer_to_agent सिस्टम टूल चुनकर एजेंट ट्रांसफर सक्षम करें। टूल जोड़ते समय “Transfer to AI Agent” चुनें।

ट्रांसफर टूल जोड़ें
2

टूल विवरण कॉन्फ़िगर करें (वैकल्पिक)

ट्रांसफर कब ट्रिगर करना है, इस बारे में LLM को मार्गदर्शन देने के लिए आप कस्टम विवरण दे सकते हैं। खाली छोड़ने पर, तय ट्रांसफर नियमों को शामिल करने वाला डिफ़ॉल्ट विवरण इस्तेमाल होगा।

ट्रांसफर टूल विवरण
3

ट्रांसफर नियम तय करें

दूसरे एजेंटों को ट्रांसफर करने के लिए खास नियम कॉन्फ़िगर करें। हर नियम के लिए, यह बताएं:

  • एजेंट: बातचीत ट्रांसफर करने के लिए लक्षित एजेंट।
  • शर्त: उन परिस्थितियों का सामान्य भाषा में विवरण जिनमें ट्रांसफर होना चाहिए (जैसे, “यूज़र बिलिंग विवरण के बारे में पूछता है”, “यूज़र प्रोडक्ट X के लिए तकनीकी सहायता मांगता है”)।
  • ट्रांसफर से पहले देरी (मिलीसेकंड): ट्रांसफर होने से पहले की न्यूनतम देरी (मिलीसेकंड में)। तुरंत ट्रांसफर के लिए डिफ़ॉल्ट 0 है।
  • ट्रांसफर संदेश: ट्रांसफर के दौरान चलाने के लिए वैकल्पिक कस्टम संदेश। खाली छोड़ने पर, ट्रांसफर चुपचाप होगा।
  • पहला संदेश सक्षम करें: ट्रांसफर के बाद ट्रांसफर किया गया एजेंट अपना पहला संदेश चलाए या नहीं। डिफ़ॉल्ट रूप से बंद है।

LLM इन शर्तों और टूल विवरण का उपयोग करके तय करेगा कि कब और किस एजेंट को (नंबर के आधार पर) ट्रांसफर करना है।

ट्रांसफर नियम कॉन्फ़िगरेशन

सुनिश्चित करें कि एजेंट बनाने वाले यूज़र अकाउंट के पास ट्रांसफर नियमों में बताए गए सभी लक्षित एजेंटों के लिए कम-से-कम व्यूअर अनुमतियां हों।

ट्रांसफर व्यवहार

ट्रांसफर होने पर, पैरेंट एजेंट (जो ट्रांसफर शुरू करता है) कुछ कॉन्फ़िगरेशन वैल्यू चाइल्ड एजेंट (जो बातचीत प्राप्त करता है) को देता है, जबकि अन्य पूरी तरह रीसेट हो जाती हैं।

कॉन्फ़िगरेशन इनहेरिटेंस

पैरेंट एजेंट, चाइल्ड एजेंट के अपने कॉन्फ़िगरेशन की परवाह किए बिना, हर चाइल्ड एजेंट पर इन वैल्यू को ओवरराइट करता है:

सेटिंगविवरण
क्लाइंट इवेंट्सक्लाइंट कौन से इवेंट भेजता है (जैसे audio, interruption, user_transcript)।
TTS आउटपुट ऑडियो फ़ॉर्मैटएजेंट की आवाज़ किस फ़ॉर्मैट में भेजी जाती है (जैसे pcm_16000, ulaw_8000)।
ASR इनपुट ऑडियो फ़ॉर्मैटएजेंट को अपेक्षित यूज़र ऑडियो का फ़ॉर्मैट (जैसे pcm_16000, ulaw_8000)।

इसके अलावा, पैरेंट एजेंट की मौजूदा भाषा भी आगे ले जाई जाती है — अगर चाइल्ड एजेंट उस भाषा को सपोर्ट नहीं करता, तो वह अपनी डिफ़ॉल्ट भाषा पर वापस चला जाता है। पोस्ट-कॉल वेबहुक और विश्लेषण कॉन्फ़िगरेशन (जिसमें मूल्यांकन मानदंड और डेटा कलेक्शन आइटम शामिल हैं) भी पूरी बातचीत पर लागू होते हैं।

इनहेरिट नहीं होते

बाकी सभी कॉन्फ़िगरेशन चाइल्ड एजेंट तय करता है, जिनमें ये शामिल हैं, लेकिन इन्हीं तक सीमित नहीं हैं:

  • प्रॉम्प्ट, पहला संदेश, LLM, वर्कफ़्लो, वॉइस, टूल और नॉलेज बेस
  • TTS वॉइस, मॉडल, स्थिरता और अन्य वॉइस सेटिंग्स (agent_output_audio_format को छोड़कर)
  • ASR मॉडल, क्वालिटी और कीवर्ड्स (user_input_audio_format को छोड़कर)
  • टर्न/टाइमआउट, भाषा प्रीसेट्स, अधिकतम अवधि आदि

अलग-अलग व्यवहार से बचने के लिए वर्कफ़्लो में हर एजेंट पर इन सेटिंग्स को एक जैसा कॉन्फ़िगर करें।

ट्रांसक्रिप्ट और चैट हिस्ट्री

पूरी बातचीत के दौरान पूरा ट्रांसक्रिप्ट सुरक्षित रहता है। पहले के हर एजेंट के यूज़र और एजेंट संदेश चैट हिस्ट्री में बने रहते हैं।

ट्रांसफर के दौरान, चाइल्ड एजेंट के LLM को दिखने वाली हिस्ट्री से transfer_to_agent टूल कॉल हटा दिए जाते हैं, ताकि वह हैंडऑफ का उल्लेख किए बिना बातचीत जारी रखे।

पोस्ट-कॉल मूल्यांकन

पोस्ट-कॉल इवैल्यूएटर LLM को पूरा, बिना फ़िल्टर किया हुआ ट्रांसक्रिप्ट मिलता है — यूज़र और एजेंट के सभी संदेश, और ट्रांसफर समेत सभी टूल कॉल।

अलग-अलग संदेशों में agent_id फ़ील्ड नहीं होता। किस एजेंट ने कौन से संदेश दिए, यह जानने के लिए इवैल्यूएटर ट्रांसक्रिप्ट में transfer_to_agent टूल कॉल को बाउंड्री मार्कर के रूप में इस्तेमाल करता है।

API इम्प्लीमेंटेशन

आप API के ज़रिए एजेंट बनाते या अपडेट करते समय transfer_to_agent सिस्टम टूल कॉन्फ़िगर कर सकते हैं।

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Define transfer rules with new options
transfer_rules = [
{
"agent_id": "AGENT_ID_1",
"condition": "When the user asks for billing support.",
"delay_ms": 1000, # 1 second delay
"transfer_message": "I'm connecting you to our billing specialist.",
"enable_transferred_agent_first_message": True,
},
{
"agent_id": "AGENT_ID_2",
"condition": "When the user requests advanced technical help.",
"delay_ms": 0, # Immediate transfer
"transfer_message": None, # Silent transfer
"enable_transferred_agent_first_message": False,
},
]
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi, how can I help you today?",
prompt={
"prompt": "You are a helpful assistant.",
"built_in_tools": {
"transfer_to_agent": {
"type": "system",
"name": "transfer_to_agent",
# Optional custom description
"description": "Transfer the user to a specialized agent based on their request.",
"params": {
"system_tool_type": "transfer_to_agent",
"transfers": transfer_rules,
},
}
},
},
),
),
)
print(response)