Migración de un agente de texto a un asistente de voz con Amazon Nova 2 Sonic

Migrar un agente de texto a un asistente de voz es cada vez más importante porque los usuarios esperan interacciones más rápidas y naturales. En lugar de escribir, los clientes quieren hablar y entender en tiempo real. Industrias como las finanzas, la atención médica, la educación, las redes sociales y el comercio minorista están explorando soluciones con Amazon Nova 2 Sonic para permitir interacciones de voz naturales y en tiempo real a escala.

En esta publicación, exploramos lo que se necesita para migrar un agente de texto tradicional a un asistente de voz conversacional utilizando Amazon Nova 2 Sonic. Comparamos los requisitos de los agentes de texto y voz, destacamos las prioridades de diseño para diferentes casos de uso, desglosamos la arquitectura del agente y abordamos inquietudes comunes como herramientas y subagentes para la reutilización y la rápida adaptación del sistema. Esta publicación lo ayuda a navegar el proceso de migración y evitar errores comunes.

También puede encontrar una habilidad en el repositorio de muestra de Nova que funciona con IDE de IA como Kiro y Claude Code para convertir automáticamente su agente de texto en un agente de voz.

Los agentes de texto y los agentes de voz no son el mismo problema

Si bien migrar de un agente de texto a un asistente de voz puede parecer como agregar una interfaz de voz manteniendo la lógica empresarial sin cambios, es importante comprender las diferencias desde las siguientes perspectivas.

Aspecto Agente de texto Agente de voz Entrada de usuario Texto escrito: el usuario lee, desplaza y copia y pega a su propio ritmo Flujo de audio hablado: en tiempo real, puede interrumpir (irrumpir), las pausas importan Estilo de respuesta Párrafos, listas, tablas, enlaces: formato enriquecido, toda la información entregada a la vez Frases habladas cortas, una cosa a la vez: “¿Quieres que continúe?” con bucles de confirmación Presupuesto de latencia Tolerancia de latencia media: el indicador de escritura enmascara el tiempo de espera Se requiere una latencia ultrabaja: el silencio se siente como si algo se hubiera roto Toma de turnos Solicitud estricta → respuesta: el usuario escribe, presiona Intro, espera Fluida, superpuesta, interrumpible: detección de actividad de voz (VAD) + detección de turno, se requiere irrupción Transporte HTTP / REST / Eventos enviados por el servidor: solicitud-respuesta sin estado Transmisión bidireccional: conexión persistente, audio en tiempo real en ambas direcciones

Para afrontar mejor estos desafíos, analicemos las diferencias clave entre los agentes de texto y los asistentes de voz y cómo esas diferencias afectan el diseño y la implementación.

Diseño de respuesta

Un agente de texto está diseñado para entregar párrafos que los usuarios pueden leer a su propio ritmo. Desplazarse hacia atrás, copiar contenido y seguir enlaces según sea necesario. Un agente de voz opera en un medio fundamentalmente diferente. Las respuestas deben ser conversacionales, concisas y cuidadosamente estructuradas para escuchar en lugar de leer. Considere un agente bancario que devuelve información de la cuenta:

Respuesta del agente de texto:

Aquí está el resumen de su cuenta: – Cuenta corriente (****4521): $3245,67 – Ahorros (****8903): $12 450,00 – Tarjeta de crédito (****2187): -$1823,45 (pago vencido: 15 de marzo) Puede hacer clic en cualquier cuenta para ver transacciones detalladas.

Respuesta del agente de voz:

"Tienes tres cuentas. Tu cuenta corriente termina en 4521 con un saldo de tres mil doscientos cuarenta y cinco dólares. ¿Quieres que revise las demás o quieres detalles sobre ésta?".

El agente de voz divide la información en fragmentos digeribles y pide confirmación antes de continuar. Utiliza un estilo de conversación autónomo, guiando proactivamente al usuario en lugar de deshacerse de todo de una vez.

Presupuesto de latencia

Los usuarios de texto tienen tolerancia a la latencia media. Ven un indicador de escritura y esperan. Los usuarios de voz notan retrasos casi de inmediato. El silencio en una conversación de voz se siente como si la línea se hubiera cortado. Esto cambia la forma en que se deben diseñar los agentes:

Factor Agente de texto Agente de voz Tiempo de respuesta aceptable Tolerancia de latencia media: es aceptable una espera de unos segundos con un indicador de carga. Tolerancia a baja latencia: la conversación debe durar cientos de milisegundos, con el primer audio lo antes posible; los retrasos de unos segundos, especialmente durante las llamadas a herramientas, parecen no responder. Tolerancia de llamada de herramienta Múltiples llamadas secuenciales OK Cada llamada agrega un silencio notable Transmisión Es bueno tenerlo Esencial Manejo de herramientas asincronizado Es bueno tenerlo Es crítico tenerlo

