नेविगेशन पर जाएँ

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

तय की गई स्थितियों के आधार पर यूज़र को 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 को छोड़कर)
  • टर्न/टाइमआउट, भाषा प्रीसेट, अधिकतम अवधि आदि

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

Realtime मॉडल इस्तेमाल करने वाला एजेंट केवल दूसरे Realtime मॉडल इस्तेमाल करने वाले एजेंटों से और उन्हें ट्रांसफर कर सकता है।

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

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

ट्रांसफर के दौरान, चाइल्ड एजेंट के 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)