Diseño de autenticación segura de llamadas para agentes de voz
- Publicado
- Última actualización
EscucharEscucha este artículo
Agentes de voz están evolucionando rápidamente: de simples asistentes que responden preguntas frecuentes a sistemas que realizan acciones, modifican cuentas, procesan transacciones y acceden a datos sensibles de clientes. Este cambio plantea un reto crucial: ¿cómo autenticas la identidad de quien llama en un sistema de IA conversacional en el que no existen los métodos tradicionales de verificación visual?
Cuando un agente de voz puede actualizar suscripciones, consultar saldos de cuentas o iniciar reembolsos, debe autenticar a quienes llaman con el mismo rigor que los centros de atención telefónica humanos, pero mediante una interacción completamente basada en la voz. A diferencia de los agentes humanos, que siguen las políticas de la empresa, los agentes de IA necesitan una autenticación determinista y basada en herramientas que no dependa del criterio de un LLM.
Este artículo presenta patrones de autenticación probados a partir de nuestro trabajo como Forward Deployed Engineers en implementaciones empresariales. Abordaremos cinco enfoques principales, desde la autenticación basada en sesiones para widgets integrados hasta métodos específicos de telefonía y la verificación mediante OTP, y explicaremos cómo implementar cada uno mediante el control determinista del flujo de trabajo en la plataforma de ElevenLabs.
Y, lo más importante, mostraremos por qué la autenticación no puede dejarse en manos de la inferencia conversacional. En su lugar, debe diseñarse mediante subagentes aislados, verificación basada en herramientas y enrutamiento condicional del flujo de trabajo para garantizar que solo usuarios autenticados accedan a operaciones privilegiadas.
Resumen
- La autenticación de quienes llaman para agentes de voz debe ser determinista y basarse en herramientas; no puede dejarse en manos de la inferencia conversacional del LLM.
- La autenticación de la aplicación anfitriona transmite al agente los datos de sesión existentes, para que usuarios que ya han iniciado sesión no tengan que volver a autenticarse.
- La autenticación basada en conocimiento verifica los datos proporcionados por quien llama, como un número de cuenta o la fecha de nacimiento, frente a un sistema de backend mediante una llamada a una herramienta del servidor.
- Las implementaciones de telefonía pueden usar variables dinámicas del sistema, como el identificador de llamada, para autenticar de forma silenciosa, pero esto debe combinarse con un segundo factor, ya que el identificador de llamada puede falsificarse o compartirse.
- La verificación mediante código de un solo uso envía un código por SMS o correo electrónico y lo valida mediante un servicio de backend.
La base arquitectónica de la autenticación determinista
Para garantizar que solo usuarios autenticados puedan acceder a información relacionada con sus cuentas, recomendamos una separación estricta de entornos y accesos mediante los flujos de trabajo de ElevenLabs. La autenticación debe implementarse siempre mediante una llamada a una herramienta con un resultado booleano de éxito o error, configurada como herramienta de despacho en el constructor de flujos de trabajo de ElevenLabs.
Al vincular la condición de transferencia directamente al resultado de la llamada a la herramienta, solo se puede acceder al subagente con acceso a los datos de la cuenta tras una autenticación correcta, y este permanece totalmente aislado de usuarios no autenticados. Así se garantiza que la autenticación sea determinista, que no dependa de una decisión del LLM y que no se pueda avanzar a nodos posteriores sin una identidad verificada.
Como alternativa, puedes usar expresiones de transferencia como un método fiable de transferencia. Estas expresiones hacen referencia a variables dinámicas que se actualizan mediante los resultados de las llamadas a herramientas.
Ejemplo de implementación
Verifica al usuario en Salesforce (llamada a una herramienta). Si la verificación tiene éxito, recupera los datos de transacciones del cliente desde Salesforce (otra llamada a una herramienta) y, después, transfiere al usuario a un subagente encargado de utilizar estos datos para comunicarse con el cliente y realizar otras acciones si fuera necesario.

