Balancear Carga dos Agentes
A seção Distribuição do processamento das etapas de agentes: quando uma etapa dispara muitas execuções de uma vez, distribui as execuções entre vários runtimes em vez de enviar todas ao ambiente do agente.
Em resumo
- Distribuição do processamento só aparece quando a etapa dispara mais de uma execução ao mesmo tempo: com Disparar por cada item de uma lista ligado, ou em qualquer agente de um Paralelizar Agentes.
- Ambiente do próprio agente (o padrão) manda todas as execuções para o ambiente configurado no agente chamado. Distribuir entre runtimes marca dois ou mais ambientes equivalentes, e cada execução vai para o runtime com menos carga no momento do disparo.
- Carga é o que o runtime tem rodando mais o que espera na fila dele, lida uma vez no disparo. A repartição leva em conta as execuções que a própria etapa já entregou a cada um, então o lote se espalha na proporção da folga de cada runtime.
- Runtime desligado não recebe, mesmo com Manter fluxo offline. Se nenhum dos marcados estiver ligado, nada é disparado e a etapa falha. O log do agente principal diz quem ficou de fora e por quê.
- Execução que esperava na fila de um runtime que desligou passa, em 2 minutos, para o runtime ligado menos carregado da mesma distribuição.
- Disponível a partir do plano Professional. Nos demais, a opção aparece travada, com o convite ao upgrade. Cada execução continua custando 1 crédito, conferido antes do disparo.
Para que serve
Cada execução de um agente que usa navegador abre o seu próprio navegador no runtime. Uma etapa que dispara por item de uma lista de duzentos pedidos abre duzentas execuções ao mesmo tempo, e um Paralelizar Agentes com quatro agentes, um deles por item, faz a mesma coisa somando tudo. Deixadas no ambiente do agente, elas caem todas na mesma máquina.
Há duas formas de limitar um lote, e elas se combinam: repartir entre máquinas (Distribuir entre runtimes, nesta página) e soltar a lista aos poucos, com uma quantidade específica por vez (seção Modo de enfileiramento do disparo). Detalhes do modo de enfileiramento: Enfileirar Agentes. O teto de execuções ao mesmo tempo de cada máquina (Enfileirar Jobs) continua valendo em cada runtime da distribuição. Detalhes: O que a fila do runtime muda.
Os runtimes marcados precisam ser equivalentes: mesmo sistema operacional, mesmo alcance de rede aos sistemas que o agente usa, as mesmas coisas instaladas. A escolha é por carga, então qualquer execução pode cair em qualquer um deles.
O agente chamado continua com o seu Ambiente Runtime de sempre, para as execuções por API, agendamento e webhook. A distribuição vale só para as execuções disparadas por esta etapa, e cada etapa (e cada agente dentro de um Paralelizar) faz a sua própria escolha.
Onde a seção aparece
A seção Distribuição do processamento entra no painel da etapa quando há mais de uma execução para disparar de uma vez:
- numa etapa Chamar Agente, ao ligar Disparar por cada item de uma lista;
- num Paralelizar Agentes, em cada bloco de agente, sempre. Cada agente da lista escolhe por conta própria: um pode rodar no ambiente dele e o outro ser distribuído.

