Dynamische Variablen
Übergeben Sie Laufzeitwerte, um das Verhalten Ihres Agenten zu personalisieren.
Dynamische Variablen ermöglichen es Ihnen, Laufzeitwerte in die Nachrichten, System-Prompts und Tools Ihres Agenten einzufügen. So können Sie jede Unterhaltung mit nutzerspezifischen Daten personalisieren, ohne mehrere Agenten zu erstellen.
Übersicht
Dynamische Variablen lassen sich in mehrere Bereiche Ihres Agenten integrieren:
- System-Prompts, um Verhalten und Kontext anzupassen
- Erste Nachrichten, um Begrüßungen zu personalisieren
- Tool-Parameter und Header, um nutzerspezifische Daten zu übergeben
Hier sind einige Beispiele, bei denen dynamische Variablen nützlich sind:
- Begrüßungen personalisieren mit Nutzernamen
- Kontodetails einbeziehen in Antworten
- Daten übergeben an Tool-Aufrufe
- Verhalten anpassen anhand von Abonnementstufen
- Auf Systeminformationen zugreifen wie Unterhaltungs-ID oder Anrufdauer
Dynamische Variablen unterstützen drei Werttypen:
Dynamische Systemvariablen
Ihr Agent hat in jeder Unterhaltung ohne Laufzeitkonfiguration Zugriff auf integrierte system__*-Variablen. Diese Variablen haben den reservierten Namespace-Präfix system__ und werden im Verlauf der Unterhaltung automatisch aktualisiert. Benutzerdefinierte dynamische Variablen dürfen das Präfix system__ nicht verwenden oder Systemvariablen überschreiben.
Mit † markierte Variablen ändern sich zwischen Gesprächsrunden. Wenn Sie sie in Prompt-Text platzieren, kann dies das Prompt-Caching verhindern. Alternativen finden Sie unter Best Practices.
Agenten- und Unterhaltungsidentität
Zeit und Zeitzone
Telefonie und Messaging
Diese Variablen werden für Telefonie- und Messaging-Kanäle ausgefüllt, wenn sie zutreffen:
Unterhaltungsstatus pro Gesprächsrunde
Format des Unterhaltungsverlaufs
Die Variable system__conversation_history enthält ein JSON-Objekt mit der folgenden Struktur:
Jeder Eintrag enthält eine role ("user", "agent" oder "tool") und eines der folgenden Elemente:
message: Der Textinhalt der Gesprächsrundetool_requests: Ein Array von Tool-Aufrufen des Agenten mit aufgelösten Parameterwertentool_results: Ein Array von Tool-Antworten
Wenn ein Tool-Ergebnis oder Parameter einen verschachtelten Unterhaltungsverlauf enthält, wird er durch einen Platzhalter ersetzt (z. B. [conversation_history (5 turns)]), um eine unbegrenzte rekursive Erweiterung zu vermeiden.
Diese Variable ist nützlich, um Unterhaltungskontext an Tools weiterzugeben (z. B. Webhooks oder benutzerdefinierte LLMs) oder um während Übergaben Unterhaltungsverläufe in Subagent-Prompts einzubeziehen.
Geheime dynamische Variablen
Geheime dynamische Variablen werden auf dieselbe Weise wie normale dynamische Variablen ausgefüllt, signalisieren ElevenAgents jedoch, dass sie nur in Headern dynamischer Variablen verwendet und niemals als Teil des System-Prompts oder der ersten Nachricht eines Agenten an einen LLM-Anbieter gesendet werden dürfen.
Verwenden Sie geheime dynamische Variablen für Authentifizierungstokens oder private IDs, die nicht an ein LLM gesendet werden sollen. Um eine geheime dynamische Variable zu erstellen, stellen Sie der dynamischen Variable secret__ voran.
Geheime Werte werden maskiert gespeichert, daher gibt die Conversations API sie als <REDACTED> zurück.
Webhooks für Transkriptionen nach dem Anruf liefern die ursprünglichen Werte. Stellen Sie daher sicher, dass Ihr Webhook-Endpunkt
sie als Geheimnisse behandelt. Verwenden Sie das Präfix secret__ nicht für Werte, die Sie über die
Conversations API wieder abrufen müssen. Übergeben Sie diese als reguläre dynamische Variablen oder übergeben Sie eine nicht sensible Kennung und
rufen Sie den sensiblen Wert in Ihrem eigenen System ab.
Dynamische Variablen über Tools aktualisieren
Tool-Aufrufe können dynamische Variablen erstellen oder aktualisieren, wenn sie ein gültiges JSON-Objekt zurückgeben. Um festzulegen, was extrahiert werden soll, setzen Sie die Objektpfade mit Punktnotation. Wenn das Feld oder der Pfad nicht existiert, wird nichts aktualisiert.
Beispiel für ein Antwortobjekt und Punktnotation:
- Status entspricht dem Pfad:
response.status - Die E-Mail-Adresse des ersten Nutzers im Nutzer-Array entspricht dem Pfad:
response.users.0.email
Um eine dynamische Variable auf die E-Mail-Adresse des ersten Nutzers zu aktualisieren, legen Sie die Zuweisung wie folgt fest.