Métodos de autenticación de la identidad del usuario
Estos métodos de autenticación no son compatibles de forma nativa con la plataforma de ElevenLabs. Puedes implementarlos mediante herramientas del servidor que se integren con tu CRM o backend/base de datos, donde se almacenan los datos de autenticación.
Autenticación de la aplicación anfitriona
En agentes de voz integrados en un sitio web, la aplicación anfitriona puede transmitir datos de la sesión del usuario, como el estado de inicio de sesión, el ID de cuenta o tokens de sesión, mediante variables dinámicas al inicializar el agente o widget. Estas variables se inyectan automáticamente en las llamadas a herramientas mediante las mismas variables dinámicas, lo que permite al agente recuperar datos personalizados de sistemas integrados sin requerir una autenticación independiente.
Esto permite un flujo de asistencia sin interrupciones, ya que la aplicación anfitriona ya ha verificado al usuario. Puedes configurarlo de forma personalizada o usar el widget de ElevenLabs, donde transmites variables en tiempo de ejecución mediante la configuración del widget (por ejemplo, <elevenlabs-convai dynamic-variables='{"user_id": "123", "account_tier": "premium"}'>).
Consulta la documentación sobre variables dinámicas para ver la configuración completa.
Autenticación basada en conocimiento (KBA)
El agente de voz pide a quien llama que proporcione datos de autenticación, como el número de cuenta, el código postal, la fecha de nacimiento o respuestas de seguridad. Una herramienta del servidor (un webhook o una llamada al backend) verifica estos valores con tu base de datos, por ejemplo, un CRM o almacén de identidades. La herramienta devuelve un resultado de éxito o error que incluye tanto un estado booleano (is_error) como texto descriptivo.
Puedes implementarlo mediante el control determinista del flujo de trabajo: después de solicitar la información pertinente, configura el despacho de una herramienta y utiliza conexiones de transferencia condicionales del flujo de trabajo que se ramifiquen según el estado de éxito o error de la herramienta, dirigiendo a usuarios autenticados a nodos de agente «privilegiados».
Este enfoque permite usar preguntas de seguridad estáticas y verificaciones dinámicas de tipo «out-of-wallet», en función de tus requisitos de riesgo de fraude.
Consulta la documentación sobre herramientas del servidor y el nodo de herramienta de despacho de flujos de trabajo de agentes para obtener más información.
Variables dinámicas del sistema (solo telefonía)
En conversaciones telefónicas, mediante Twilio o un troncal SIP, tu agente tiene acceso automáticamente a variables del sistema específicas de telefonía, entre ellas system__caller_id (el número de teléfono de quien llama). Esta variable se completa automáticamente cuando comienza la conversación.
Puedes usarla de dos formas:
- En prompts o mensajes: Haz referencia a ellas con llaves dobles, por ejemplo, {{system__caller_id}}, y se sustituirán por los valores reales.
- En parámetros de herramientas: Configura los parámetros de las herramientas para usar estas variables, lo que permite una autenticación silenciosa sin mencionarlas en el prompt.
Por ejemplo, puedes configurar una herramienta para transmitir automáticamente el identificador de llamada a la ruta de API de consulta de tu CRM, lo que permite al agente verificar de forma silenciosa si el número entrante coincide con el número registrado del cliente para la autenticación del usuario. En lugar de una llamada a una herramienta, también puedes configurar la autenticación como un webhook de inicio de conversación que se ejecuta antes de que comience la conversación.
Nota de seguridad: Como quienes llaman pueden utilizar números distintos de los registrados, o los números almacenados pueden estar al alcance de personas no autorizadas, la autenticación basada en el identificador de llamada debe requerir la aceptación previa del cliente o combinarse con métodos de autenticación adicionales, como preguntas basadas en conocimiento.
Para más información, consulta la documentación sobre variables dinámicas del sistema y webhook de inicio.
Autenticación avanzada basada en conocimiento o preguntas de seguridad
El agente puede autenticar a un usuario formulando un conjunto de preguntas de seguridad y conceder acceso solo si quien llama responde correctamente a un número predefinido de ellas. Puedes indicar al agente que seleccione preguntas aleatorias de una lista predefinida, como la fecha de nacimiento, el código postal o el nombre de una mascota, y validar las respuestas de quien llama mediante una llamada a una herramienta conectada a tu base de datos.
La herramienta de autenticación devuelve una respuesta JSON que incluye el número actual de aciertos. Mediante asignaciones de herramientas, este número se extrae automáticamente y se almacena o actualiza en una variable dinámica, por ejemplo, auth_success_count. Tras cada verificación correcta, la variable aumenta.
Una vez alcanzado el número de verificaciones requerido, por ejemplo, 3, una condición de expresión del flujo de trabajo comprueba el valor de la variable dinámica y pasa a un nodo de subagente privilegiado. La expresión utiliza operadores de comparación, por ejemplo, auth_success_count >= 3, para controlar el acceso de forma determinista según el estado de autenticación.

