Arquitetura de IA

Hedged requests em agentes de IA: como reduzir a cauda

Aprenda a usar hedged requests em agentes de IA para reduzir latência de cauda com duplicação controlada, cancelamento, idempotência e limite de carga.

Uma chamada lenta pode segurar a execução inteira

Um agente consulta o cadastro, recupera documentos, chama um modelo e prepara uma resposta. Quase todas as consultas ao cadastro terminam rápido. Uma pequena parcela demora vários segundos. Quando essa parcela aparece numa conversa, o agente inteiro parece travado.

A média continua saudável. O problema aparece no p95, p99 ou em outro percentil de cauda relevante para o processo.

Hedged request é uma segunda chamada equivalente, disparada quando a primeira ultrapassa um limite de espera. As duas competem. O sistema aceita a primeira resposta válida e encerra ou ignora o trabalho restante.

Esse mecanismo pode reduzir a latência de cauda em leituras independentes. Também pode dobrar carga, custo e efeitos externos quando entra sem critério. O desenho precisa decidir onde duplicar, quanto esperar, qual resposta aceitar e como impedir que o segundo caminho continue produzindo trabalho depois da conclusão.

O recorte é diferente de timeout e retentativa

O guia de latência em agentes de IA organiza orçamento por etapa, canal e prazo. A página sobre retentativas trata a recuperação depois de uma falha ou erro classificado.

A chamada especulativa começa enquanto a primeira ainda está em andamento. Não existe falha confirmada. Existe apenas um atraso suficiente para indicar que aquela execução entrou na cauda.

Compare os três controles:

  • timeout: encerra uma chamada que ultrapassou o limite técnico;
  • retentativa: faz outra chamada depois de uma falha recuperável;
  • hedge: lança uma chamada equivalente antes do timeout e usa a primeira resposta válida.

Encurtar o timeout para repetir cedo cria uma sequência de cancelamentos artificiais. A documentação do Google Cloud recomenda hedging para cargas sensíveis à latência justamente porque a segunda chamada pode começar sem reduzir o prazo real da operação.

Use somente quando a cauda importa para o negócio

Duplicar chamadas para melhorar a média costuma comprar pouco e consumir muito. O candidato precisa reunir quatro condições.

A maioria das chamadas termina rápido

O ganho aparece quando a distribuição possui uma cauda pequena e material: p50 estável, p99 alto e variabilidade suficiente para que outro caminho tenha chance de terminar antes.

Se p50 e p95 sobem juntos, a dependência pode estar saturada ou degradada. Uma segunda chamada tende a disputar o mesmo recurso e piorar o quadro.

A etapa está no caminho crítico

A resposta precisa bloquear uma conversa, decisão ou prazo relevante. Uma busca complementar que pode chegar depois talvez aceite execução assíncrona. Hedging faz mais sentido quando alguns segundos realmente alteram abandono, SLA ou conclusão.

A operação pode ser repetida com segurança

Leituras imutáveis ou equivalentes são os primeiros candidatos. Escritas, envios, pagamentos, reservas e mudanças de estado pedem uma barreira muito maior.

Existe capacidade para a duplicação eventual

A dependência, a rede, o provedor e o orçamento precisam absorver chamadas extras. O sistema deve medir a taxa de hedge, o custo e o efeito sobre as requisições normais.

Escolha uma unidade estreita

Não duplique o agente inteiro. Duplique uma operação específica cuja equivalência possa ser demonstrada.

Candidatos possíveis:

  • leitura de um objeto por identificador;
  • consulta a uma réplica autorizada;
  • recuperação do mesmo documento em duas rotas compatíveis;
  • chamada de inferência sem ferramenta externa, com entrada e configuração fixadas;
  • busca em dois servidores equivalentes;
  • consulta a cache e origem com regras explícitas de validade.

Evite duplicar um fluxo que reúne várias ferramentas, atualiza memória, cria subtarefas ou depende da ordem dos eventos. Quanto maior a unidade, mais difícil provar que as duas execuções são equivalentes e interromper a perdedora.

Um agente que chama outro agente com a mesma instrução também pode produzir planos diferentes. Antes de usar hedging nessa camada, fixe entrada, versão, ferramentas permitidas, formato de saída e critério de validação. Duas respostas plausíveis não formam automaticamente a mesma operação.

