Arquitetura de IA

Request coalescing em agentes de IA: como aplicar

Aprenda a aplicar request coalescing em agentes de IA para agrupar chamadas equivalentes, evitar cache stampede e proteger modelos, bancos e integrações.

Cem agentes pedem o mesmo dado e a origem recebe cem chamadas

Uma política vence no cache às nove horas. Vários agentes começam rotinas ao mesmo tempo. Cada execução percebe a ausência, consulta a mesma fonte e tenta reconstruir a mesma entrada. O banco, a API ou o modelo recebe um pico criado pela própria recuperação.

Request coalescing agrupa solicitações equivalentes que chegam durante uma janela curta. Uma execução assume a busca ou o cálculo. As demais aguardam o mesmo resultado, desde que compartilhem objeto, versão, permissão e finalidade compatíveis.

O mecanismo reduz trabalho duplicado e ajuda a conter cache stampede ou thundering herd. O risco aparece quando uma chave ampla reúne clientes, versões ou autorizações diferentes. Economizar chamadas não pode misturar contextos que deveriam permanecer isolados.

Coalescing e cache resolvem momentos diferentes

O cache para agentes de IA reutiliza um resultado já concluído enquanto ele permanece válido.

Request coalescing atua durante a execução em andamento. Quando várias chamadas equivalentes chegam antes de existir uma resposta armazenada, apenas uma continua até a origem. As outras se ligam ao mesmo trabalho.

A sequência pode ser:

requisição A chega sem cache
→ A se torna líder
→ requisições B, C e D chegam com a mesma chave
→ B, C e D aguardam A
→ A obtém e valida o resultado
→ o sistema entrega o resultado compatível a A, B, C e D

Depois, o resultado pode entrar num cache. Os dois mecanismos se complementam. Cache ruim continua servindo informação vencida. Coalescing ruim espalha um resultado incompatível para várias execuções de uma vez.

O mecanismo é diferente de hedge e lote

O hedged request lança uma segunda chamada equivalente quando a primeira entra na cauda. As duas competem para reduzir latência.

Request coalescing faz o movimento oposto: evita que pedidos simultâneos equivalentes abram várias chamadas.

Processamento em lote reúne unidades diferentes numa operação conjunta, como classificar cem documentos. Coalescing reúne pedidos que querem o mesmo resultado lógico, como buscar a versão vigente da política P-17 para o mesmo escopo autorizado.

Essas distinções importam para métricas e falhas. Hedge aumenta chamadas de forma controlada. Coalescing reduz. Lote muda a unidade de execução.

Comece por leituras caras e repetidas

Candidatos úteis possuem:

  • alta repetição durante janelas curtas;
  • mesma entrada lógica;
  • resultado compartilhável;
  • custo relevante de consulta ou cálculo;
  • fonte que suporta uma leitura por vez;
  • validade verificável;
  • ausência de efeito externo.

Exemplos:

  • buscar a mesma política aprovada;
  • recuperar o mesmo cadastro por ID e versão;
  • carregar configuração usada por vários workers;
  • consultar metadados de um documento;
  • calcular uma representação derivada da mesma entrada;
  • pedir ao mesmo modelo uma transformação determinística o bastante para a tarefa, com versão e parâmetros fixados;
  • reconstruir uma entrada de cache expirada.

Evite começar com envio de mensagem, reserva, pagamento, criação de tarefa ou qualquer escrita. Várias unidades podem observar o mesmo resultado de leitura. Elas não deveriam compartilhar uma consequência apenas porque chegaram juntas.

A chave define quem pode compartilhar

A chave de coalescing precisa representar tudo que altera a resposta ou a autorização.

Uma composição pode incluir:

operação + objeto + versão + tenant + papel + finalidade + configuração

Exemplo:

carregar_politica
+ politica_reembolso
+ versao_17
+ tenant_aurora
+ papel_financeiro
+ finalidade_analise
+ idioma_ptbr

Inclua quando relevante:

  • cliente ou unidade;
  • usuário ou papel;
  • escopo de permissão;
  • região;
  • finalidade;
  • versão do objeto;
  • versão do agente;
  • modelo e parâmetros;
  • campos solicitados;
  • classificação de dados;
  • instante ou janela de validade.

Uma chave curta demais vaza resultado entre contextos. Uma chave detalhada demais reduz o agrupamento, mas esse é um problema de eficiência. Misturar autorizações é um problema de segurança.

Escolha um líder e registre os seguidores

