Zmienne dynamiczne
Przekazuj wartości czasu działania, by dostosować zachowanie agenta.
Zmienne dynamiczne pozwalają wstawiać wartości czasu działania do wiadomości, promptów systemowych i narzędzi agenta. Dzięki temu możesz personalizować każdą rozmowę danymi użytkownika bez tworzenia wielu agentów.
Omówienie
Zmienne dynamiczne możesz zintegrować z wieloma elementami agenta:
- Promptami systemowymi, aby dostosować zachowanie i kontekst
- Pierwszymi wiadomościami, aby personalizować powitania
- Parametrami i nagłówkami narzędzi, aby przekazywać dane użytkownika
Oto kilka przykładów zastosowania zmiennych dynamicznych:
- Personalizowanie powitań imionami użytkowników
- Uwzględnianie danych konta w odpowiedziach
- Przekazywanie danych do wywołań narzędzi
- Dostosowywanie zachowania na podstawie poziomów subskrypcji
- Dostęp do informacji systemowych, takich jak identyfikator rozmowy lub czas trwania połączenia
Zmienne dynamiczne świetnie nadają się do wstawiania danych użytkownika, których nie należy na stałe wpisywać w konfiguracji agenta.
Systemowe zmienne dynamiczne
Agent ma dostęp do tych automatycznie dostępnych zmiennych systemowych:
system__agent_id- Unikalny identyfikator agenta, który rozpoczął rozmowę (pozostaje stały przez całą rozmowę)system__current_agent_id- Unikalny identyfikator aktualnie aktywnego agenta (zmienia się po przekazaniu do innego agenta)system__caller_id- Numer telefonu osoby dzwoniącej (tylko połączenia głosowe)system__called_number- Docelowy numer telefonu (tylko połączenia głosowe)system__call_duration_secs- Czas trwania połączenia w sekundachsystem__time_utc- Aktualny czas UTC (format ISO)system__time- Aktualny czas w określonej strefie czasowej (format czytelny dla człowieka, np. „piątek, 12:33, 12 grudnia 2025”)system__timezone- Strefa czasowa podana przez użytkownika (musi być prawidłowa dla tzinfo)system__conversation_id- Unikalny identyfikator rozmowy ElevenLabssystem__call_sid- SID połączenia (tylko połączenia twilio)system__call_id- Unikalny identyfikator połączenia SIP trunk (tylko połączenia SIP trunk)system__agent_turns- Łączna liczba tur rozmowy wykonanych przez agenta w tej rozmowie.system__current_agent_turns- Liczba tur rozmowy wykonanych przez bieżącego agenta. Resetuje się przy przekazaniu rozmowy do innego agenta.system__current_subagent_turns- Liczba tur rozmowy wykonanych przez bieżącego subagenta. Resetuje się, gdy workflow przechodzi do innego węzła.system__is_text_only- True, jeśli rozmowa działa wyłącznie w trybie tekstowym, w przeciwnym razie false.system__conversation_history- Reprezentacja bieżącej historii rozmowy zserializowana do JSON. Jest obliczana leniwie w chwili odwołania. Zobacz poniżej szczegóły formatu.
Zmienne systemowe:
- Są dostępne bez konfiguracji w czasie działania
- Mają prefiks
system__(zastrzeżony prefiks) - Są automatycznie aktualizowane przez całą rozmowę
system__.Format historii rozmowy
Zmienna system__conversation_history zawiera obiekt JSON o następującej strukturze:
Każdy wpis zawiera role ("user", "agent" lub "tool") oraz jedno z poniższych pól:
message— tekstowa treść turytool_requests— tablica wywołań narzędzi wykonanych przez agenta wraz z rozwiązanymi wartościami parametrówtool_results— tablica odpowiedzi narzędzi
Jeśli wynik narzędzia lub parametr zawiera zagnieżdżoną historię rozmowy, zostaje ona zastąpiona placeholderem (np. [conversation_history (5 turns)]), aby uniknąć nieograniczonego rekurencyjnego rozwijania.
Ta zmienna przydaje się do przekazywania kontekstu rozmowy do narzędzi (np. webhooków, własnych LLM-ów) lub do uwzględniania historii rozmowy w promptach subagentów podczas przekazywania rozmowy.
Tajne zmienne dynamiczne
Tajne zmienne dynamiczne są wypełniane tak samo jak zwykłe zmienne dynamiczne, ale informują nasze ElevenAgents, że powinny być używane wyłącznie w nagłówkach zmiennych dynamicznych i nigdy nie powinny być wysyłane do dostawcy LLM jako część promptu systemowego agenta lub pierwszej wiadomości.
Zalecamy ich użycie dla tokenów auth lub prywatnych identyfikatorów, których nie należy wysyłać do LLM-a. Aby utworzyć tajną zmienną dynamiczną, po prostu poprzedź ją prefiksem secret__.
Tajne wartości są zwracane w formie zredagowanej jako <REDACTED>, także w webhookach po zakończeniu połączenia i w
API rozmów. Nie używaj prefiksu secret__ dla wartości, które musisz odczytać po
rozmowie. Przekaż je jako zwykłe zmienne dynamiczne albo przekaż niepoufny identyfikator i odszukaj
poufną wartość we własnym systemie.
Aktualizowanie zmiennych dynamicznych z narzędzi
Wywołania narzędzi mogą tworzyć lub aktualizować zmienne dynamiczne, jeśli zwrócą prawidłowy obiekt JSON. Aby określić, co ma zostać wyodrębnione, ustaw ścieżki obiektu za pomocą notacji kropkowej. Jeśli pole lub ścieżka nie istnieje, nic nie zostanie zaktualizowane.
Przykład obiektu odpowiedzi i notacji kropkowej:
- Status odpowiada ścieżce:
response.status - E-mail pierwszego użytkownika w tablicy użytkowników odpowiada ścieżce:
response.users.0.email
Aby zaktualizować zmienną dynamiczną na e-mail pierwszego użytkownika, ustaw przypisanie w ten sposób.

