Lección 3 · 5 min · Gratis
Implementa un agente de voz con guardrails (Next.js)
Antes de escribir cualquier código, invoca la habilidad /agents para aprender los patrones correctos del SDK de ElevenLabs.
1. package.json
- Añade las dependencias
@elevenlabs/react(con soporteonGuardrailTriggered) y@elevenlabs/elevenlabs-js.
2. app/api/agent/route.ts
Ruta segura que crea o carga un agente de voz con guardrails. Nunca expongas ELEVENLABS_API_KEY al cliente.
POSTcrea un nuevo agente de voz con valores predeterminados sensatos (nombre, primer mensaje, voz TTS). Usa la plantilla CLIvoice-onlycomo referencia para la forma del agente.GETcarga un agente existente poragentId.- Usa un prompt de sistema de asistente bancario con una sección
# Guardrailsque contenga reglas de comportamiento. - Habilita los guardrails: un guardrail personalizado (por ejemplo, sin recomendaciones de inversión) que termina la conversación cuando se activa, además de protección contra prompt-injection.
- Configura como voz-primero: voz y modelo TTS reales, solo texto deshabilitado, entrada de texto del widget deshabilitada.
- Para agentes en inglés (
language: "en"), usatts.modelId: "eleven_flash_v2". No useseleven_flash_v2_5para agentes solo en inglés, o la creación del agente podría fallar la validación. - Habilita los eventos del cliente para la renderización de transcripciones, audio y
guardrail_triggered. - Devuelve
{ agentId, agentName }.
3. app/api/conversation-token/route.ts
Endpoint GET seguro que devuelve un token de conversación nuevo para un agentId dado.
Nunca expongas ELEVENLABS_API_KEY al cliente.
4. app/page.tsx
Página de demostración mínima de guardrails de voz con Next.js.
- Usa
ConversationProviderde@elevenlabs/react. - Usa los hooks de conversación granulares
useConversationControls,useConversationStatusyuseConversationMode. - Registra
onGuardrailTriggereden el proveedor. - Muestra un botón
Create Agenty un campo de entrada de ID de agente editable. Rellena automáticamente al crear; permite pegar un ID diferente para cargarlo en su lugar. - Inicia sesiones de voz con un token nuevo de
/api/conversation-token. Solicita acceso al micrófono antes de iniciar. - Confía en la inferencia del tipo de conexión del SDK al iniciar la sesión; no codifiques
connectionType: "webrtc"a menos que haya una razón específica. - Muestra un interruptor de Inicio/Parada, estado de conexión y transcripción de conversación en curso (añade mensajes, no reemplaces).
- Muestra prompts de ejemplo para probar el guardrail (por ejemplo, preguntar sobre inversiones o Bitcoin).
- Si el guardrail se activa, muestra un mensaje de estado persistente y añade una nota a la transcripción.
- Maneja los errores con elegancia y permite la reconexión. Mantén la interfaz de usuario simple y voz-primero.
Lección del curso «ElevenLabs Examples» de ElevenLabs, publicado con licencia MIT. Traducción y adaptación al español de IA con Clase. IA con Clase no está afiliado a ElevenLabs. Ver el original · Licencia
Esta lección es gratuita. El resto del curso se abre con la Membresía de IA con Clase, que incluye todos los cursos del catálogo. Ver precios