Zuweisungen werden für jedes Webhook-Tool konfiguriert. Siehe Tool-Zuweisungen in der API-Referenz.
Anleitung
Voraussetzungen:
- Ein ElevenLabs-Konto
- Ein konfigurierter ElevenAgents-Agent (folgen Sie dem Schnellstart, um einen zu erstellen)
Dynamische Variablen in Prompts definieren
Fügen Sie Variablen mit doppelten geschweiften Klammern {{variable_name}} hinzu in:
- System-Prompts
- Ersten Nachrichten
- Tool-Parametern


Dynamische Variablen in Tools definieren
Sie können dynamische Variablen auch in der Tool-Konfiguration definieren.
Um eine neue dynamische Variable zu erstellen, setzen Sie den Werttyp auf Dynamische Variable und klicken Sie auf die Schaltfläche +.


Platzhalter festlegen
Konfigurieren Sie Standardwerte zum Testen, ohne Variablen zur Laufzeit zu übergeben.
Über das Dashboard aktualisieren
Über die CLI aktualisieren
Über die API aktualisieren
Legen Sie im Dashboard des Agenten Standardwerte für jede dynamische Variable fest.

Variablen zur Laufzeit übergeben
Geben Sie beim Starten einer Unterhaltung die dynamischen Variablen in Ihrem Code an:
Stellen Sie sicher, dass Sie das aktuelle SDK installiert haben.
Integration der öffentlichen Talk-to-Seite
Die öffentliche Talk-to-Seite unterstützt dynamische Variablen über URL-Parameter. So können Sie Unterhaltungen personalisieren, wenn Sie Agenten-Links teilen. Das ist besonders nützlich, um personalisierte Agenten in Websites, E-Mails oder Marketingkampagnen einzubetten.
Methoden für URL-Parameter
Es gibt zwei Methoden, um dynamische Variablen an die öffentliche Talk-to-Seite zu übergeben:
Methode 1: Base64-kodiertes JSON
Übergeben Sie Variablen als Base64-kodiertes JSON-Objekt über den Parameter vars:
Der Parameter vars enthält Base64-kodiertes JSON:
Methode 2: Einzelne Abfrageparameter
Übergeben Sie Variablen mit Abfrageparametern mit dem Präfix var_:
Parameterpriorität
Wenn beide Methoden gleichzeitig verwendet werden, haben einzelne var_-Parameter Vorrang vor den Base64-kodierten Variablen, um Konflikte zu vermeiden:
In diesem Beispiel ist user_name "John" (aus var_user_name) statt "Jane" (aus dem Base64-kodierten vars).
Implementierungsbeispiele
JavaScript-URL-Erstellung
Python-URL-Erstellung
Manuelle URL-Erstellung
Best Practices
Legen Sie eine Zeitzone fest, statt die aktuelle Uhrzeit in Prompts einzufügen
Variablen im System-Prompt, in Workflow-Knoten und Prozeduren werden bei jeder Gesprächsrunde aufgelöst. Wenn sich ein Wert zwischen Gesprächsrunden ändert, kann der Prompt nicht zwischengespeichert werden. Das erhöht Kosten und Latenz. {{system__time_utc}} und {{system__time_second}} ändern sich bei jeder Gesprächsrunde; {{system__time}} und {{system__time_minute}} ändern sich jede Minute.
Um dem Agenten das aktuelle Datum und die aktuelle Uhrzeit bereitzustellen, legen Sie über die Zeitzonen-Schaltfläche im System-Prompt-Editor eine Zeitzone fest (conversation_config.agent.prompt.timezone), statt {{system__time}} oder {{system__time_utc}} in den Prompt-Text einzufügen. Wenn eine Zeitzone festgelegt ist, fügt die Plattform das aktuelle Datum und die aktuelle Uhrzeit außerhalb des zwischengespeicherten Prompt-Präfixes hinzu. So bleibt Ihr System-Prompt über Gesprächsrunden hinweg zwischengespeichert. Ohne Zeitzone erhält der Agent weder das aktuelle Datum noch die aktuelle Uhrzeit.
Wenn Ihr Prompt das Datum oder die Stunde inline benötigt, kombinieren Sie {{system__time_date}}, {{system__time_hour}} und {{system__timezone}} (zum Beispiel Today is {{system__time_date}}, hour {{system__time_hour}} ({{system__timezone}})). Diese ändern sich höchstens einmal pro Stunde.
Binden Sie Live-Statusvariablen an Tool-Parameter und Header
Wenn ein Tool einen mit † markierten Wert benötigt, binden Sie ihn an den Tool-Parameter oder Header, statt ihn im Prompt zu platzieren. Tool-Parameter werden erst aufgelöst, wenn das Tool aufgerufen wird, und beeinflussen daher das Prompt-Caching nicht. Das LLM sieht die Unterhaltung bereits, daher wird {{system__conversation_history}} in Prompts nur selten benötigt.
Alternativen zu Rundenzählern in Prompts erwägen
Wenn Ihr Prompt Rundenzähler wie {{system__agent_turns}} prüft, erwägen Sie diese Alternativen. Verwenden Sie first_message für statische Begrüßungen oder Hinweise zu Beginn.
Für das Verhalten bei der ersten Antwort können Sie die Anweisung anhand des Unterhaltungsverlaufs formulieren (zum Beispiel “Bei Ihrer ersten Antwort, wenn Sie den Anrufer noch nicht begrüßt haben …”). Dies setzt voraus, dass das LLM der Anweisung folgt. Testen Sie es daher mit Ihrem Modell und behalten Sie den Rundenzähler bei, wenn die Ergebnisse weniger zuverlässig sind.
Wenn der Zähler nur entscheidet, wann verzweigt oder eskaliert werden soll, kann eine Bedingung für eine Workflow-Kantenexpression oder eine If-Schrittexpression in einer strukturierten Prozedur (z. B. system__agent_turns >= 5) dies außerhalb des Prompts übernehmen. Dies deckt keine Fälle ab, in denen das LLM den Wert selbst benötigt.
Verwenden Sie secret__ nur für Werte, die in Tool-Headern bleiben
Stellen Sie Authentifizierungstokens und API-Schlüsseln secret__ voran, damit sie nur an Tool-Header gebunden und niemals an das LLM gesendet werden können. Da secret__-Werte in der Conversations API als <REDACTED> maskiert werden (Webhooks für Transkriptionen nach dem Anruf erhalten weiterhin die ursprünglichen Werte), übergeben Sie Werte, die Sie über die Conversations API wieder abrufen müssen, als reguläre dynamische Variablen. Alternativ können Sie eine nicht sensible Kennung übergeben und den sensiblen Wert in Ihrem eigenen System abrufen.
Verlassen Sie sich nicht zur Authentifizierung auf system__user_id
system__user_id wird vom Client für Tracking und Analysen bereitgestellt und nicht von ElevenAgents verifiziert. Überprüfen Sie die Identität des Anrufers über einen Webhook zur Initiierung von Unterhaltungen, ein signiertes Token in einer Header-Variable mit secret__ oder einen Verifizierungs-Tool-Aufruf, bevor Sie Kontodaten offenlegen.
Konfigurieren Sie Platzhalter für Tests und Vorschauen
Legen Sie für jede benutzerdefinierte Variable, die Sie in Ihren Prompts, ersten Nachrichten und Tools verwenden, Standardwerte in dynamic_variable_placeholders fest. Vorschauunterhaltungen im Dashboard und Simulationstests führen keine Webhooks zur Initiierung von Unterhaltungen aus. Nicht festgelegte Variablen bleiben daher beim Testen als wörtliche Platzhalter {{variable_name}} erhalten.
Fehlerbehebung
Variablen werden nicht ersetzt
Überprüfen Sie Folgendes:
- Variablennamen stimmen exakt überein (Groß- und Kleinschreibung beachten)
- Variablen verwenden doppelte geschweifte Klammern:
{{variable_name}} - Variablen sind in Ihrem
dynamic_variables-Objekt enthalten
Typfehler
Stellen Sie Folgendes sicher:
- Variablenwerte entsprechen dem erwarteten Typ
- Werte sind ausschließlich Strings, Zahlen oder Boolesche Werte