Voice Agents no Microsoft Foundry: como criar agentes de voz em tempo real
Quem cria agentes no Microsoft Foundry sabe que a parte de texto está bem resolvida. Faltava um jeito simples de colocá-los para conversar por voz, sem montar do zero captura, transcrição, síntese e streaming de áudio.
É isso que os Voice Agents trazem: agentes que escutam o usuário, entendem o pedido e respondem falando, em tempo real, com a opção de um avatar representando o assistente na tela.
Neste artigo, vamos criar nosso primeiro agente pelo portal e ver como integrá-lo a aplicações via SDK.
Importante: os Voice Agents estão em preview, sem SLA, e a Microsoft não recomenda o uso em produção nesse estágio. A disponibilidade de modelos, vozes e avatares também varia por região.
O que são os Voice Agents?
Um Voice Agent é um agente do Foundry Agent Service criado no modo de interação por voz. Ele conversa pelo microfone, com áudio fluindo nos dois sentidos durante a sessão. Pense em um assistente de suporte que consulta sistemas internos, ou em um atendimento telefônico que verifica o status de um pedido.
A vantagem em relação a montar tudo na mão é que o serviço gerencia a orquestração de voz. Modelo, instruções, voz, detecção de turnos e supressão de ruído ficam definidos no próprio agente, do lado do servidor. A base técnica vem do Voice Live, o serviço de voz em tempo real do Azure.
Speech-to-speech ou cascata?
Por trás de cada sessão existe uma de duas arquiteturas:
- Speech-to-speech nativo: um modelo de tempo real, como o
gpt-realtime, recebe o áudio e devolve a resposta falada diretamente. É o caminho com menor latência. - Cascata: o áudio é transcrito (STT), um modelo de texto gera a resposta e a síntese (TTS) transforma o texto em fala. Dá mais controle sobre transcrição e voz e permite usar outros modelos de texto, inclusive de outros provedores, por meio de uma implantação própria.
Um detalhe: não escolhemos a arquitetura diretamente. O Foundry a deriva do modelo selecionado.
Criando nosso primeiro Voice Agent
Vamos criar o Jarvis, um assistente que conversa em português e tira dúvidas sobre tecnologia e Azure.
Você vai precisar de uma assinatura Azure, um projeto no Foundry, a role Foundry User no projeto (antigo Azure AI User),e um navegador com microfone. O portal fica em https://ai.azure.com.
1. Criando o agente
No projeto, vá em Build > Agents e selecione a opção para criar um agente. Na janela de criação, dê um nome ao agente e escolha o modo de interação:
- Texto: o usuário digita e recebe respostas escritas.
- Serviço de voz: o usuário fala e recebe respostas faladas em tempo real.
Selecione Serviço de voz e escolha o caso de uso para o qual o agente será otimizado. Essa escolha define as instruções iniciais, que vamos ajustar no playground.
Depois, clique em Criar agente e abrir o playground.
Atenção: o modo de interação não pode ser alterado depois. Se precisar de voz em um agente de texto, será necessário criar outro. Vale também escolher um nome estável, porque ele aparece nas versões, nos traces, nos números de telefone vinculados e nas chamadas via SDK.

2. Configurando o comportamento
O Foundry abre então o playground, onde configuramos a experiência. O primeiro passo são as instruções, e aqui está uma diferença importante em relação aos agentes de texto: instrução para voz precisa ser escrita para ser ouvida. Nada de markdown, tabelas ou URLs lidas em voz alta. Em um chat, o usuário passa o olho na resposta. Em uma conversa falada, uma resposta longa vira monólogo.
Funciona bem pedir frases curtas e uma pergunta por vez, confirmar nomes, números e datas, pedir esclarecimento em vez de adivinhar e definir o que fazer quando uma ferramenta falhar. Para o Jarvis, podemos substituir as instruções iniciais por algo assim:
"Você é o Jarvis, assistente virtual especializado em tecnologia e Microsoft Azure. Converse em português do Brasil, com frases curtas, naturais e objetivas. Faça uma pergunta por vez e, se não entender o que foi dito, peça para o usuário repetir."
Também podemos definir a saudação inicial, falada assim que a sessão começa:
"Olá! Sou Jarvis, seu assistente virtual. Posso ajudar com dúvidas sobre tecnologia, inteligência artificial e serviços do Azure. Como posso ajudar?"

3. Escolhendo o modelo e a voz
Em Modelo de IA, o portal separa as opções entre modelos nativos de speech-to-speech e modelos de texto, cada um com latência aproximada e faixa (Pro, Standard ou Lite).
Usamos o azure-realtime, modelo de tempo real com latência aproximada de 600 ms. A lista de modelos muda conforme a região, então o portal é a fonte da verdade.

Na seção Voz, escolhemos a voz masculina Antonio. Nas opções avançadas da voz, dá para ajustar a velocidade de fala, a temperatura (em vozes Neural HD compatíveis) e um léxico personalizado para corrigir a pronúncia de nomes e siglas.
Idioma, lista de frases (ótima para termos como "Entra ID"), supressão de ruído e detecção de turno ficam nas configurações avançadas, que mudam conforme o modelo.
4. Adicionando um avatar
Ative o avatar e escolha um personagem, em formato retrato ou corpo inteiro. Ele aparece durante a conversa, falando com a voz configurada.
Funciona bem para totens, sites e treinamentos. Só lembre que o avatar gera cobrança à parte, a disponibilidade varia por região e, em chamadas telefônicas, o usuário recebe apenas o áudio.