Amazon Nova 2 Sonic admite llamadas de herramientas asíncronas, por lo que la conversación continúa de forma natural mientras las herramientas se ejecutan en segundo plano. Sigue aceptando entradas, puede ejecutar varias herramientas en paralelo y se adapta elegantemente si el usuario cambia su solicitud a mitad del proceso, entregando todos los resultados mientras se centra en lo que sigue siendo relevante.

Turno e interrupción

Las conversaciones de texto son inherentemente por turnos. El usuario escribe, presiona Intro y espera una respuesta. Las conversaciones de voz son fluidas. Los usuarios interrumpen (irrumpen), hacen una pausa a mitad de una frase y esperan que el agente maneje el habla superpuesta de forma natural. Los modelos nativos de voz a voz como Amazon Nova 2 Sonic manejan esto internamente con detección de actividad de voz (VAD) integrada y detección de giro. Nova 2 Sonic gestiona el contexto de la conversación sin necesidad de enviar el historial completo en cada turno.

La migración desde una visión arquitectónica

Con estas diferencias en mente, analicemos la migración desde una perspectiva arquitectónica dividiendo el sistema en tres componentes principales y examinando cómo evoluciona cada uno. Un diseño conceptual de un agente de texto consta de tres componentes:

Una aplicación cliente (como interfaces web, móviles o de IoT). Un orquestador de texto que gestiona los mensajes del sistema, las herramientas y el contexto de la conversación. Las integraciones de herramientas que se conectan a sus sistemas, como API, bases de datos, flujos de trabajo, canales de recuperación de generación aumentada (RAG) o subagentes.

Al migrar esta arquitectura a un agente de voz, estos componentes siguen siendo los mismos, pero cada uno requiere cambios diferentes para admitir la lógica específica de voz.

agente de voz a texto

La aplicación cliente

Los clientes de agentes generalmente se implementan en lenguajes de programación y sistemas utilizados para navegadores web, aplicaciones móviles o dispositivos IoT, según el contexto de implementación. Un cliente de agente de voz requiere una conexión bidireccional persistente (como WebSocket o WebRTC) y maneja la codificación/decodificación de audio, eventos de cliente, lógica de irrupción, control de ruido y visualización de transcripción. Esto es significativamente más complejo que un cliente de texto, que normalmente se comunica con el agente a través de una interfaz de transmisión HTTPS unidireccional o REST sin estado.

Como resultado, este componente normalmente requiere una refactorización o una reescritura completa. Por ejemplo, es probable que una PoC creada con una interfaz Streamlit deba reconstruirse utilizando un marco de JavaScript como React para admitir conexiones bidireccionales.

Para obtener una aplicación cliente web de agente de voz liviana en REACT usando WebSocket, consulte este ejemplo.

el orquestador

Un orquestador de agentes es el eje central a la hora de crear agentes de texto o de voz. Gestiona el aviso del sistema, selecciona y enruta herramientas o subagentes, y mantiene el contexto de la conversación para mantener las interacciones coherentes y alineadas con el rol del agente. En los agentes de texto, el orquestador maneja solicitudes y respuestas entre el cliente y el modelo de razonamiento mientras integra herramientas para activar la lógica empresarial. Los orquestadores de voz siguen los mismos principios pero agregan transmisión de audio, detección de actividad de voz (VAD), reconocimiento automático de voz (ASR), razonamiento y texto a voz (TTS). Amazon Nova 2 Sonic ofrece una interfaz de transmisión bidireccional que combina estas características, para que los usuarios puedan migrar indicaciones de razonamiento y activadores de herramientas desde agentes de texto para una transición más fluida a la voz.

Una diferencia clave con respecto a una arquitectura tradicional de agente de texto es que Amazon Nova 2 Sonic puede aceptar entradas de texto y audio en la misma interfaz modelo. Esto significa que Sonic puede reemplazar directamente el modelo de razonamiento de texto independiente que normalmente se usa en un orquestador de texto. En lugar de encadenar componentes separados ASR → LLM → TTS, Sonic unifica el reconocimiento de voz, el razonamiento, el uso de herramientas y la síntesis de voz en un único modelo bidireccional. Con esto, los equipos pueden reutilizar indicaciones y herramientas existentes mientras optimizan la arquitectura, reducen la latencia y eliminan la necesidad de administrar un modelo de razonamiento de texto separado en la pila de voz.

Los siguientes fragmentos de código muestran un agente de texto de muestra creado con Strands Agents utilizando Amazon Nova 2 Lite como modelo de lenguaje grande (LLM). Tiene herramientas definidas y una muestra que utiliza Strands BidiAgent y Nova 2 Sonic para crear un orquestador de agentes de voz disponible a través de WebSocket. Notarás que el estilo de codificación para los agentes de texto y de voz en Strands es muy similar. Si bien el ejemplo utiliza Strands, el mismo enfoque se aplica a los agentes de texto creados con otros marcos como LangChain, LangGraph o CrewAI, porque las entradas clave requeridas del orquestador de texto son el mensaje del sistema y las definiciones de herramientas.