Desligar a repetição por item numa etapa Chamar Agente tira a seção do painel e a etapa volta a rodar no ambiente do próprio agente. No Paralelizar a seção fica, porque a etapa sempre dispara mais de um agente.
Como se configura
Ambiente do próprio agente
O padrão. Todas as execuções da etapa vão para o Ambiente Runtime configurado no agente chamado, o mesmo que ele usa quando é disparado por API ou por agendamento. Com Manter fluxo offline ligado nesse ambiente, um runtime desligado guarda as execuções na fila e roda quando voltar.
Distribuir entre runtimes
A opção só se deixa marcar com dois ou mais runtimes ligados na hora em que você configura; com menos, ela aparece desabilitada e o painel diz quantos há. Marcada, aparece a lista dos ambientes que o dono do agente chamado alcança, cada um com o nome e a situação: online, com quantas execuções estão rodando e quantas na fila, ou offline · não recebe. Marque os que devem entrar na distribuição, até vinte. Um ambiente offline não se deixa marcar.
Quais ambientes entram na lista:
- Agente seu: os seus ambientes e os ambientes públicos da empresa.
- Agente de outro dono, compartilhado com você: só os ambientes públicos da empresa. Um ambiente privado seu não alcança o dono do agente, e seria recusado na hora de disparar. Se a empresa não tem nenhum ambiente público, o painel avisa e não há o que marcar.
Marcar é escolher o conjunto; quem decide a máquina de cada execução é a carga no momento do disparo, descrita a seguir.
Onde se altera depois
No mesmo painel. A lista mostra a situação dos runtimes no momento em que o painel é aberto; a distribuição em si usa a carga do momento do disparo. Um ambiente que você marcou e depois apagou faz a etapa falhar ao disparar, com a mensagem de que um dos runtimes escolhidos não existe mais: abra o painel e refaça a lista.
Como a carga é medida e repartida
No disparo, o sistema lê uma vez a carga de cada runtime marcado: as execuções que estão rodando nele mais as que esperam na fila dele. Só os runtimes ligados entram na conta; os desligados são deixados de fora, mesmo com Manter fluxo offline.
Depois, execução por execução, cada uma vai para o runtime com a menor carga naquele momento da conta, já somando as execuções que esta mesma etapa lhe entregou. O efeito é que o lote se espalha na proporção da folga: um runtime vazio recebe mais, um já ocupado recebe menos, e um empate segue a ordem da lista.
| Situação no disparo | 30 execuções são repartidas assim |
|---|---|
| Runtime A vazio, Runtime B vazio | 15 para A, 15 para B, alternando. |
| Runtime A com 10 execuções (rodando ou na fila), Runtime B vazio | As 10 primeiras vão todas para B, até ele empatar com A. As 20 restantes alternam: no fim, A recebe 10 e B recebe 20. |
| Runtime A com 10, Runtime B com 10, Runtime C desligado | C não entra. 15 para A, 15 para B. |
| Todos os marcados desligados | Nada é disparado. A etapa falha dizendo que nenhum dos runtimes escolhidos está ligado. |
A decisão é feita no disparo e não muda depois: uma execução entregue a um runtime fica com ele. O log do pai diz quantas execuções foram para cada runtime, pelo nome, e cada uma aparece no Control Room no ambiente que a recebeu.
A fila entra na conta de carga: um runtime com muitas execuções normais esperando em Enfileirar Jobs já está comprometido, mesmo que só uma esteja rodando, e por isso recebe menos.
Quando um runtime da distribuição está fora do ar
A distribuição só entrega a quem está ligado no momento do disparo, e desligado não recebe, mesmo com Manter fluxo offline. Com três runtimes marcados:
| No disparo | O que acontece |
|---|---|
| 1 dos 3 está fora do ar | Os dois ligados recebem o lote inteiro, repartido pela carga de cada um. O que está fora não recebe nada, e ninguém espera por ele. |
| 2 dos 3 estão fora do ar | O único ligado recebe o lote inteiro. Ele passa a ser o limite: com teto de execuções ao mesmo tempo, o resto espera na fila dele. |
| 3 dos 3 estão fora do ar | Nada é disparado. A etapa falha dizendo que nenhum dos runtimes escolhidos está ligado, e entra na Gestão de Erros. |
| Um deles cai depois de receber a parte dele | As execuções que já rodavam nele param onde estavam. As que esperavam na fila dele passam, depois de 2 minutos sem o runtime, para o runtime ligado menos carregado da mesma distribuição e rodam lá; o agente principal recebe o retorno delas como o de qualquer outra. Ficam na fila do runtime que caiu, até ele voltar, as que levam parâmetro Secreto (o valor vai cifrado para aquela máquina, e só ela o abre) e as de uma distribuição sem outro runtime ligado; para essas vale Quando o runtime do agente chamado sai do ar. |
Com isso, o que ainda não tinha começado não fica parado à espera da máquina que caiu. A troca acontece uma vez por execução, sai da fila de origem antes de entrar na outra, e a execução roda uma vez só.
O log do agente principal diz quais runtimes escolhidos ficaram de fora do disparo e por quê (desligado, ou desatualizado para rodar um agente chamado) e para onde as execuções foram. Com a lista saindo aos poucos, a linha se repete só quando esse conjunto muda, e outra linha avisa quando todos voltam a receber.
Com a lista saindo uma quantidade específica por vez (Enfileirar Agentes), a distribuição é refeita a cada leva: um runtime que caiu no meio da lista deixa de receber as levas seguintes, e um que voltou passa a receber.
Para um agente que não pode parar quando todos os runtimes da distribuição caem, a saída é não depender da distribuição: Ambiente do próprio agente com Manter fluxo offline ligado guarda as execuções até o runtime voltar. A Gestão de Erros da etapa, com nova tentativa, cobre a queda passageira nos dois casos.
O que a fila do runtime muda
Distribuir funciona com ou sem Enfileirar Jobs nos runtimes marcados. Sem ele, cada runtime começa na hora tudo o que recebe, e cada execução que usa navegador abre o seu: um lote de 300 itens, todos ao mesmo tempo, repartido entre 3 runtimes, são cerca de 100 execuções simultâneas em cada máquina.
Cada runtime da distribuição aplica o teto dele. Um runtime com Enfileirar Jobs ligado recebe a parte dele do lote, começa até o número de execuções ao mesmo tempo do cadastro e deixa o resto esperando na fila, com o agente chamado na frente das execuções de sempre. O log do chamador diz "iniciada" quando o Router entregou a execução; ela pode estar esperando vaga na máquina. Detalhes: Paralelizar Agentes → Runtime em modo fila.
A carga que a distribuição lê já inclui o que espera na fila de cada runtime, então uma máquina com teto baixo e fila cheia recebe menos. Quem limita quantas execuções da etapa caem numa mesma máquina são três coisas que se somam: o teto do ambiente, o teto do próprio agente chamado (Execuções ao mesmo tempo, aplicado por máquina) e a seção Modo de enfileiramento do disparo (Enfileirar Agentes). O teto da etapa (5000 execuções somando todos os agentes dela) é de sanidade, não de proteção.
Quando ligar Enfileirar Jobs nos runtimes da distribuição
- A máquina não aguenta a parte dela. O teto do ambiente é o único que conta tudo o que roda na máquina: a parte do lote que ela recebe, somada ao que chega por agendamento, API, webhook, Control Room e outros agentes.
- O agente chamado automatiza aplicativo desktop. Mouse, teclado e janela em foco são um só por máquina, e o runtime não impede duas execuções desktop ao mesmo tempo na mesma máquina: as duas disputam a tela. Ligue Enfileirar Jobs com 1 execução ao mesmo tempo em cada runtime marcado, e cada máquina roda uma execução por vez, de qualquer agente. O teto do agente em 1 separa só as execuções daquele agente; dois agentes desktop diferentes na mesma máquina continuam se cruzando. Detalhes: Automação Desktop.
Quando a preocupação é só com o agente chamado (o sistema que ele acessa aceita poucos acessos, ou poucas cópias dele cabem numa máquina), o teto do agente basta: ele vale em cada runtime mesmo sem Enfileirar Jobs. Quando é com o tamanho da lista, use a quantidade específica por vez. Mudar Enfileirar Jobs ou o número de execuções ao mesmo tempo só vale depois de reiniciar o runtime daquele ambiente (Ambientes Runtime).
Créditos
Distribuir não muda o preço: cada execução do agente chamado consome 1 crédito da empresa dona dele, além do crédito do pai. Antes de disparar, o sistema confere o saldo para todas as execuções da etapa, somando todos os agentes e todos os itens; se ele não cobrir, nenhuma é disparada e a etapa falha dizendo quantos créditos faltam.
Planos
Distribuir entre runtimes existe a partir do plano Professional. Nos planos sem paralelismo, a seção Distribuição do processamento aparece do mesmo jeito, com a opção travada e o botão Conhecer planos: o agente roda no ambiente dele.
O plano conferido é o da empresa dona do agente chamado, e ele é conferido de novo a cada disparo. Uma etapa marcada para distribuir numa conta cujo plano não comporta a distribuição (o plano mudou depois que a etapa foi configurada) vira pendência no fluxo, e o disparo é recusado com a mensagem do plano. No painel da etapa, a seção travada mostra o botão Usar o ambiente do próprio agente, que devolve a entrada ao ambiente dele e resolve a pendência.
Um agente importado numa conta sem paralelismo chega com essas entradas já no ambiente do próprio agente. Detalhes: Importar e Exportar Agentes.
Limites e tetos
| Limite | Valor | O que acontece ao passar | Contorno |
|---|---|---|---|
| Runtimes marcados numa distribuição | 20 | Só os vinte primeiros marcados contam. | Reparta o lote em mais de um agendamento. |
| Runtimes ligados para distribuir | Pelo menos 2 | Com menos, a opção não se deixa marcar e o disparo é recusado. | Use Ambiente do próprio agente até o segundo runtime subir. |
| Plano | A partir do Professional | A opção aparece travada, com o convite ao upgrade; o agente roda no ambiente dele. Uma etapa já marcada para distribuir vira pendência. | Mudar de plano, ou Usar o ambiente do próprio agente (botão da seção travada) e limitar o lote com uma quantidade específica por vez. |
| Runtime sem Enfileirar Jobs | Sem teto | O runtime começa na hora tudo o que recebe, e cada execução que usa navegador abre o seu. A máquina é o limite. | Ligue Enfileirar Jobs com um número que a máquina aguente, ou limite o agente pelo teto dele. |
| Teto de cada runtime (Enfileirar Jobs com número) | Do cadastro de cada ambiente | O que não cabe espera na fila daquela máquina. | Marque mais máquinas, ou suba o teto onde a máquina aguenta. |
| Teto do agente chamado (Execuções ao mesmo tempo) | Por máquina | Cada runtime aplica o teto na dele: com 1 e três runtimes, podem rodar três, uma em cada. | Se o sistema de destino não aceita nem isso, use Ambiente do próprio agente (uma máquina só). |
| Execuções por etapa | 5000 | Nada é disparado; a etapa falha dizendo quantas dispararia. | Fatie a lista. |
| Execução na fila de um runtime que desligou | 2 minutos | Passa para o runtime ligado menos carregado da mesma distribuição. | A que leva parâmetro Secreto fica no runtime de origem: mantenha os runtimes da distribuição ligados, ou use Ambiente do próprio agente com Manter fluxo offline. |
Quando algo dá errado
| Situação | O que acontece |
|---|---|
| Menos de dois runtimes marcados na distribuição | O disparo é recusado: para distribuir, informe 2 ou mais runtimes. A etapa falha e entra na Gestão de Erros. |
| Nenhum dos runtimes marcados está ligado | Nada é disparado. A etapa falha dizendo que nenhum dos runtimes escolhidos está ligado. Manter fluxo offline não vale para a distribuição. |
| Um dos runtimes marcados foi apagado, ou está fora do alcance do dono do agente | Nada é disparado. A etapa falha dizendo que um dos runtimes escolhidos não existe ou está fora do alcance do dono. Refaça a lista no painel. |
| O plano da empresa dona do agente não comporta a distribuição | A etapa aparece como pendência no fluxo, e o disparo é recusado com a mensagem do plano Professional. No painel, use o botão Usar o ambiente do próprio agente da seção travada, ou mude de plano. |
| Agente de outro dono marcado para rodar num ambiente privado seu | O painel não lista esse ambiente. Se a etapa foi importada ou editada de outro jeito, o disparo é recusado por ambiente fora do alcance do dono. |
| Créditos insuficientes para o lote inteiro | Nada é disparado, em nenhum runtime. A etapa falha dizendo quantos créditos a etapa precisa e quantos a empresa tem. |
| Um ou mais runtimes marcados estão desligados ou desatualizados no disparo | O lote vai para os ligados. O log do agente principal diz quem ficou de fora, por quê e para onde as execuções foram. |
| Um runtime cai depois de receber a parte dele | As que rodavam nele param onde estavam. As que esperavam na fila dele passam, em 2 minutos, para o runtime ligado menos carregado da distribuição; as que levam parâmetro Secreto ficam nele, e o pai que espera recebe a falha delas quando a plataforma desiste (30 minutos sem o runtime), ou o prazo dele acaba antes. Com uma quantidade específica por vez, as levas seguintes vão para os runtimes ligados. Veja Quando um runtime da distribuição está fora do ar. |
