Przejdź do nawigacji

Przekazanie do agenta

Płynnie przekazuj użytkownika między agentami ElevenLabs na podstawie określonych warunków.

Omówienie

Przekazywanie między agentami pozwala agentowi ElevenLabs przekazać trwającą rozmowę innemu wskazanemu agentowi, gdy zostaną spełnione określone warunki. Umożliwia to wielopoziomowe workflow rozmów, w których różni agenci obsługują konkretne zadania lub poziomy złożoności.

Na przykład pierwszy agent (Orkiestrator) może obsługiwać ogólne zapytania, a następnie przekazać połączenie wyspecjalizowanemu agentowi zależnie od kontekstu rozmowy. Przekazania mogą być też zagnieżdżone:

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)
Przykładowa hierarchia przekazywania między agentami

Cel: Przekazywanie rozmów między wyspecjalizowanymi agentami AI zależnie od potrzeb użytkownika.

Warunki wywołania: LLM powinien wywołać to narzędzie, gdy:

  • Prośba użytkownika wymaga specjalistycznej wiedzy lub innych możliwości agenta
  • Obecny agent nie może odpowiednio obsłużyć zapytania
  • Przebieg rozmowy wskazuje na potrzebę innego typu agenta

Parametry:

  • reason (string, opcjonalnie): Powód przekazania do innego agenta
  • agent_number (integer, wymagane): Numer agenta liczony od zera, do którego należy przekazać rozmowę (na podstawie skonfigurowanych zasad przekazywania)

Format wywołania funkcji:

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

Implementacja: Zdefiniuj zasady przekazywania, które mapują warunki na konkretne identyfikatory agentów. Skonfiguruj, do których agentów obecny agent może przekazywać rozmowy. W konfiguracji przekazywania agenci są oznaczani numerami liczonymi od zera.

Włączanie przekazywania między agentami

Przekazywanie między agentami konfiguruje się za pomocą narzędzia systemowego transfer_to_agent.

1

Dodaj narzędzie przekazywania

Włącz przekazywanie między agentami, wybierając narzędzie systemowe transfer_to_agent w konfiguracji agenta na karcie Agent. Podczas dodawania narzędzia wybierz „Transfer to AI Agent”.

Dodawanie narzędzia przekazywania
2

Skonfiguruj opis narzędzia (opcjonalnie)

Możesz dodać własny opis, aby wskazać LLM, kiedy ma uruchomić przekazanie. Jeśli pozostawisz to pole puste, użyty zostanie domyślny opis obejmujący zdefiniowane reguły przekazywania.

Opis narzędzia przekazywania
3

Zdefiniuj reguły przekazywania

Skonfiguruj konkretne reguły przekazywania do innych agentów. Dla każdej reguły określ:

  • Agent: Agent docelowy, do którego ma zostać przekazana rozmowa.
  • Warunek: Opis w języku naturalnym sytuacji, w których ma nastąpić przekazanie (np. „Użytkownik pyta o szczegóły płatności”, „Użytkownik prosi o pomoc techniczną dotyczącą produktu X”).
  • Opóźnienie przed przekazaniem (milisekundy): Minimalne opóźnienie (w milisekundach) przed przekazaniem. Domyślnie 0, czyli natychmiastowe przekazanie.
  • Komunikat przekazania: Opcjonalny własny komunikat odtwarzany podczas przekazania. Jeśli pozostawisz to pole puste, przekazanie nastąpi bez komunikatu.
  • Włącz pierwszą wiadomość: Określa, czy agent przejmujący rozmowę ma odtworzyć swoją pierwszą wiadomość po przekazaniu. Domyślnie wyłączone.

LLM użyje tych warunków wraz z opisem narzędzia, aby zdecydować, kiedy i do którego agenta (według numeru) przekazać rozmowę.

Konfiguracja reguł przekazywania

Upewnij się, że konto użytkownika tworzącego agenta ma co najmniej uprawnienia przeglądającego do wszystkich agentów docelowych wskazanych w regułach przekazywania.

Działanie przekazywania

Gdy następuje przekazanie, agent nadrzędny (ten, który je inicjuje) przekazuje określone wartości konfiguracji agentowi podrzędnemu (temu, który przejmuje rozmowę), a pozostałe są całkowicie resetowane.

Dziedziczenie konfiguracji

Agent nadrzędny nadpisuje poniższe wartości u każdego agenta podrzędnego, niezależnie od jego własnej konfiguracji:

UstawienieOpis
Zdarzenia klientaZdarzenia wysyłane przez klienta (np. audio, interruption, user_transcript).
Format audio wyjściowego TTSFormat, w którym wysyłana jest mowa agenta (np. pcm_16000, ulaw_8000).
Format audio wejściowego ASRFormat audio użytkownika oczekiwany przez agenta (np. pcm_16000, ulaw_8000).

Dodatkowo przekazywany jest bieżący język agenta nadrzędnego — jeśli agent podrzędny go nie obsługuje, używa własnego języka domyślnego. Konfiguracja webhooka i analizy po rozmowie (w tym kryteria oceny i elementy zbierania danych) również obejmuje całą rozmowę.

Niedziedziczone ustawienia

Wszystkie pozostałe ustawienia konfiguruje agent podrzędny, między innymi:

  • Prompt, pierwsza wiadomość, LLM, workflow, głos, narzędzia i baza wiedzy
  • Głos TTS, model, stabilność i inne ustawienia głosu (z wyjątkiem agent_output_audio_format)
  • Model ASR, jakość i słowa kluczowe (z wyjątkiem user_input_audio_format)
  • Tury/limity czasu, ustawienia języka, maksymalny czas trwania itd.

Konfiguruj te ustawienia spójnie dla każdego agenta w workflow, aby uniknąć rozbieżności w działaniu.

Agent korzystający z modelu Realtime może przekazywać rozmowy tylko do i od innych agentów korzystających z modelu Realtime.

Transkrypcja i historia czatu

Pełna transkrypcja jest zachowywana przez całą rozmowę. Wiadomości użytkownika i agenta od wszystkich wcześniejszych agentów pozostają w historii czatu.

Podczas przekazania wywołania narzędzia transfer_to_agent są usuwane z historii widocznej dla LLM agenta podrzędnego, dzięki czemu kontynuuje on rozmowę bez wspominania o przekazaniu.

Ocena po rozmowie

LLM oceniający po rozmowie otrzymuje pełną, niefiltrowaną transkrypcję — wszystkie wiadomości użytkownika i agenta oraz wszystkie wywołania narzędzi, w tym przekazanie.

Poszczególne wiadomości nie mają pola agent_id. Aby określić, który agent utworzył dane wiadomości, moduł oceniający używa wywołania narzędzia transfer_to_agent jako znacznika granicy w transkrypcji.

Implementacja API

Możesz skonfigurować narzędzie systemowe transfer_to_agent podczas tworzenia lub aktualizowania agenta przez API.

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)