Recopilación y análisis de datos con Agents Platform en Next.js
Recopilación y análisis de datos con Agents Platform en Next.js
Tutorial · Da por hecho que has completado la guía de inicio rápido de ElevenAgents y que tienes un proyecto de Next.js configurado.
Introducción
En este tutorial aprenderás a crear un agente de voz que recopile información del usuario mediante una conversación, analice y extraiga los datos de forma estructurada y los envíe a tu aplicación a través del webhook posterior a la llamada.
Requisitos
- Una cuenta de ElevenLabs con una clave de API.
- Node.js v18 o superior instalado en tu equipo.
Configuración
Crea un nuevo proyecto de Next.js
Te recomendamos usar nuestra plantilla de Agents Platform en v0.dev como punto de partida para tu aplicación. Esta plantilla es una aplicación de Next.js lista para producción que ya incluye el agente de ElevenLabs integrado.
Configura Agents Platform
Sigue nuestra guía de Next.js para conocer los pasos de instalación y configuración. Después, vuelve aquí para implementar las funciones avanzadas.
Configuración del agente
Crea un agente նոր
Ve a Agents Platform > Agents y crea un agente nuevo a partir de la plantilla en blanco.
Configura el primer mensaje
Configura el primer mensaje y especifica la variable dinámica para la plataforma.
Configura el prompt de sistema
Configura el prompt de sistema. También puedes incluir aquí variables dinámicas.
Configura las herramientas de cliente
Configura la siguiente herramienta de cliente para navegar entre los pasos:
- Nombre:
set_ui_state- Descripción: Usa esta herramienta del lado del cliente para navegar entre los distintos estados de la interfaz de usuario.
- Esperar respuesta:
true - Tiempo de espera de respuesta (segundos): 1
- Parámetros:
- Tipo de datos: string
- Identificador: step
- Obligatorio: true
- Tipo de valor: Prompt de LLM
- Descripción: El paso al que navegar en la interfaz de usuario. Usa solo los pasos definidos en el prompt de sistema.
Configura la voz de tu agente
Ve a la pestaña Voice y configura la voz de tu agente. Encontrarás una lista de voces recomendadas para Agents Platform en la documentación sobre diseño de voz conversacional.
Configura los criterios de evaluación
Ve a la pestaña Analysis y añade un nuevo criterio de evaluación.
- Nombre:
all_data_provided- Prompt: Evalúa si el usuario ha proporcionado una descripción del agente que quiere generar y una descripción de la voz que debe tener el agente.
Configura la recopilación de datos
Puedes usar el análisis posterior a la llamada para extraer datos de la conversación. En la pestaña Analysis, en Data Collection, añade los siguientes elementos:
- Identificador:
voice_descriptiondata-type:String- Descripción: Basándote en la descripción de la voz que el usuario quiere que tenga el agente, genera una descripción concisa de la voz que incluya edad, acento, tono y carácter, si están disponibles.
- Identificador:
agent_descriptiondata-type:String- Descripción: Basándote en la descripción del agente que el usuario quiere diseñar, genera un prompt que pueda utilizarse para entrenar un modelo que actúe como el agente.
Configura el webhook posterior a la llamada
Los webhooks posteriores a la llamada se utilizan para avisarte cuando termina una llamada y se han completado los pasos de análisis y extracción de datos.
En este ejemplo, el webhook posterior a la llamada realiza varios pasos:
- Crea un diseño de voz personalizado basándose en
voice_description. - Crea un agente de ElevenLabs para usuarios basándose en el
agent_descriptionque han proporcionado. - Recupera los documentos de la base de conocimientos del estado de la conversación almacenado en Redis y adjunta la base de conocimientos al agente.
- Envía un correo electrónico al usuario para avisarle de que su agente personalizado de ElevenLabs está listo para conversar.
Al ejecutarlo localmente, necesitarás una herramienta como ngrok para exponer tu servidor local a internet.
Ve a la configuración de Agents Platform y, en Post-Call Webhook, crea un nuevo webhook y pega tu URL de ngrok: https://<your-url>.ngrok-free.app/api/convai-webhook.
Después de guardar el webhook, recibirás un secreto de webhooks. Asegúrate de guardar este secreto de forma segura, ya que tendrás que configurarlo más adelante en tu archivo .env.
Integra las funciones avanzadas
Configura una base de datos Redis para almacenar el estado de la conversación
En este ejemplo usamos Redis para almacenar el estado de la conversación. Esto nos permite recuperar los documentos de la base de conocimientos del estado de la conversación cuando termina la llamada.
Si vas a desplegar en Vercel, puedes configurar la integración de Upstash for Redis o, como alternativa, crear una cuenta gratuita de Upstash y una nueva base de datos.
Configura Resend para enviar correos electrónicos posteriores a la llamada
En este ejemplo usamos Resend para enviar al usuario el correo electrónico posterior a la llamada. Para ello, tendrás que crear una cuenta gratuita de Resend y configurar una nueva clave de API.
Configura las variables de entorno
En la raíz de tu proyecto, crea un archivo .env y añade las siguientes variables:
Configura la seguridad y la autenticación
Para proteger tu agente de ElevenLabs, debes activar la autenticación en la pestaña Security de la configuración del agente.
Una vez activada la autenticación, tendrás que crear una URL firmada en un entorno seguro del lado del servidor para iniciar una conversación con el agente. En Next.js, puedes hacerlo configurando una nueva ruta de API.
Inicia la sesión de conversación
Para iniciar la conversación, primero llama a tu ruta de API para obtener la URL firmada y, después, usa el hook useConversation para configurar la sesión de conversación.
Herramienta de cliente y variables dinámicas
En la configuración anterior del agente, registraste la herramienta de cliente set_ui_state para permitir que el agente navegue entre los distintos estados de la interfaz de usuario. Para integrarlo todo, debes pasar la implementación de la herramienta de cliente a las opciones de conversation.startSession.
Aquí también puedes pasar las variables dinámicas a la conversación.
Sube documentos a la base de conocimientos
En el paso Training, el agente pedirá al usuario que suba documentos o envíe URL de sitios web públicos con información que debería estar disponible para su agente. Aquí puedes utilizar la nueva función after de Next.js 15 para permitir la carga de documentos en segundo plano.
Crea una nueva acción de servidor upload para gestionar la creación de la base de conocimientos al enviar el formulario. Una vez creados todos los documentos de la base de conocimientos, almacena el ID de la conversación y los ID de la base de conocimientos en la base de datos Redis.
Gestionar el webhook posterior a la llamada
El webhook posterior a la llamada se activa cuando termina una llamada y se han completado los pasos de análisis y extracción de datos.
Aquí ocurren varios pasos:
- Verificar el secreto del webhook y crear la carga útil del webhook.
- Crear un diseño de voz personalizado a partir de
voice_description. - Crear un agente de ElevenLabs para usuarios a partir de
agent_descriptionque han proporcionado. - Recuperar los documentos de la base de conocimientos del estado de la conversación almacenado en Redis y adjuntar la base de conocimientos al agente.
- Enviar un correo electrónico al usuario para avisarle de que su agente personalizado de ElevenLabs está listo para conversar.
Veamos cada paso en detalle.
Verificar el secreto del webhook y crear la carga útil del webhook
Cuando se recibe la solicitud del webhook, primero verificamos el secreto del webhook y creamos la carga útil del webhook.
Crear un diseño de voz personalizado a partir de voice_description
Usamos voice_description de la carga útil del webhook para crear un diseño de voz personalizado.
Recuperar los documentos de la base de conocimientos del estado de la conversación almacenado en Redis
La subida de documentos puede tardar más que el análisis de datos del webhook, por lo que tendremos que consultar el estado de la conversación en Redis hasta que se hayan subido los documentos.
Crear un agente de ElevenLabs para usuarios a partir de agent_description que han proporcionado
Crea el agente de ElevenLabs para el usuario a partir de agent_description que ha proporcionado y adjunta al agente el diseño de voz y la base de conocimientos recién creados.
Enviar un correo electrónico al usuario para avisarle de que su agente personalizado de ElevenLabs está listo para conversar
Una vez creado el agente, puedes enviar un correo electrónico al usuario para avisarle de que su agente personalizado de ElevenLabs está listo para conversar.
Puedes usar new.email, una práctica herramienta del equipo de Resend, para diseñar con IA las plantillas de tus correos electrónicos. Cuando estés satisfecho con la plantilla, crea un componente nuevo y añade el ID del agente como prop.
Ejecutar la aplicación
Para ejecutar la aplicación localmente de principio a fin, primero tendrás que iniciar el servidor de desarrollo de Next.js y, después, ejecutar en otra terminal el túnel de ngrok para exponer al público el gestor del webhook.
- Terminal 1:
- Ejecuta
pnpm devpara iniciar el servidor de desarrollo de Next.js.
- Ejecuta
- Terminal 2:
- Ejecuta
ngrok http 3000para exponer al público el gestor del webhook.
- Ejecuta
Ahora abre http://localhost:3000 y empieza a diseñar tu agente personalizado de ElevenLabs con tu propia voz.