Defina o atraso antes da segunda chamada

O hedge não deve nascer no primeiro milissegundo. Essa configuração apenas duplica toda a carga.

O atraso pode começar a partir de:

  • percentil histórico da operação, como p90 ou p95;
  • tempo restante no orçamento da etapa;
  • classe da tarefa;
  • região ou rota utilizada;
  • tamanho da entrada;
  • comportamento recente da dependência;
  • limite de chamadas adicionais permitido naquele instante.

A AWS descreve o mecanismo como uma segunda requisição equivalente depois de a primeira ultrapassar um intervalo escolhido. A primeira resposta vence. O custo aparece nas solicitações adicionais.

Use dados da própria operação. Um número copiado de outro sistema pode lançar cedo demais para uma dependência saudável ou tarde demais para o prazo real.

Exemplo de política inicial para uma leitura:

operação: consultar cadastro por ID
prazo da etapa: 1.500 ms
gatilho de hedge: p95 saudável observado na janela aprovada
máximo de chamadas: 2
taxa máxima de hedge: definida por capacidade
resposta aceita: registro válido da mesma versão
tratamento da perdedora: cancelar; se já concluiu, ignorar e registrar
bloqueio: circuito aberto, saturação, prazo insuficiente ou leitura não equivalente

Os valores precisam sair de medição e teste. O exemplo mostra os campos da política, não uma recomendação universal de tempo ou taxa.

Preserve identidade e equivalência

As duas chamadas pertencem à mesma unidade lógica. Carregue um identificador comum e outro identificador por tentativa.

request_id: cadastro_cliente_4817_v23
attempt_id: primária | hedge_1
objeto: cliente_4817
versão esperada: 23
operação: leitura
prazo absoluto: 2026-10-01T15:03:12Z

A resposta precisa provar que corresponde ao mesmo objeto, versão, escopo de permissão e instante de validade.

Se duas réplicas podem devolver versões diferentes, “primeira resposta” não basta. A política deve dizer se aceita a versão mínima, exige consistência forte, compara um token de versão ou bloqueia a unidade diante de divergência.

Velocidade não pode escolher silenciosamente um dado vencido.

Cancele a perdedora sem supor que o cancelamento voltou no tempo

Quando uma resposta válida chega, o cliente tenta cancelar a outra. O servidor pode já ter concluído, ignorar o cancelamento ou terminar parte do trabalho.

Trate três estados:

  1. cancelamento confirmado antes do processamento;
  2. cancelamento solicitado, resultado ainda possível;
  3. segunda resposta recebida e descartada depois da vitória.

A execução local encerra a espera. A observabilidade continua registrando o que aconteceu com a perdedora.

Não reutilize a resposta tardia em outra tarefa apenas porque ela já foi paga. Ela pertence a um objeto, versão, autorização e prazo específicos.

Escritas exigem idempotência e ordenação

A documentação da AWS diz que hedging é mais simples para leituras. Em escritas, chamadas concorrentes podem chegar fora de ordem ou produzir dois efeitos.

Antes de considerar o mecanismo numa mutação, exija:

  • chave de idempotência estável;
  • mesma intenção, objeto e versão nas duas chamadas;
  • pré-condição de escrita;
  • ordenação ou controle de versão no destino;
  • resposta reutilizável para duplicatas;
  • reconciliação de resultado incerto;
  • teste de chegada invertida;
  • confirmação de que a API suporta o contrato necessário.

Uma mensagem enviada duas vezes, duas reservas ou duas tarefas de CRM anulam qualquer ganho de latência. Na maioria das operações empresariais com efeito externo, é mais seguro reservar, consultar estado e usar uma rota de contingência do que correr duas escritas.

O padrão outbox pode proteger a entrega entre estado local e publicação de evento. Ele não transforma todo destino em candidato a hedge.

Valide a primeira resposta, não apenas a mais rápida

A vencedora precisa passar pelos critérios da etapa.

Para uma leitura:

  • identidade correta;
  • permissão compatível;
  • versão aceitável;
  • schema válido;
  • campos obrigatórios presentes;
  • validade dentro do prazo;
  • fonte autorizada.

Para uma inferência:

  • mesma entrada e configuração previstas;
  • saída no formato exigido;
  • políticas de segurança atendidas;
  • evidência ou citação suficiente;
  • nenhuma ferramenta externa acionada fora do contrato;
  • custo dentro do orçamento.