Antes de ejecutar los ejemplos de las siguientes secciones, instale Python y las dependencias requeridas, incluidos strands-agents y Boto3, y asegúrese de que su configuración de IAM tenga los permisos necesarios para los servicios requeridos.

from strands import Agente, herramienta de strands.models import BedrockModel # —- Se utilizarán herramientas simuladas en agentes de texto y voz —- @tool def authenticate_customer(account_id: str, date_of_birth: str) -> str: """Verifique la identidad del cliente y devuelva un token de autenticación.""" # En una implementación real, llame a su servicio de autenticación/API si account_id == "123456": return "AUTH_TOKEN_ABC123" return "Error de autenticación" @tool def get_account_balance(auth_token: str) -> str: """Devolver el saldo de la cuenta corriente del cliente.""" if auth_token == "AUTH_TOKEN_ABC123": return "El saldo actual de su cuenta corriente es $5,420." return "Solicitud no autorizada" @tool def get_recent_transactions(auth_token: str) -> str: """Devolver transacciones recientes.""" if auth_token == "AUTH_TOKEN_ABC123": return "Transacciones recientes: $45 en comestibles, $120 en servicios públicos, $18 en café". devolver "Solicitud no autorizada"

Con Strands Agents, puede crear un orquestador de agente de texto con Nova 2 Lite como se muestra en el siguiente ejemplo:

# —- Modelo Nova 2 Lite —- model = BedrockModel(model_id="amazon.nova-2-lite-v1:0") # —- Agente de texto del asistente bancario —- bank_agent = Agente( model=model, system_prompt="""Usted es un asistente bancario. Responda las preguntas de los usuarios sobre saldos de cuentas y transacciones recientes con precisión. Siempre valide la identidad del usuario antes de proporcionar información confidencial. """, tools=[authenticate_customer, get_account_balance, get_transacciones_recientes], )

Con Strands BidiAgent, puede crear un orquestador de agentes de voz con un estilo de codificación similar al modelo Nova 2 Sonic y reutilizar las mismas herramientas:

# voice_orchestrator.py — BidiAgent con subagentes como herramientas de strands.experimental.bidi.agent import BidiAgent de strands.experimental.bidi.models.nova_sonic import BidiNovaSonicModel # —- Nova 2 Sonic model —- model = BidiNovaSonicModel( region="us-east-1", model_id="amazon.nova-2-sonic-v1:0", proveedor_config={"audio": {"voice": "tiffany", "input_sample_rate": 16000, "output_sample_rate": 16000}}, ) # —- Agente de voz asistente bancario —- agente = BidiAgent( model=model, system_prompt=""" Eres un asistente bancario. Habla con naturalidad y responde preguntas sobre saldos de cuentas y transacciones recientes. Confirma la identidad del cliente antes de compartir detalles confidenciales. Utiliza respuestas breves y claras y reconocimiento al recuperar datos """, herramientas=[authenticate_customer, get_account_balance, get_recent_transactions],) await agent.run(inputs=[ws_input], salidas=[ws_output])

El aviso del sistema es la base para los agentes de texto y de voz. Define el rol, el tono y las barreras de seguridad del agente, garantizando que las respuestas sean consistentes, confiables y alineadas con los objetivos comerciales y las expectativas del usuario en las interacciones escritas y habladas. Al pasar de texto a voz, adapte el aviso del sistema para audio en tiempo real. Manténgalo conciso y conversacional, considere la latencia y el contexto de múltiples turnos, y divida la guía compleja en pasos más pequeños.

Mensaje de texto (original):
"Usted es un asistente bancario. Responda con precisión las preguntas de los usuarios sobre saldos de cuentas y transacciones recientes. Valide siempre la identidad del usuario antes de proporcionar información confidencial".

Aviso adaptado por voz:
"Usted es un asistente bancario. Habla con naturalidad y responde preguntas sobre saldos de cuentas y transacciones recientes. Confirme la identidad del cliente antes de compartir detalles confidenciales. Utilice respuestas breves y claras y reconozca al recuperar datos".

Tenga en cuenta que en un orquestador de voz con Nova 2 Sonic, está utilizando la capacidad de razonamiento incorporada de Sonic para administrar el mensaje del sistema, la selección de herramientas y el contexto de la sesión. Ya no necesita proporcionar su propio LLM para razonar a nivel de orquestador.

La capa de lógica empresarial

