Ir al contenido

Diseño de autenticación segura de llamadas para agentes de voz

Publicado
Última actualización

EscucharEscucha este artículo

Los agentes de voz están evolucionando rápidamente: de simples sistemas que responden a preguntas frecuentes a sistemas que ejecutan acciones, modifican cuentas, procesan transacciones y acceden a datos confidenciales de clientes. Este cambio plantea un reto crítico: ¿cómo autenticar 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 quien llama con el mismo rigor que un centro de atención telefónica humano, pero mediante una interacción íntegramente por voz. A diferencia de los agentes humanos, que siguen las políticas de la empresa, los agentes de IA requieren una autenticación determinista 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 ingenieros de despliegue 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 verificación mediante OTP, y explicaremos cómo implementar cada uno mediante el control determinista del flujo de trabajo en la plataforma ElevenLabs.

Y, sobre todo, mostraremos por qué la autenticación no puede dejarse en manos de la inferencia conversacional. Debe diseñarse con subagentes aislados, verificación basada en herramientas y enrutamiento condicional del flujo de trabajo que garantice que solo usuarios autenticados lleguen a operaciones privilegiadas.

Resumen

  • La autenticación de llamadas para agentes de voz debe ser determinista y basarse en herramientas; no puede dejarse a la inferencia conversacional del LLM.
  • La autenticación de la aplicación anfitriona pasa los datos de sesión existentes al agente, por lo que usuarios que ya han iniciado sesión no tienen que volver a autenticarse.
  • La autenticación basada en conocimientos verifica los datos proporcionados por quien llama, como un número de cuenta o la fecha de nacimiento, frente a un sistema 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 deben 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 backend.

La base arquitectónica de la autenticación determinista

Para garantizar que solo usuarios autenticados puedan acceder a información relacionada con la cuenta, recomendamos una estricta segregación 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 fallo, configurada como herramienta de despacho en el creador de flujos de trabajo de ElevenLabs.

Al vincular directamente la condición de transferencia al resultado de la llamada a la herramienta, el subagente con acceso a los datos de la cuenta solo es accesible tras una autenticación correcta y permanece completamente aislado de usuarios no autenticados. Esto garantiza que la autenticación sea determinista, que no dependa de una decisión del LLM y que no se avance a nodos posteriores sin una identidad verificada.

Como alternativa, puedes usar expresiones de transferencia como un método fiable. 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 herramienta). Si la verificación tiene éxito, recupera los datos de transacciones del cliente de Salesforce (otra llamada a herramienta) y transfiere después al usuario a un subagente encargado de usar estos datos para comunicarse con el cliente y realizar otras acciones si es necesario.

auth-flow

Métodos de autenticación de identidad de usuarios

Estos métodos de autenticación no son compatibles de forma nativa con la plataforma 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 el caso de agentes de voz integrados en un sitio web, la aplicación anfitriona puede pasar datos de 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, lo que permite al agente recuperar datos personalizados de sistemas integrados sin requerir una autenticación independiente.

Esto permite un flujo de soporte 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 pasas variables en tiempo de ejecución mediante la configuración del widget (p. ej., <elevenlabs-convai dynamic-variables='{"user_id": "123", "account_tier": "premium"}'>).

Consulta la documentación sobre variables dinámicas para conocer la configuración completa.

Autenticación basada en conocimientos (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 (webhook o llamada al backend) verifica estos valores en tu base de datos (p. ej., CRM o repositorio de identidades). La herramienta devuelve un resultado de éxito o fallo 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 un despacho de herramientas y usa conexiones de transferencia condicionales del flujo de trabajo que se ramifiquen según el estado de éxito o fallo de la herramienta, dirigiendo a usuarios autenticados a nodos de agentes «privilegiados». 

Este enfoque admite tanto preguntas de seguridad estáticas como verificación dinámica de tipo «fuera de cartera», según 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, incluido system__caller_id (el número de teléfono de quien llama). Esta variable se rellena automáticamente al comenzar la conversación.

Puedes hacer referencia a ella de dos formas:

  1. En prompts/mensajes: Haz referencia a ellas mediante llaves dobles, p. ej., {{system__caller_id}}, y se sustituirán por los valores reales.
  2. 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 pasar 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 herramienta, la autenticación también puede configurarse como un webhook de inicio de conversación que se ejecuta antes de que empiece la conversación. 

Nota de seguridad: Dado que quien llama puede utilizar números distintos de los registrados, o que personas no autorizadas pueden tener acceso a números almacenados, la autenticación basada en el identificador de llamada debe requerir consentimiento previo del cliente o combinarse con métodos de autenticación adicionales (p. ej., preguntas basadas en conocimientos).

Para más información, consulta la documentación sobre Variables dinámicas del sistema y webhook de inicio.

Autenticación avanzada basada en conocimientos o preguntas de seguridad

El agente puede autenticar a un usuario formulando un conjunto de preguntas de seguridad y concediendo acceso solo si quien llama responde correctamente a una cantidad predefinida. Se puede indicar al agente que seleccione preguntas aleatorias de una lista predefinida (p. ej., fecha de nacimiento, código postal o nombre de la mascota) y valide las respuestas de quien llama mediante una llamada a una herramienta de tu base de datos.

La herramienta de autenticación devuelve una respuesta JSON que incluye el recuento actual de aciertos. Mediante asignaciones de herramientas, este recuento se extrae automáticamente y se almacena o actualiza en una variable dinámica (p. ej., auth_success_count). Tras cada verificación correcta, la variable se incrementa.

Cuando se alcanza el número necesario de verificaciones (p. ej., 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 usa operadores de comparación (p. ej., auth_success_count >= 3) para controlar el acceso de forma determinista según el estado de autenticación.

Expressions

Nuestra documentación sobre conexiones y control de flujo contiene más información que puedes consultar.

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.

A continuación se detalla el flujo de trabajo de implementación:

  1. Generación del código: El agente inicia el proceso con 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 por su canal preferido (SMS o correo electrónico).
  2. Solicitud al usuario: A continuación, el agente pide al usuario que proporcione el código recibido. En modo de voz, usuarios dicen el código en voz alta, que se captura mediante voz a texto.
  3. Verificación del código: El agente envía el código proporcionado por el usuario a un servicio de verificación backend mediante una segunda llamada a herramienta. El backend valida que el código coincida, no haya caducado y no se haya usado ya.
  4. 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 posterior a la autenticación del flujo de trabajo mediante una condición de éxito. Fallo: si el código es incorrecto, el agente puede pedir al usuario que vuelva a introducirlo o iniciar un procedimiento alternativo (p. ej., enviar un código nuevo).

Consideraciones de seguridad: debes implementar límites de tasa para evitar intentos de fuerza bruta; los códigos deben tener plazos de caducidad cortos (de 3 a 5 minutos), y los intentos de reintento deben registrarse y limitarse. Para interacciones por 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 tus objetivos de experiencia de usuario. Un bot de atención al cliente necesita una seguridad distinta de la de un asistente bancario que gestiona transacciones. La flexibilidad de la plataforma permite que tu estrategia de seguridad evolucione 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; así puedes crear una autenticación de llamadas que nunca dependa del criterio de un LLM.

Explora la plataforma ElevenAgents para consultar el creador de flujos de trabajo completo, o contacta con ventas para empezar hoy a crear tu primer flujo de trabajo de agente de voz autenticado.

Preguntas frecuentes sobre flujos seguros de autenticación de identidad de llamadas

Artículos relacionados

Crea con el audio IA de la más alta calidad