AWS mostra como montar pedido por voz omnichannel com Bedrock AgentCore e Nova 2 Sonic
A AWS publicou um guia completo pra montar sistema de pedidos por voz multi-canal usando Bedrock AgentCore (plataforma pra rodar agentes de IA com isolamento em microVM) e Nova 2 Sonic, o modelo speech-to-speech da casa. Tem código no GitHub, deploy via CDK e arquitetura separada em frontend, agente e backend. Voz conversa com Lambda, DynamoDB e Location Services via MCP.
Blogpost denso e útil, mas Nova 2 Sonic ainda não tem sa-east-1 no radar público. Pra time BR que quer voz em português, o padrão hoje continua sendo latência cross-region ou rodar Whisper + TTS separados. Vale de-olho no rollout regional.
A AWS publicou um post técnico no blog mostrando como montar um sistema omnichannel de pedidos por voz usando dois produtos recentes: Amazon Bedrock AgentCore (plataforma gerenciada pra rodar agentes de IA em produção) e Amazon Nova 2 Sonic (modelo speech-to-speech da Amazon, acessível via Bedrock).
O caso de uso é clássico pra voz: cliente liga ou entra no app, fala o pedido em linguagem natural, agente responde em áudio, consulta cardápio, monta carrinho, sugere unidade pra retirada baseada em rota, e fecha. Tudo num WebSocket só, hands-free.
O que o tutorial entrega
Tem repo no aws-samples com deploy automatizado via AWS CDK. Roda um script deploy-all.sh e ele provisiona tudo:
- Amazon Cognito pra autenticação (user pool + identity pool, com troca de JWT por credencial AWS temporária)
- AgentCore Runtime hospedando o agente em microVM isolada por sessão
- AgentCore Gateway expondo APIs REST do backend como ferramentas MCP (Model Context Protocol — padrão aberto pra conectar agente a ferramentas externas)
- API Gateway + Lambda pra lógica de negócio (menu, pedido, localização)
- DynamoDB com cinco tabelas (clientes, pedidos, menu, carrinhos com TTL de 24h, unidades)
- AWS Location Services pra geocoding, cálculo de rota e mapa
- AWS Amplify hospedando o frontend
Como o áudio flui
Browser abre WebSocket assinado com SigV4 direto pro AgentCore Runtime, sem proxy no meio. Manda áudio PCM 16kHz, recebe resposta em voz, transcrição e notificação de tool call na mesma conexão.
O agente usa o framework Strands pra orquestrar system prompt, tools e fluxo de conversa. Nova 2 Sonic cuida de reconhecimento de fala (tolerante a sotaque e ruído), streaming bidirecional, interrupção natural e tool calling assíncrono em paralelo — o agente chama GetCustomerProfile, GetPreviousOrders e GetMenu ao mesmo tempo, sem travar a conversa enquanto os dados chegam.
Na prática, esse é o ponto que mais importa: tool calling assíncrono paralelo é o que separa voz que parece natural de voz que dá aquela pausa constrangedora de 2 segundos entre o cliente falar e o bot responder.
Recomendação por rota
A parte de Location Services merece destaque. Em vez de só achar a unidade mais próxima em linha reta, o sistema usa Route Calculator (Esri) pra calcular desvio real na rota do cliente. Dá pra fazer sugestão tipo "achei uma unidade a 2 minutos do seu trajeto" em vez de "a mais próxima fica a 5km".
São três Lambdas: busca por proximidade (fórmula de haversine sobre GPS), busca por rota (desvio máximo default de 10 min) e geocoding de endereço quando não tem GPS.
Pré-requisitos
Pra rodar, precisa de conta AWS com acesso ao Nova 2 Sonic liberado na região do deploy, Node.js 20+, Python 3.13+, AWS CLI 2.x, CDK 2.x bootstrapado, e boto3 1.38+ (versão que suporta o serviço bedrock-agentcore-control).
O script faz preflight check antes de começar: valida tudo e oferece auto-instalar o que der.
Pra quem serve
Tutorial é útil se você tá avaliando AgentCore pra produção e precisa de referência arquitetural de um caso real com áudio bidirecional. A separação em três camadas (frontend, agente, backend) com MCP no meio deixa o backend trocável sem mexer no código do agente — adiciona Lambda nova, registra como tool no Gateway, agente descobre.
Ponto de atenção: Nova 2 Sonic ainda tem disponibilidade limitada por região. Antes de planejar deploy, confere se a região que você quer usar tem o modelo liberado no Bedrock.
☕ comentários · 0