La integración de herramientas es un aspecto clave para conectar un asistente agente a la capa empresarial, utilizando protocolos como el Protocolo de contexto modelo (MCP), Agente a agente (A2A) y HTTP estándar. En un agente basado en texto, el orquestador envía entradas de texto a herramientas, como API REST, sistemas RAG o bases de datos, y recibe respuestas de texto para generar respuestas orientadas al usuario.

En los ejemplos de Strands Agents, las mismas herramientas utilizadas para el agente de texto se pueden reutilizar para el agente de voz sin cambios de código. Sin embargo, reutilizar herramientas y subagentes para voz implica más que solo detalles de implementación.

Si ya utiliza una arquitectura de múltiples agentes, sus agentes de lógica de negocios especializados a menudo se pueden reutilizar para voz con algunas actualizaciones. El siguiente diagrama muestra un asistente bancario donde un orquestador de voz llama a subagentes para consultas de autenticación e hipotecas.

multiagentes de voz

Aunque estos subagentes no requieren una reescritura completa, sí necesitan ajustes para la voz:

Respuestas más breves: un subagente de texto podría devolver un párrafo detallado. Un subagente de voz debe devolver entre 1 y 2 oraciones que el orquestador pueda pronunciar con naturalidad. Por ejemplo, actualiza el mensaje del sistema del subagente para que diga "Resumir en 1 o 2 oraciones concisas" en lugar de "Proporcionar una respuesta completa".

Mejora de la latencia: elija modelos más pequeños y más rápidos para los subagentes (por ejemplo, comience desde Nova 2 Lite en lugar de un modelo más grande). En una conversación de voz, cada salto de inferencia adicional añade un silencio notable. Para Nova 2 Lite, recomendamos limitar o evitar el uso del modo de pensamiento para reducir la latencia. Para obtener más información, consulte la Guía para desarrolladores de Amazon Nova para Amazon Nova 2.

Reducción de la verbosidad en los resultados de las herramientas: algunos subagentes están diseñados para devolver grandes cargas útiles sin procesar, como JSON con más datos de los solicitados, lo que deja al orquestador filtrar la respuesta. Esto no es ideal, especialmente para la voz. Las cargas útiles más grandes aumentan la latencia, pueden reducir la precisión y exponer datos confidenciales. Las respuestas ágiles y específicas son fundamentales, especialmente para experiencias de voz sensibles a la latencia.

Utilice mensajes de relleno para mantener las conversaciones naturales durante el procesamiento de herramientas más prolongado. Con Amazon Nova 2 Sonic, puede realizar llamadas a herramientas asincrónicas y personalizar estos mensajes provisionales, lo que garantiza que los usuarios permanezcan interesados ​​mientras el agente completa las tareas.

La mayoría de estos ajustes implican cambios rápidos y de configuración en lugar de modificaciones arquitectónicas. Las herramientas, la lógica empresarial y la implementación del subagente siguen siendo las mismas. Mientras que las arquitecturas de subagente brindan claridad, reutilización y portabilidad, y son especialmente útiles al migrar un agente de texto a voz. Cada llamada de subagente agrega latencia debido a su propio modelo de inferencia y llamadas a herramientas. En una conversación de voz, esto puede traducirse en pausas notables por motivos de subagente.

Consulte este blog para conocer más patrones de arquitectura de agentes de voz y mejores prácticas para administrar la latencia.

Conclusión

Migrar un agente de texto a un asistente de voz no es un trabajo final. El modelo de interacción es fundamentalmente diferente, desde el diseño de respuesta hasta los presupuestos de latencia y el comportamiento de turnos. Pero con una arquitectura multiagente bien estructurada y Amazon Nova 2 Sonic, la capa de lógica empresarial permanece intacta.

Inicie su proyecto de migración y convierta su agente de texto en un asistente de voz con Amazon Nova 2 Sonic. Para ver un ejemplo funcional completo de un agente de voz que utiliza Amazon Nova 2 Sonic, consulte Amazon Nova 2 Sonic en Strands BidiAgent. Encuentre más documentación y recursos aquí:

Sobre los autores

lana zhang

Lana Zhang es arquitecta senior especializada en soluciones para IA generativa en AWS dentro de la Organización Mundial de Especialistas. Se especializa en IA/ML, con especial atención en casos de uso como asistentes de voz de IA y comprensión multimodal. Trabaja en estrecha colaboración con clientes de diversas industrias, incluidos los medios y el entretenimiento, los juegos, los deportes, la publicidad, los servicios financieros y la atención médica, para ayudarlos a transformar sus soluciones comerciales a través de la IA.

Osman Ipek

Osman Ipek es arquitecto de soluciones en el equipo AGI de Amazon y se centra en los modelos básicos de Nova. Guía a los equipos para acelerar el desarrollo a través de estrategias prácticas de implementación de IA, con experiencia que abarca IA de voz, PNL y MLOps.