Se a primeira resposta falha na validação, a segunda pode continuar. Registre que o caminho mais rápido foi inválido. Uma política que mede somente tempo incentiva o sistema a aceitar a primeira coisa que chega.

Desative hedging quando a dependência perde capacidade

O mecanismo acrescenta carga exatamente quando uma chamada parece lenta. Essa correlação pode ser perigosa.

Bloqueie novas chamadas especulativas quando houver:

  • circuit breaker aberto;
  • fila acima do limite;
  • utilização próxima da faixa insegura;
  • taxa de erro ampla;
  • limitação explícita do fornecedor;
  • load shedding ativo;
  • orçamento global de duplicação esgotado;
  • retentativas já consumidas por outras camadas;
  • prazo insuficiente para a segunda rota terminar.

Uma cauda causada por variabilidade isolada pode responder bem ao hedge. Uma cauda causada por saturação pede redução de entrada, concorrência ou trabalho opcional.

Faça um experimento comparável

Teste o controle com tráfego sintético ou replay autorizado, sem efeitos em produção.

Separe pelo menos quatro grupos:

  1. chamada única com timeout atual;
  2. hedge disparado no p95 histórico;
  3. hedge disparado mais cedo;
  4. hedge bloqueado durante degradação simulada.

Meça:

  • p50, p95, p99 e prazo excedido;
  • taxa de chamadas especulativas;
  • porcentagem de vezes em que o hedge vence;
  • chamadas canceladas antes de concluir;
  • respostas tardias descartadas;
  • divergências entre respostas;
  • carga extra por dependência;
  • custo adicional;
  • erro e throttling;
  • trabalho válido concluído;
  • impacto no SLA do processo.

O experimento reprova se a melhora na cauda vier acompanhada de saturação, divergência não tratada, efeito duplicado ou prejuízo às tarefas sem hedge.

Observe por operação e por versão

O painel precisa permitir retirar o mecanismo de um caminho específico.

Registre:

  • operação e classe de tarefa;
  • versão do cliente e do agente;
  • rota primária e secundária;
  • atraso configurado;
  • tempo da vencedora;
  • estado da perdedora;
  • motivo de bloqueio;
  • validade e versão do resultado;
  • custo das duas tentativas;
  • pressão sobre a dependência;
  • decisão humana sobre ampliar, ajustar ou desligar.

A taxa de hedge não é uma meta. Uma queda pode indicar que a dependência ficou estável. Um aumento pode revelar regressão. Leia o mecanismo junto com a distribuição de latência e o goodput.

Checklist de hedged requests para agentes de IA

  • [ ] A etapa possui cauda relevante e p50 saudável?
  • [ ] A operação está no caminho crítico do processo?
  • [ ] A unidade duplicada é pequena e equivalente?
  • [ ] O gatilho usa medição da própria operação?
  • [ ] Existe teto global e por dependência?
  • [ ] As duas tentativas compartilham prazo e identidade lógica?
  • [ ] A resposta prova objeto, versão, permissão e validade?
  • [ ] A primeira resposta ainda passa por validação?
  • [ ] A perdedora pode ser cancelada ou ignorada com segurança?
  • [ ] Respostas tardias ficam registradas?
  • [ ] Escritas possuem idempotência, ordenação e reconciliação?
  • [ ] O mecanismo desliga durante saturação ou circuito aberto?
  • [ ] O teste mede custo, carga, divergência e efeito duplicado?
  • [ ] Existe um responsável por ajustar ou remover a política?

A segunda chamada precisa resolver a cauda sem criar outra fila

Hedged requests podem reduzir a espera causada por uma parcela pequena de chamadas lentas. O ganho aparece quando a operação é estreita, repetível, validável e importante para o prazo.

Comece por leituras, dispare somente depois de um limiar medido, aceite uma resposta válida, trate a perdedora e limite a carga adicional. Para escritas, a barreira deve ser muito maior.

Se o sistema duplica todas as chamadas para parecer rápido, ele apenas trocou latência visível por custo e saturação escondidos.

Fontes oficiais verificadas em 1º de outubro de 2026:

As fontes descrevem padrões em serviços distribuídos específicos. A aplicação a agentes de IA exige medição e teste no fluxo, no provedor e nas integrações realmente usados pela empresa.