A primeira execução cria um registro de trabalho em andamento. As seguintes encontram esse registro e decidem se podem aguardar.

Campos úteis:

  • chave de coalescing;
  • identificador da execução líder;
  • início;
  • prazo;
  • fonte consultada;
  • versão esperada;
  • estado;
  • seguidores vinculados;
  • permissões verificadas;
  • resultado validado;
  • erro;
  • expiração do registro;
  • responsável pela política.

Os estados podem ser:

  • em_andamento;
  • concluido_valido;
  • falhou_sem_resultado;
  • resultado_incompativel;
  • expirou;
  • cancelado.

A aquisição precisa ser atômica. Se duas execuções se tornam líderes ao mesmo tempo, o pico volta a existir.

Cada seguidor mantém o próprio prazo

Compartilhar trabalho não obriga todas as unidades a esperar pelo mesmo tempo.

Uma requisição pode ter prazo de dois segundos. Outra aceita dez. Ambas se ligam ao mesmo líder, mas a primeira pode abandonar a espera antes da conclusão.

O seguidor precisa preservar:

  • prazo absoluto;
  • prioridade;
  • possibilidade de rota alternativa;
  • estado da unidade original;
  • regra de cancelamento;
  • destino depois da espera.

A saída do seguidor pode ser prazo_expirado mesmo quando o líder conclui depois. O resultado tardio ainda pode servir aos seguidores que permanecem válidos ou ao cache, caso passe pelos critérios de publicação.

Cancele o líder somente quando ninguém mais depende dele

Uma unidade pode desistir. O trabalho compartilhado talvez continue útil para outras.

Mantenha uma contagem ou registro de seguidores ativos. Quando um seguidor cancela, retire apenas seu vínculo. Cancele a chamada à origem quando:

  • o líder perdeu validade;
  • todos os seguidores saíram;
  • a fonte deixou de ser autorizada;
  • o prazo máximo compartilhado terminou;
  • um circuito bloqueou a dependência;
  • o resultado não pode mais ser usado ou armazenado.

Uma decisão local não deveria encerrar o trabalho de outras unidades sem verificar dependência.

Trate falha sem criar uma nova manada

Se o líder falha, liberar todos os seguidores para tentar ao mesmo tempo recria o pico.

A política precisa escolher:

  • eleger um novo líder depois de backoff;
  • devolver erro compartilhado e encerrar;
  • usar resultado anterior dentro de uma regra stale-while-revalidate;
  • encaminhar para uma rota alternativa aprovada;
  • manter a origem protegida por circuit breaker;
  • adiar a classe de trabalho;
  • pedir intervenção quando a fonte exige correção.

A documentação da Microsoft recomenda request coalescing, jitter de TTL, stale-while-revalidate ou lock curto para impedir que várias solicitações reconstruam a mesma entrada expirada. O mecanismo deve respeitar o prazo e a sensibilidade do dado.

Resultado anterior só pode ser usado quando a política permite. Preço, consentimento, saldo, agenda e autorização podem exigir leitura vigente.

Valide antes de distribuir

O líder concluiu tecnicamente. Ainda falta conferir se o resultado serve aos seguidores.

Valide:

  • objeto correto;
  • versão esperada;
  • fonte autorizada;
  • schema;
  • escopo de permissão;
  • finalidade;
  • classificação de dados;
  • validade;
  • cobertura dos campos pedidos;
  • ausência de erro parcial oculto.

Se seguidores solicitaram projeções diferentes, compartilhe apenas a parte comum quando isso estiver previsto. Outra opção é usar chaves separadas.

Nunca entregue a resposta completa de um usuário privilegiado a outro que pediu um subconjunto. O controle deve acontecer antes da chamada compartilhada e novamente antes da entrega.

Isole clientes e dados sensíveis

Coalescing global maximiza economia e maximiza o raio de uma chave errada.

Use isolamento por:

  • tenant;
  • unidade de negócio;
  • região de dados;
  • política de retenção;
  • classe de informação;
  • conjunto de permissões;
  • finalidade aprovada.

Para dados pessoais ou estratégicos, prefira reduzir o agrupamento a ampliar exposição. Logs não precisam guardar o payload completo. Registre referências, versões e decisões de autorização.

A página sobre isolamento de clientes em agentes de IA aprofunda identidade, armazenamento e testes negativos entre contas.

Coordene com invalidação e freshness

Uma entrada pode mudar enquanto o líder consulta a fonte.

