Herramientas de cliente

Permite que tu asistente active operaciones del lado del cliente.

Las herramientas de cliente permiten que tu asistente ejecute funciones del lado del cliente. A diferencia de las herramientas de webhook, las herramientas de cliente permiten al asistente realizar acciones como activar eventos del navegador, ejecutar funciones del lado del cliente o enviar notificaciones a una interfaz.

Resumen

Es posible que las aplicaciones necesiten que los asistentes interactúen directamente con el entorno del usuario. Las herramientas del lado del cliente permiten a tu asistente realizar operaciones del lado del cliente.

Estos son algunos ejemplos en los que las herramientas de cliente pueden ser útiles:

  • Activar eventos de la interfaz: permite que un asistente active eventos del navegador, como alertas, modales o notificaciones.
  • Interactuar con el DOM: permite que un asistente manipule el modelo de objetos del documento (DOM) para actualizar contenido dinámicamente o guiar a los usuarios por interfaces complejas.

Para llamar a API del lado del servidor, usa herramientas de webhook en su lugar.

Guía

Requisitos previos

1

Crea una nueva herramienta del lado del cliente

Configura una herramienta de cliente llamada logMessage con un parámetro de cadena obligatorio message (“El mensaje que se registrará en la consola”).

Ve al panel de tu agente. En la sección Tools, haz clic en Add Tool. Asegúrate de que Tool Type esté configurado como Client. Después, configura lo siguiente:

AjusteParámetro
NombrelogMessage
DescripciónUsa esta herramienta del lado del cliente para registrar un mensaje en el cliente del usuario.

Después, crea un nuevo parámetro message con la siguiente configuración:

AjusteParámetro
Tipo de datosString
Identificadormessage
Obligatoriotrue
DescripciónEl mensaje que se registrará en la consola. Asegúrate de que sea informativo y relevante.

Configuración de la herramienta de cliente logMessage

2

Registra la herramienta de cliente en tu código

A diferencia de las herramientas de webhook, las herramientas de cliente deben registrarse en tu código.

Usa el siguiente código para registrar la herramienta de cliente:

from elevenlabs import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation, ClientTools
def log_message(parameters):
message = parameters.get("message")
print(message)
client_tools = ClientTools()
client_tools.register("logMessage", log_message)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

Los nombres de la herramienta y los parámetros en la configuración del agente distinguen entre mayúsculas y minúsculas y deben coincidir con los registrados en tu código.

3

Pruebas

Inicia una conversación con tu agente y di algo como:

Registra en la consola un mensaje que diga Hola mundo

Deberías ver un registro de Hello World en tu consola.

4

Siguientes pasos

Ahora que has configurado un evento básico del lado del cliente, puedes:

  • Explorar herramientas de cliente más complejas, como abrir modales, navegar a páginas o interactuar con el DOM.
  • Combinar herramientas de cliente con webhooks del lado del servidor para crear interacciones full-stack.
  • Usar herramientas de cliente para mejorar la interacción del usuario y proporcionar comentarios en tiempo real durante las conversaciones.

Enviar resultados de herramientas de cliente al contexto de la conversación

Cuando quieras que tu agente reciba datos de una herramienta de cliente, asegúrate de marcar la opción Wait for response en la configuración de la herramienta.

Opción Wait for response en la configuración de la herramienta de cliente

Una vez añadida la herramienta de cliente, cuando se llame a la función, el agente esperará su respuesta y la añadirá al contexto de la conversación.

def get_customer_details():
# Fetch customer details (e.g., from an API or database)
customer_data = {
"id": 123,
"name": "Alice",
"subscription": "Pro"
}
# Return the customer data; it can also be a JSON string if needed.
return customer_data
client_tools = ClientTools()
client_tools.register("getCustomerDetails", get_customer_details)
conversation = Conversation(
client=ElevenLabs(api_key="your-api-key"),
agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
requires_auth=True,
client_tools=client_tools,
# ...
)
conversation.start_session()

En este ejemplo, cuando el agente llama a getCustomerDetails, la función se ejecutará en el cliente y el agente recibirá los datos devueltos, que después se utilizarán como parte del contexto de la conversación. Los valores de la respuesta también pueden asignarse opcionalmente a variables dinámicas, de forma similar a las herramientas de webhook. Ten en cuenta que las herramientas del sistema no pueden actualizar variables dinámicas.

Resolución de problemas

  • Asegúrate de que los nombres de la herramienta y los parámetros en la configuración del agente coincidan con los registrados en tu código.
  • Consulta la transcripción de la conversación en el panel del agente para verificar que se está ejecutando la herramienta.
  • Abre la consola del navegador para comprobar si hay errores.
  • Asegúrate de que tu código incluya la gestión de errores necesaria para parámetros indefinidos o inesperados.

Buenas prácticas

Asigna nombres intuitivos a las herramientas y añade descripciones detalladas

Si el asistente no llama a las herramientas correctas, quizá tengas que actualizar sus nombres y descripciones para que entienda con mayor claridad cuándo debe seleccionar cada herramienta. Evita usar abreviaturas o acrónimos para acortar los nombres de las herramientas y los argumentos.

También puedes incluir descripciones detalladas sobre cuándo debe llamarse a una herramienta. Para herramientas complejas, incluye descripciones de cada argumento para ayudar al asistente a saber qué debe pedir al usuario para obtener ese argumento.

Asigna nombres intuitivos a los parámetros de las herramientas y añade descripciones detalladas

Usa nombres claros y descriptivos para los parámetros de las herramientas. Si procede, especifica en la descripción el formato esperado para un parámetro (por ejemplo, AAAA-mm-dd o dd/mm/aa para una fecha).

Plantéate proporcionar información adicional sobre cómo y cuándo llamar a las herramientas en el prompt del sistema de tu asistente

Proporcionar instrucciones claras en el prompt del sistema puede mejorar significativamente la precisión con la que el asistente llama a las herramientas. Por ejemplo, guía al asistente con instrucciones como las siguientes:

Use `check_order_status` when the user inquires about the status of their order, such as 'Where is my order?' or 'Has my order shipped yet?'.

Proporciona contexto para situaciones complejas. Por ejemplo:

Before scheduling a meeting with `schedule_meeting`, check the user's calendar for availability using check_availability to avoid conflicts.

Selección de LLM

Al usar herramientas, recomendamos elegir modelos de alta inteligencia como GPT 5.2, Gemini-2.5-Flash o Claude Sonnet 4.5 y evitar Gemini-2.0-Flash.

Es importante tener en cuenta que la elección del LLM influye en el éxito de las llamadas a funciones. Algunos LLM pueden tener dificultades para extraer de la conversación los parámetros relevantes.