Nuestra documentación sobre conexiones y control de flujo ofrece más información de referencia.
Código de un solo uso
Este es un método universal en el que se envía un código de un solo uso al dispositivo del usuario por SMS o correo electrónico. Después, el usuario debe comunicar el código al agente para verificarlo y obtener acceso.
Este es el flujo de implementación en más detalle:
- Generación del código: El agente inicia el proceso mediante una llamada a una herramienta del servidor dirigida a una ruta de API específica. Esta acción genera un código seguro de un solo uso y lo envía al usuario a través de su canal preferido, SMS o correo electrónico.
- Solicitud al usuario: El agente pide entonces al usuario que proporcione el código que ha recibido. En modo de voz, usuarios dicen el código en voz alta, que se captura mediante voz a texto.
- Verificación del código: El agente envía el código proporcionado por el usuario a un servicio de verificación de backend mediante una segunda llamada a una herramienta. El backend valida que el código coincide, no ha caducado y no se ha usado antes.
- Enrutamiento del flujo de trabajo: El agente gestiona el resultado según la respuesta de verificación: Éxito: si el código es correcto, el usuario pasa a la parte del flujo de trabajo posterior a la autenticación mediante una condición de éxito. Error: si el código es incorrecto, el agente puede pedir al usuario que vuelva a introducirlo o iniciar un procedimiento alternativo, por ejemplo, enviar un nuevo código.
Consideraciones de seguridad: debes implementar una limitación de solicitudes para evitar intentos de fuerza bruta; los códigos deben tener tiempos de caducidad cortos, de 3 a 5 minutos, y debes registrar y limitar los intentos de reintento. En interacciones de voz, considera usar solicitudes de confirmación para garantizar la precisión de voz a texto al capturar códigos.
Empieza con ElevenAgents para una autenticación de voz segura
Estos métodos de autenticación son componentes flexibles, no soluciones prescriptivas. Tu elección debe reflejar tu perfil de riesgo específico, los requisitos normativos y los objetivos de experiencia de usuario. Un bot de atención al cliente necesita una seguridad distinta a la de un asistente bancario que gestiona transacciones. La flexibilidad de la plataforma garantiza que tu estrategia de seguridad pueda evolucionar a medida que cambian las amenazas y crecen los requisitos, equilibrando siempre la protección y la experiencia de usuario.
ElevenAgents te ofrece el control determinista del flujo de trabajo, las herramientas de despacho y las variables específicas de telefonía descritas anteriormente, para que puedas crear una autenticación de quienes llaman que nunca dependa del criterio de un LLM.
Explora la plataforma ElevenAgents para ver el constructor completo de flujos de trabajo, o contacta con ventas para empezar hoy a crear tu primer flujo de trabajo de agente de voz autenticado.




