#Estoy integrando ElevenLabs Agents usando el SDK de Python y necesito enviar variables dinámicas de

1 messages · Page 1 of 1 (latest)

signal ledgeBOT
#
AI-generated Answer for juanbahamon_32326

La forma soportada es usar Dynamic Variables y pasarlas al iniciar la conversación con ConversationInitiationData. Luego, referencias esas variables en el System prompt o First message con {{variable}}.

Ejemplo (Python SDK):

  • En el prompt del agente: “Hola {{cliente_nombre}}”.
  • En tu backend:

from elevenlabs.client import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation, ConversationInitiationData
from elevenlabs.conversational_ai.default_audio_interface import DefaultAudioInterface

client = ElevenLabs(api_key=API_KEY)
config = ConversationInitiationData(
dynamic_variables={"cliente_nombre": "María"}
)
conv = Conversation(client, agent_id, config=config, requires_auth=True, audio_interface=DefaultAudioInterface())
conv.start_session()

Esto inyecta cliente_nombre en la sesión y el agente lo sustituirá en el System prompt y/o First message. (elevenlabs.io)

Notas importantes:

  • Sintaxis: usa llaves dobles {{nombre_variable}} en System prompt/First message/herramientas. Nombres sensibles a mayúsculas. (elevenlabs.io)
  • Tipos permitidos: string, number, boolean. (elevenlabs.io)
  • No uses el prefijo reservado system__ para variables personalizadas. (elevenlabs.io)
  • Para valores que no deben enviarse al LLM (p. ej., tokens), usa el prefijo secret__ (se usan en headers de herramientas pero no se insertan en System prompt/First message). (elevenlabs.io)

Alternativa (si necesitas reemplazar por completo el prompt o first message en runtime):

  • Habilita Overrides en la pestaña de seguridad del agente y pasa conversation_config_override con los campos agent.prompt.prompt y/o agent.first_message al iniciar la conversación. (elevenlabs.io)

Sources:
Dynamic variables | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation
Overrides | ElevenLabs Documentation

soft wagon
#

corrige:
def start(self):
dummy_audio = DummyAudioInterface()

    conversation_override = {
        "conversation": {
            "text_only": True
        }
    }

    # Si ya tenemos un conversation_id guardado, lo pasamos en el config
    config = ConversationInitiationData(
        conversation_config_override=conversation_override,
    )

    self.conversation = Conversation(
        client=self.client,
        agent_id=self.agent_id,
        requires_auth=True,
        audio_interface=dummy_audio,
        config=config,
        callback_agent_response=self.handle_agent_response,
        callback_user_transcript=self.handle_user_transcript,
    )

    self.conversation.start_session() 
    time.sleep(1.5)
    self._is_connected = True
signal ledgeBOT
#
AI-generated Answer for juanbahamon_32326

Aquí tienes el mismo método corregido para inyectar variables dinámicas que luego podrás usar en el system prompt o first message con la sintaxis {{variable}}. Se mantiene el override para text_only y se añaden los dynamic_variables en el config.

def start(self, dynamic_vars: dict):
dummy_audio = DummyAudioInterface()

    conversation_override = {
        "conversation": {
            "text_only": True  # requiere tener habilitado este override en el agente
        }
    }

    config = ConversationInitiationData(
        conversation_config_override=conversation_override,
        dynamic_variables=dynamic_vars,  # e.g., {"cliente_nombre": "María"}
    )

    self.conversation = Conversation(
        client=self.client,
        agent_id=self.agent_id,
        requires_auth=True,
        audio_interface=dummy_audio,
        config=config,
        callback_agent_response=self.handle_agent_response,
        callback_user_transcript=self.handle_user_transcript,
    )

    self.conversation.start_session()
    time.sleep(1.5)
    self._is_connected = True

Notas:

  • Define las variables en tus prompts con {{variable}} (por ejemplo: Hola {{cliente_nombre}}) y pásalas en dynamic_variables al iniciar la conversación. (elevenlabs.io)
  • Si usas overrides (como conversation.text_only o para sustituir system prompt/first message), asegúrate de habilitarlos previamente en la pestaña Security del agente; de lo contrario, el override fallará. (elevenlabs.io)

Sources:
Dynamic variables | ElevenLabs Documentation
Overrides | ElevenLabs Documentation

soft wagon
#

ElevenLabsChatClient.start() got an unexpected keyword argument 'dynamic_vars'

signal ledgeBOT
#
AI-generated Answer for juanbahamon_32326

Causa del error
dynamic_vars no es un argumento válido de start()/start_session. En Python, las variables dinámicas se pasan dentro de ConversationInitiationData usando el campo dynamic_variables y, si hace falta, los overrides van en conversation_config_override. (elevenlabs.io)

Implementación correcta (Python SDK)

  • Defina sus variables y páselas en dynamic_variables; el agente las usa con {{variable}} en system prompt/first message.
  • Si va a sobreescribir prompt/first_message/language/text_only, habilite esos overrides en la pestaña Security del agente y envíelos vía conversation_config_override.

Ejemplo mínimo adaptado a su código:
def start(self):
dummy_audio = DummyAudioInterface()

conversation_override = {
    "conversation": {"text_only": True},
    # "agent": {"first_message": "Hola {{cliente_nombre}}"}  # si usa override
}

dynamic_vars = {
    "cliente_nombre": "Carlos"
}

config = ConversationInitiationData(
    dynamic_variables=dynamic_vars,
    conversation_config_override=conversation_override,
)

self.conversation = Conversation(
    client=self.client,
    agent_id=self.agent_id,
    requires_auth=True,
    audio_interface=dummy_audio,
    config=config,
    callback_agent_response=self.handle_agent_response,
    callback_user_transcript=self.handle_user_transcript,
)

self.conversation.start_session()
time.sleep(1.5)
self._is_connected = True

Referencias oficiales

  • Dynamic variables: cómo definir {{variable}} y pasarlas con ConversationInitiationData(dynamic_variables=...). (elevenlabs.io)
  • Overrides: estructura de conversation_config_override, ejemplo con "conversation": {"text_only": True} y necesidad de habilitarlos en Security. (elevenlabs.io)

Sources:
Dynamic variables | ElevenLabs Documentation
Dynamic variables | ElevenLabs Documentation
Overrides | ElevenLabs Documentation

soft wagon
#

no funciona, no se estan inyectando las variables de forma dinámica