Przypisania są polem każdego narzędzia webhook, opisanym tutaj.
Przewodnik
Wymagania wstępne
- Konto ElevenLabs
- Skonfigurowany agent konwersacyjny ElevenLabs (utwórz go tutaj)
Zdefiniuj zmienne dynamiczne w promptach
Dodaj zmienne, używając podwójnych nawiasów klamrowych {{variable_name}} w:
- Promptach systemowych
- Pierwszych wiadomościach
- Parametrach narzędzi


Zdefiniuj zmienne dynamiczne w narzędziach
Zmienne dynamiczne możesz też zdefiniować w konfiguracji narzędzia.
Aby utworzyć nową zmienną dynamiczną, ustaw typ wartości na Dynamic variable i kliknij przycisk +.


Ustaw placeholdery
Skonfiguruj wartości domyślne do testowania bez przekazywania zmiennych w czasie działania.
Aktualizacja przez panel
Aktualizacja przez CLI
Aktualizacja przez API
Ustaw wartości domyślne dla każdej zmiennej dynamicznej w panelu agenta.

Przekaż zmienne w czasie działania
Podczas rozpoczynania rozmowy podaj zmienne dynamiczne w kodzie:
Upewnij się, że masz zainstalowane najnowsze SDK.
Integracja z publiczną stroną rozmowy
Publiczna strona rozmowy obsługuje zmienne dynamiczne przez parametry URL, dzięki czemu możesz personalizować rozmowy podczas udostępniania linków do agentów. Jest to szczególnie przydatne przy osadzaniu spersonalizowanych agentów na stronach internetowych, w e-mailach lub kampaniach marketingowych.
Metody parametrów URL
Istnieją dwie metody przekazywania zmiennych dynamicznych do publicznej strony rozmowy:
Metoda 1: JSON zakodowany w Base64
Przekaż zmienne jako obiekt JSON zakodowany w Base64 za pomocą parametru vars:
Parametr vars zawiera JSON zakodowany w Base64:
Metoda 2: Pojedyncze parametry zapytania
Przekaż zmienne za pomocą parametrów zapytania z prefiksem var_:
Pierwszeństwo parametrów
Gdy obie metody są używane jednocześnie, pojedyncze parametry var_ mają pierwszeństwo przed zmiennymi zakodowanymi w Base64, aby zapobiec konfliktom:
W tym przykładzie user_name będzie mieć wartość „John” (z var_user_name) zamiast „Jane” (z zakodowanego w Base64 vars).
Przykłady implementacji
Generowanie URL w JavaScript
Generowanie URL w Pythonie
Ręczne tworzenie URL
Obsługiwane typy
Zmienne dynamiczne obsługują te typy wartości:
Rozwiązywanie problemów
Zmienne nie są zastępowane
Sprawdź, czy:
- Nazwy zmiennych są identyczne (z uwzględnieniem wielkości liter)
- Zmienne używają podwójnych nawiasów klamrowych:
{{ variable_name }} - Zmienne są zawarte w obiekcie dynamic_variables
Błędy typów
Upewnij się, że:
- Wartości zmiennych odpowiadają oczekiwanemu typowi
- Wartości są wyłącznie ciągami znaków, liczbami lub wartościami logicznymi