Carregue a versão esperada ou releia o marcador de atualização antes de publicar o resultado. Quando a fonte muda:

  1. marque o trabalho em andamento como potencialmente vencido;
  2. deixe a chamada terminar se isso ajudar a confirmar o estado;
  3. bloqueie distribuição sem revalidação;
  4. abra outra unidade para a nova versão;
  5. impeça que a resposta antiga ocupe a chave nova.

O guia de freshness de dados ajuda a definir janela útil e fonte de atualização. Coalescing precisa herdar essa política.

Evite estes atalhos

Chave baseada apenas na URL

Cabeçalhos, identidade, campos, idioma e versão podem alterar a resposta.

Compartilhar uma resposta de modelo por texto parecido

Sem equivalência demonstrada, duas perguntas semelhantes podem pedir decisões diferentes. Busca semântica não substitui chave operacional.

Manter o registro em andamento sem prazo

Um líder morto deixa seguidores presos. Use lease, heartbeat quando necessário e recuperação conhecida.

Eleger todos os seguidores depois da falha

A origem recebe a mesma tempestade que o controle deveria evitar.

Ignorar permissões porque a fonte é a mesma

Fonte comum não cria audiência comum.

Usar coalescing para eventos históricos

Eventos financeiros, jurídicos e operacionais que precisam ser preservados individualmente não devem desaparecer num “último valor”.

Teste equivalência, falha e isolamento

Use entradas sintéticas e uma origem controlada. Simule:

  1. dez pedidos idênticos na mesma janela;
  2. mesma chave com prazos diferentes;
  3. dois tenants pedindo o mesmo objeto;
  4. papéis com campos autorizados diferentes;
  5. versão alterada durante a busca;
  6. líder encerrado antes da resposta;
  7. falha da origem;
  8. seguidores cancelando em momentos diferentes;
  9. resultado parcial;
  10. cache expirando sob pico;
  11. nova eleição depois de backoff;
  12. circuito aberto;
  13. resposta tardia;
  14. tentativa de cruzar permissão.

Confira quantidade real de chamadas à origem, seguidores atendidos, prazos, versões, campos entregues, isolamento, estado depois da falha e carga durante a recuperação.

Métricas para operar request coalescing

Acompanhe:

  • pedidos recebidos;
  • líderes criados;
  • seguidores agrupados;
  • razão entre pedidos e chamadas à origem;
  • tamanho dos grupos;
  • tempo de espera por seguidor;
  • seguidores que expiraram;
  • líderes que falharam;
  • novas eleições;
  • resultados bloqueados por versão ou permissão;
  • chamadas evitadas;
  • carga na origem;
  • custo economizado;
  • incidentes de compartilhamento incorreto;
  • chaves com baixa taxa de agrupamento;
  • responsável e versão da política.

Uma taxa alta de agrupamento pode indicar ganho. Também pode revelar uma chave ampla demais. Eficiência precisa ser lida junto com isolamento e validade.

Checklist de request coalescing

  • [ ] A operação é leitura ou cálculo sem efeito externo?
  • [ ] Solicitações equivalentes aparecem na mesma janela?
  • [ ] A chave inclui tudo que altera resposta e autorização?
  • [ ] Tenant, papel e finalidade permanecem isolados?
  • [ ] A escolha do líder é atômica?
  • [ ] Seguidores mantêm prazo e estado próprios?
  • [ ] Cancelar um seguidor preserva os demais?
  • [ ] O líder possui lease e recuperação?
  • [ ] Falha não libera uma nova manada?
  • [ ] Resultado passa por validação antes da distribuição?
  • [ ] Mudança de versão bloqueia resposta vencida?
  • [ ] Cache e coalescing possuem responsabilidades separadas?
  • [ ] Logs evitam payload sensível desnecessário?
  • [ ] Testes cobrem falha, isolamento e recuperação?
  • [ ] Um dono revisa chaves e métricas?

Uma chamada compartilhada exige uma fronteira precisa

Request coalescing reduz repetição quando várias unidades pedem o mesmo resultado no mesmo intervalo. O ganho depende de uma chave que represente equivalência, autorização e validade.

Comece por leituras caras, escolha um líder, preserve o prazo de cada seguidor, valide o resultado e contenha a recuperação depois de falha. Se a fronteira estiver errada, o sistema economiza exatamente na camada em que deveria isolar.

Fontes oficiais verificadas em 1º de outubro de 2026:

As fontes descrevem padrões de cache e resiliência em plataformas específicas. A aplicação a agentes exige testes com as chaves, permissões, modelos e fontes realmente usados no processo.