5. Testando o agente
Antes de testar, salve o agente. A sessão sempre usa a última versão salva, e as configurações ficam bloqueadas enquanto ela está ativa.
Selecione o microfone, clique em Iniciar, permita o acesso no navegador e converse:
"Jarvis, você consegue me explicar o que é Azure Functions?"
Observe a latência, a qualidade da transcrição e se o agente respeita as pausas naturais. Experimente também interrompê-lo no meio da resposta. Esse comportamento, o barge-in, vem habilitado por padrão: o agente para de falar e passa a escutar.
As métricas aparecem em tempo real, e as conversas ficam na aba Traces.

Conectando ferramentas e sistemas externos
Os Voice Agents suportam quatro tipos de ferramenta:
- Function: executada pela sua aplicação cliente, que recebe a chamada pela sessão e devolve o resultado.
- MCP: conexão direta com um servidor MCP remoto.
- Toolbox: coleção versionada de ferramentas do Foundry, como Azure AI Search, busca na web e OpenAPI.
- System: controles da sessão, como o
end_conversation, que permite ao agente encerrar a chamada.
O agente pode ter ferramentas individuais ou uma toolbox. Para voz, a Microsoft recomenda a toolbox, por ser reutilizável e versionada.
Se o usuário pergunta "Jarvis, qual é o status do meu chamado?", o agente consulta a API de atendimento e responde por voz. O ponto de atenção é a latência: poucos segundos de silêncio parecem ligação caída. Para isso existe a resposta provisória (interim response): enquanto a ferramenta processa, o agente diz algo como "Só um momento, estou verificando". Ela pode ser estática ou gerada pelo modelo, e a estática não adiciona chamadas ao modelo, o que ajuda na latência e no custo. No portal, essa opção aparece nas configurações avançadas, mas só para combinações de modelo e voz compatíveis.
E para desenvolvedores? Já temos SDK?
Sim. Os Voice Agents têm SDK para Python, JavaScript/TypeScript e .NET, além de suporte no Azure Developer CLI (azd).
No SDK, um Voice Agent é um agente com kind igual a voice. Cada alteração gera uma nova versão imutável, e o endpoint fica ativo assim que a primeira versão existe, sem etapa separada de deploy.
Pacotes para .NET
Para .NET, os principais pacotes NuGet são:
- Azure.AI.Projects: cliente do projeto, incluindo o
ProjectsRealtimeClient, que abre a sessão de voz. - Azure.AI.Projects.Agents: criação e gerenciamento das definições, como o
VoiceAgentDefinition. - Azure.Identity: autenticação no Microsoft Entra ID com
DefaultAzureCredential.
Os dois primeiros estão em preview (a 3.0.0-beta.3 é a versão de referência para Voice Agents) e trazem o Azure.AI.Extensions.OpenAI como dependência. É necessário .NET 8 ou superior. Como novas betas saem com frequência, confira a versão mais recente no NuGet antes de começar.
Como funciona a integração?
A comunicação em tempo real usa WebSocket, autenticado com token do Microsoft Entra ID, conectando a aplicação diretamente ao endpoint de voz do agente.
Como modelo, voz e instruções já estão no agente, o cliente não precisa reenviar essa configuração, embora possa sobrescrever alguns campos da sessão, como os de áudio. O papel dele é capturar e enviar o áudio, tratar os eventos da sessão e reproduzir as respostas conforme chegam.
Se você precisar controlar diretamente a sessão de áudio, outra opção é usar o Voice Live SDK (Azure.AI.VoiceLive) sem a camada de agentes.
Nos Voice Agents, o Foundry gerencia a orquestração; com o Voice Live direto, sua aplicação ganha controle e assume responsabilidade.
Como publicar o agente?
Com o agente testado, a aba Canais mostra as opções de publicação:
- Aplicativo web de prévia: link para compartilhar a experiência no navegador com pessoas da organização, quando o endpoint é compatível. O acesso precisa ser concedido; ter o link não basta.
- Números de telefone: chamadas recebidas via Teams Phone extensibility (com Azure Communication Services) ou Twilio. Há também uma API para chamadas de saída.
Não confunda publicar um app no Microsoft Teams com conectar um número de telefone do Teams ao agente. Para voz, o caminho é o segundo.

Custos e limitações
Um minuto de conversa gera muito mais tokens do que um minuto digitando, porque a fala do usuário e a do agente são tokenizadas.
Pesam na conta os tokens de áudio, a duração das sessões, as ferramentas e recursos opcionais como avatar e armazenamento. Modelos gerenciados são cobrados pelo serviço; modelos implantados por você, na sua própria implantação, aproveitando cota ou PTU existentes.
Para economizar, limite o tamanho das respostas com max_output_tokens, mantenha as instruções enxutas (elas são reenviadas a cada turno), prefira respostas provisórias estáticas e use o end_conversation para encerrar chamadas concluídas.
Conclusão
Os Voice Agents trazem ao Foundry uma peça que faltava: agentes de voz em tempo real sem montar a infraestrutura de áudio do zero.
Pelo portal, criamos e testamos o agente em minutos. Pelos SDKs, levamos a experiência para aplicações próprias e centrais de atendimento. Ainda é preview, então o momento é ideal para provas de conceito. Se você já trabalha com agentes no Foundry, vale testar.