Runtimes e Ambientes
Onde os agentes executam. Um runtime tem uma instalação por ambiente (Desenvolvimento, Homologação e Produção): cadastre o runtime, instale cada instalação numa máquina com a chave de ativação dela e controle o comportamento de execução de cada uma.
- O que é um Runtime
- Cadastrar um runtime
- Instalações por ambiente
- O card do runtime
- Remover uma instalação ou o runtime
- Ambientes: Desenvolvimento, Homologação e Produção
- O campo RUNTIME
- Os botões Dev, Homolog e Prod
- Quantos runtimes o plano permite
- Baixar e configurar o runtime
- Ativação do runtime (agent.config.json)
- Executar em segundo plano (bandeja do Windows)
- Uma máquina ativa por chave de ativação
- Erros comuns de ativação e conexão
- Pré-requisitos técnicos
- Comportamento de execução
- Quando o runtime sai do ar no meio
- Vínculo com o agente
- ID do runtime (para a API)
- Boas práticas
O que é um Runtime
O runtime é o aplicativo multiplataforma do browserMate que executa os agentes. Ele controla o navegador, executa os scripts e reporta logs e evidências de volta à plataforma. Na tela Meus Runtimes, um Runtime é o destino de execução que você nomeia e escolhe no agente, por exemplo Nota Fiscal Automation. Ele se organiza em quatro peças:
| Peça | O que é |
|---|---|
| Runtime | O que você escolhe no agente, no agendamento e na API. Tem nome, descrição, um ID e três posições, uma por ambiente. |
| Ambiente | Desenvolvimento, Homologação ou Produção. Todo agente está em um deles (veja Ambientes). |
| Instalação | O aplicativo instalado numa máquina (ou contêiner), ligado a uma posição do runtime. Cada instalação tem a própria chave de ativação, o próprio agent.config.json, o próprio status LIVE ou OFFLINE e o próprio comportamento de execução. Uma instalação pode atender mais de um ambiente do mesmo runtime. |
| Chave de ativação | O que liga uma máquina a uma instalação: uma chave por instalação. Cada instalação pertence a um runtime só, então a chave nunca é compartilhada entre runtimes. |
Na execução, o runtime do agente e o ambiente do agente apontam juntos para uma instalação, e é nela que o agente roda. Um agente em Produção no runtime Nota Fiscal Automation roda na instalação de Produção desse runtime. Se ele vai para Homologação, passa a rodar na instalação de Homologação do mesmo runtime, sem trocar o runtime escolhido.
Com isso você consegue:
- Usar uma máquina só para os três ambientes, que é como todo runtime novo começa
- Desenvolver e homologar no seu notebook e rodar Produção num servidor dedicado, com o mesmo runtime escolhido no agente
- Levar um agente de Homologação para Produção trocando só o ambiente
- Distribuir a carga entre vários runtimes (veja Balancear Carga dos Agentes)
- Ver o status online/offline de cada instalação na tela Meus Runtimes
Cadastrar um runtime
Em Meus Runtimes, clique em Novo Runtime e preencha:

| Campo | Descrição |
|---|---|
| Nome Obrigatório | Nome do runtime, o que aparece no campo RUNTIME do agente e no agendamento. Ex.: Nota Fiscal Automation. |
| Descrição | Descrição opcional: para que serve o runtime, quem administra as máquinas. |
| Instalações por ambiente | Uma linha por ambiente (Desenvolvimento, Homologação e Produção), dizendo qual instalação atende aquele ambiente neste runtime. Veja Instalações por ambiente a seguir. |
| Tornar visível para toda a empresa | Só para administradores, a partir do plano Corporate. Marcado, o runtime inteiro, com todas as instalações dele, fica disponível para os outros usuários da empresa escolherem nos agentes deles. Para eles, o runtime aparece em Runtimes da Empresa, com o status de cada ambiente e o ID. As instalações continuam sendo feitas por quem cadastrou o runtime. Desmarcar é recusado enquanto agentes, agendamentos ligados ou etapas com Distribuição entre runtimes de outras contas da empresa usam o runtime, porque fora do alcance delas essas execuções seriam recusadas; a mensagem diz quais são, por exemplo O runtime Nota Fiscal Automation continua visível para a empresa: a etapa "Emitir do agente Lote NF" de outras contas da empresa distribui execuções nele (Distribuição entre runtimes). Desmarque-o na Distribuição do processamento dessa etapa antes. |
O mesmo formulário existe no painel Runtimes do Agent Builder, para cadastrar sem sair do agente.
Instalações por ambiente
Cada linha do campo Instalações por ambiente tem uma destas opções:
| Opção | O que faz |
|---|---|
| Nova instalação | Cria uma instalação para aquele ambiente, com chave de ativação própria e agent.config.json próprio. É uma máquina a mais para instalar. |
| Manter a instalação atual | Só aparece ao editar, na posição que já tem instalação própria. Mantém a instalação, a chave e a configuração como estão. |
| Compartilhar com outro ambiente | Por exemplo Compartilhar com Desenvolvimento. O ambiente roda na máquina de Desenvolvimento: o mesmo runtime instalado atende os dois ambientes. O Cofre continua separado: cada execução usa o valor do ambiente do agente, e o log registra esse ambiente. Só dá para escolher um ambiente que tenha instalação própria. |
| Sem instalação | O runtime fica sem instalação naquele ambiente. Um agente nesse ambiente não roda neste runtime: com ele escolhido no campo RUNTIME, o botão desse ambiente no cabeçalho do agente fica desabilitado (veja Os botões Dev, Homolog e Prod). |
Um runtime novo começa com uma instalação para os três ambientes: Desenvolvimento em Nova instalação, Homologação e Produção em Compartilhar com Desenvolvimento. É a mesma ideia de uma credencial do Cofre com valor único. Quem precisa de máquinas separadas troca a posição para Nova instalação, por exemplo Produção, para rodar Produção num servidor e o resto no notebook.
Abaixo das três linhas, o formulário resume o que o Salvar vai fazer, por exemplo Vai gerar 1 chave de ativação nova (instalação de Desenvolvimento), com o seu agent.config.json. Ao editar, uma posição que deixa de ter instalação própria aparece como A instalação atual de Produção será removida e a chave de ativação dela para de valer.
Trocar para Nova instalação a posição de um ambiente que já tinha instalação é trocar de máquina: as execuções daquele ambiente passam para a instalação nova, que começa com a mesma configuração de execução da anterior (fila, execuções ao mesmo tempo, fluxo offline) e só recebe execuções depois que o agent.config.json novo for instalado. O resumo avisa: As execuções de Produção passam para a instalação nova, com a mesma configuração de execução da atual, e só rodam depois que o agent.config.json novo for instalado na máquina.
O Salvar fica bloqueado, com o motivo no resumo, quando:
- uma posição reaproveita um ambiente que ficou sem instalação própria;
- nenhuma posição tem instalação: O runtime precisa de pelo menos uma instalação.;
- as instalações novas passam do limite do plano (veja Quantos runtimes o plano permite).
Um runtime com uma só instalação atende com ela os ambientes em que ela está escolhida, como os três de um runtime novo. Editar um runtime mantém o mesmo ID, então agentes, agendamentos e integrações que apontam para ele continuam valendo depois de separar as instalações.
O card do runtime
Na tela Meus Runtimes e no painel Runtimes do Agent Builder, cada runtime aparece num card. No alto ficam o nome e os botões Editar e Remover (o ícone da lixeira). Logo abaixo vem o ID para a API, com botão de cópia: é o ID do runtime, usado na API. Em seguida, em Instalações, há um bloco por ambiente, marcado na cor dele (Desenvolvimento azul, Homologação âmbar, Produção verde). O bloco de um ambiente com instalação própria mostra:
- LIVE ou OFFLINE, ao lado do nome do ambiente, o status da instalação;
- a máquina e a versão, informadas pela própria instalação quando ela conecta, no formato máquina - versão. Sem conexão, aparece Ainda não conectado ou Desconectado - última versão seguido da última versão vista;
- a chave de ativação (Chave no painel), com botão de cópia;
- o botão agent.config.json, que baixa o arquivo daquela instalação;
- o botão Configurar, que abre o comportamento de execução daquela instalação.
Um ambiente que reaproveita a instalação de outro ocupa uma linha só, com Compartilha com e o ambiente; um ambiente sem instalação mostra Sem instalação, com borda tracejada. Uma instalação acima do limite do plano mostra Suspensa pelo plano ao lado do status.
Remover uma instalação ou o runtime
Para remover uma instalação, edite o runtime e troque a posição dela para Sem instalação ou Compartilhar com outro ambiente. Para remover tudo, use Remover no card: as instalações do runtime são removidas e as chaves de ativação param de valer.
A plataforma recusa a remoção quando algum agente ou agendamento usa aquele runtime no ambiente que ficaria sem instalação, e lista quem usa. Por exemplo: O runtime Nota Fiscal Automation não foi salvo: o agente "Emitir NF" roda nele, e o agendamento "Fechamento diário" aponta para ele, em Produção. Sem instalação nesse ambiente, essas execuções seriam recusadas. Troque o runtime deles antes. Agendamento desligado não entra nessa conta: ao ser religado, ele é conferido de novo (veja Agendamento).
Remover o runtime também é recusado enquanto uma etapa marca esse runtime na Distribuição entre runtimes (na versão publicada de qualquer agente que o alcança): O runtime Nota Fiscal Automation não foi removido: a etapa "Emitir do agente Lote NF" distribui execuções nele (Distribuição entre runtimes). Desmarque-o na Distribuição do processamento dessa etapa antes. Tirar só a instalação de um ambiente não é recusado por causa da distribuição: nesse ambiente o runtime fica de fora da distribuição, e os outros runtimes marcados recebem.
A remoção também é recusada enquanto a instalação que sai tem execuções na fila ou rodando, porque a fila dela seria perdida: O runtime Nota Fiscal Automation não foi salvo: a instalação de Produção tem 3 execuções na fila ou rodando. Espere terminarem antes de tirar essa instalação, ou a fila dela é perdida.
Ambientes: Desenvolvimento, Homologação e Produção
Todo agente está em um ambiente: Desenvolvimento, Homologação ou Produção. Um agente novo, clonado ou importado começa em Desenvolvimento, e um agente que nunca teve ambiente escolhido está em Produção. Esse único ambiente decide duas coisas na execução:
- qual instalação do runtime roda o agente: a que o runtime tem naquele ambiente;
- qual valor do Cofre de Senhas é usado, quando a credencial tem valores por ambiente. Uma credencial com valor único vale em todos os ambientes, ninguém precisa digitar o mesmo valor três vezes. Uma credencial por ambiente sem valor no ambiente do agente é erro: a plataforma nunca usa o valor de outro ambiente.
Depois da execução, o ambiente também decide onde ela é contada: o Analytics soma só as execuções de Produção (Desenvolvimento e Homologação são teste e não entram nos ganhos), enquanto o Control Room, a Trilha de Auditoria e o consumo de créditos contam todos os ambientes.
No Agent Builder, runtime e ambiente são dois controles separados, lado a lado na segunda fileira do cabeçalho: o campo RUNTIME escolhe onde o agente roda, e os botões Dev, Homolog e Prod escolhem em que ambiente. O ambiente é do agente inteiro: decide qual instalação do runtime escolhido roda o agente (cada instalação tem a própria chave de ativação) e qual valor do Cofre é usado.
O campo RUNTIME
Fica na segunda fileira do cabeçalho. Lista só runtimes, pelo nome e em ordem alfabética, com a Sandbox no fim, no grupo Runtime limitado e para testes. Todos os runtimes se deixam escolher, tenham ou não instalação no ambiente do agente. Uma conta com os runtimes Nota Fiscal Automation e VPS GCP vê a lista assim:
- Nota Fiscal Automation
- VPS GCP
- Sandbox
Escolher um runtime que não tem instalação no ambiente em que o agente está leva o agente junto para um ambiente que o runtime tem (Produção primeiro, depois Homologação, depois Desenvolvimento), numa troca só, com o aviso Agente em Produção: o runtime VPS GCP não tem instalação em Desenvolvimento. Com o agente publicado, ir para Produção pede a confirmação de sempre; cancelar mantém o runtime anterior. Uma troca de runtime feita pelo Copilot segue a mesma regra de levar o agente junto, na versão em desenvolvimento e sem a confirmação de Produção (o aviso diz para qual ambiente o agente foi), e o cabeçalho do editor se atualiza. Passar o mouse sobre o campo mostra o nome inteiro do runtime escolhido.
| Rótulo | Quando aparece |
|---|---|
| Selecione... | O agente não tem runtime escolhido, ou o runtime gravado nele não existe mais. Nesse segundo caso o editor mostra a pendência O runtime gravado neste agente não existe mais na sua conta. Escolha outro. Com o agente publicado (sem versão em desenvolvimento, quando a troca vale na hora), esta opção fica desabilitada, com a dica O agente publicado precisa de um runtime: escolha outro runtime. Na versão em desenvolvimento ela continua escolhível e vira pendência. |
| Nenhum runtime cadastrado | A conta não tem runtime. Cadastre um em Meus Runtimes, ou use a Sandbox para testar. |
| Runtime do dono do agente | O agente foi compartilhado com você: o runtime é do dono (veja Vínculo com o agente). |
| O dono não definiu o runtime | O agente foi compartilhado com você e o dono ainda não escolheu runtime para ele. |
Os botões Dev, Homolog e Prod
Logo ao lado do campo RUNTIME ficam três botões juntos: Dev (Desenvolvimento), Homolog (Homologação) e Prod (Produção). O botão do ambiente do agente fica preenchido com a cor do ambiente: azul em Desenvolvimento, âmbar em Homologação e verde em Produção. A borda de baixo do cabeçalho mostra uma linha fina na mesma cor, para o ambiente ficar à vista enquanto você trabalha no fluxo.
Os botões dos ambientes em que o runtime escolhido no campo RUNTIME não tem instalação ficam desabilitados, e passar o mouse mostra o motivo: o runtime X não tem instalação neste ambiente. Para usar esse ambiente, dê a ele uma instalação no runtime (em Meus Runtimes) ou escolha outro runtime. Do mesmo modo, o botão de um ambiente cuja instalação está suspensa pelo plano fica desabilitado, com a dica a instalação deste ambiente está suspensa pelo plano. O botão do ambiente atual do agente nunca fica desabilitado por isso: nesse caso quem avisa é a pendência.
Uma pequena marca amarela num botão quer dizer que uma credencial do cofre usada no fluxo não tem valor naquele ambiente; a dica diz falta credencial do Cofre neste ambiente, e a pendência diz qual credencial falta. Esse botão continua escolhível: é escolhendo o ambiente que você vê o que precisa cadastrar.
Clicar em outro botão troca o ambiente do agente. Os três botões ficam desabilitados, com o motivo ao passar o mouse, nas mesmas situações em que o campo RUNTIME trava: outra pessoa está desenvolvendo o processo, você não tem permissão de edição, ou o agente é de outro dono (O ambiente é definido pelo dono deste agente).
Com a Sandbox escolhida no campo RUNTIME, ou com o campo em Selecione... (nenhum runtime), nenhum botão fica marcado, os três ficam desabilitados e a linha do cabeçalho fica cinza: a Sandbox não usa ambiente nem Cofre, e sem runtime não há instalação para o ambiente escolher. O ambiente gravado no agente não muda e volta a aparecer quando um runtime é escolhido.
Existe uma só versão publicada, e publicar é o ato de dizer "terminei". Numa versão em desenvolvimento, a escolha do runtime e do ambiente vale para o debug e vai junto na publicação. Com o agente publicado, trocar o runtime ou o ambiente vale na hora para as próximas execuções e não gera versão nova: a versão só sobe quando o fluxo muda. Ir para Produção com o agente publicado pede uma confirmação, Mudar para Produção, que avisa que as próximas execuções usarão o runtime escolhido e as credenciais de Produção, por exemplo As próximas execuções usarão o runtime Nota Fiscal Automation e as credenciais de Produção. As outras trocas valem na hora, sem perguntar.
Uma sequência comum: criar a versão, depurar em Desenvolvimento e Homologação sem gerar versão nenhuma, publicar em Homologação para deixar o agendamento rodando uns dias, e, quando estiver convencido, abrir o agente e trocar para Produção. Continua sendo a mesma versão.
- o runtime escolhido não tem instalação no ambiente do agente: O runtime X não tem instalação em Y;
- a instalação do runtime no ambiente do agente está suspensa pelo plano: A instalação NOME está suspensa pelo plano: faça upgrade do plano, ou escolha outro runtime;
- uma credencial do cofre usada no fluxo não tem valor para o ambiente do agente;
- um agendamento ligado do agente fixa um runtime sem instalação no ambiente do agente, por exemplo O agendamento "D" aponta para o runtime X, sem instalação em Y. Agendamento desligado não entra;
- O runtime gravado neste agente não existe mais na sua conta. Escolha outro.
Ao publicar, a plataforma confere no servidor as pendências de runtime, ambiente e agendamento, venha a publicação de onde vier (inclusive de um agente compartilhado editado por convidado, ou de uma troca de runtime feita pelo Copilot). A publicação é recusada, com o motivo num aviso no editor, quando:
- o agente não tem runtime: Escolha o runtime do agente antes de publicar.;
- o runtime gravado não existe mais na conta do dono do agente, ou saiu do alcance dele: O runtime gravado neste agente não existe mais na conta do dono (ou saiu do alcance dele). Escolha outro runtime antes de publicar.;
- o runtime não tem instalação no ambiente da versão em desenvolvimento: O runtime X não tem instalação em Y. Escolha outro runtime, ou cadastre uma instalação nesse ambiente.;
- a instalação desse ambiente está suspensa pelo plano (a mensagem é a de Quantos runtimes o plano permite);
- um agendamento ligado do agente fica sem instalação no runtime e no ambiente da versão em desenvolvimento (a mesma mensagem da pendência de agendamento).
Um agente chamado por outro (Chamar Agente) roda no próprio ambiente, não no do agente que chamou. Cada agente carrega o seu. O Meus Insights mostra o ambiente de cada execução.
Quantos runtimes o plano permite
O número de runtimes é um teto da empresa inteira, não de cada pessoa: os runtimes de todos os membros somam contra o mesmo limite. Na conta, cada instalação conta como um runtime. Um runtime com Desenvolvimento, Homologação e Produção em instalações separadas conta 3; uma instalação reaproveitada por outro ambiente (Compartilhar com) conta uma vez só. O topo da tela Meus Runtimes mostra quanto já está em uso, no formato 2 de 5 runtimes em uso na empresa, para você saber onde está antes de criar mais uma instalação.
O formulário recusa o Salvar quando as instalações novas passam do teto e explica a conta, por exemplo: O plano permite 5 runtimes na empresa e 4 já estão em uso: cabem mais 1, e este runtime pede 2. Reaproveite uma instalação entre ambientes ("Compartilhar com ...") ou remova um runtime que não usa mais. Uma instalação removida na mesma edição libera a vaga dela. A plataforma confere o teto de novo ao gravar e recusa o que passar dele.
Quando a empresa muda para um plano menor, as instalações que passam do novo teto são suspensas, nunca excluídas. A ordem protege Produção: saem primeiro as instalações de Desenvolvimento, depois as de Homologação, e as de Produção ficam. Uma instalação que atende Produção conta como Produção, e dentro do mesmo ambiente fica a mais antiga. A instalação suspensa mostra Suspensa pelo plano no card, continua cadastrada com a configuração e a chave de ativação intactas, não aceita ativação e não ocupa vaga. Ela volta quando a empresa passa a um plano que a comporte (troca de plano ou confirmação de pagamento); remover outra instalação não a reativa. O mesmo vale para as instalações de um membro que ficou sem acesso ativo por causa do plano: elas saem da contagem enquanto ele estiver nessa situação.
Toda execução que entraria numa instalação suspensa é recusada na entrada, venha de onde vier (execução manual, API, webhook, agendamento, debug, agente chamado por outro): A instalação NOME está suspensa pelo plano: o plano da empresa não comporta todas as instalações de runtime. Faça upgrade do plano, ou escolha outro runtime. Na API o erro é INVALID_ENVIRONMENT (400). Na Distribuição entre runtimes, a instalação suspensa fica de fora e os outros runtimes recebem; o log do agente registra instalação suspensa pelo plano, e o painel da etapa mostra o runtime com suspensa pelo plano · não recebe. No editor, o botão desse ambiente fica desabilitado e, se é o ambiente do agente, a pendência diz qual instalação está suspensa.
Baixar e configurar o runtime
O runtime não tem instalador. É um pacote .zip pronto para rodar. O fluxo é: baixar, configurar, abrir.
- Com o runtime já cadastrado (seção Cadastrar um runtime acima), no Menu, acesse Runtime dos Agentes e baixe o pacote
.zipdo seu sistema operacional. - Extraia o
.zipnuma pasta. No card do runtime, em Instalações, no bloco do ambiente que esta máquina vai atender, clique em agent.config.json para baixar o arquivo já preenchido e salve-o nessa mesma pasta, substituindo o que veio no pacote (seção Ativação do runtime a seguir). - Abra o executável. Não há instalador nem login, é rodar direto.
- O runtime conecta-se à plataforma, e a instalação aparece como LIVE em Meus Runtimes, com a máquina e a versão.
Um runtime com mais de uma instalação repete esses passos em cada máquina, cada uma com o agent.config.json da sua instalação.

Cenário conhecido: aviso do SmartScreen no Windows
Ao abrir o browsermate.exe pela primeira vez no Windows, é esperado que o Microsoft Defender SmartScreen exiba um aviso antes de deixar o executável rodar. Isso acontece porque o binário ainda não tem um certificado de assinatura de código reconhecido pela Microsoft. Não é um indício de problema no arquivo baixado.
- Ao abrir o
browsermate.exe, aparece a tela "O Windows protegeu o computador". - Clique em Mais informações. O aviso se expande e mostra o nome do arquivo (
browsermate.exe) e o botão Executar assim mesmo. - Clique em Executar assim mesmo para seguir com a abertura. O runtime inicia normalmente a partir daí.


Ativação do runtime (agent.config.json)
O que liga a máquina à sua conta e a uma instalação do runtime é o arquivo agent.config.json, localizado na pasta onde você extraiu o .zip do runtime:
.zip) e abra o runtime. Os campos abaixo ficam documentados para quem precisa conferir ou editar o arquivo manualmente.

{
"key_activation": "<chave de ativação do runtime>",
"user_token": "<seu token de usuário>",
"ui_socket_url": "https://app.browsermate.io",
"execution-mode": "console",
"startup-notice": true,
"keep-session-active": false,
"ip-preference": "ipv4"
}
| Campo | O que é / onde obter |
|---|---|
key_activation |
A chave de ativação da instalação. Gerada quando uma posição do runtime recebe Nova instalação, em Meus Runtimes. É ela que diz à plataforma qual instalação, de qual runtime, aquela máquina representa. |
user_token |
O seu token de usuário. Disponível no Menu, na opção Meus Dados (Token de API). Identifica a conta dona do runtime. |
ui_socket_url |
O endereço da plataforma à qual o runtime se conecta. Em produção: https://app.browsermate.io. |
execution-mode |
Opcional. "console" (padrão) ou "background". Só tem efeito no Windows, veja Executar em segundo plano a seguir. |
startup-notice |
Opcional. true (padrão) ou false. Define se o runtime confirma na tela que subiu em segundo plano. Só tem efeito com "execution-mode": "background", veja Executar em segundo plano a seguir. |
keep-session-active |
Opcional. false (padrão) ou true. Mantém o desktop do Windows ativo depois que você fecha a conexão remota com o servidor, veja Manter a sessão ativa em servidor remoto a seguir. Campo ausente, valor diferente de true ou arquivo de uma versão anterior mantêm a opção desligada. |
ip-preference |
Opcional. "ipv4" (padrão), "ipv6" ou "system". Qual família de IP o runtime tenta primeiro ao falar com a plataforma, com a outra de reserva. Veja Preferência de IP a seguir. |

Na inicialização, o runtime envia a chave de ativação e o token ao servidor, que os valida e devolve uma credencial temporária exclusiva daquela sessão. O runtime nunca opera com acesso além do necessário para executar os agentes. Depois de editar o arquivo, reinicie o runtime para aplicar.
agent.config.json contém credenciais da sua conta. Não o copie para repositórios, compartilhamentos abertos ou outras máquinas. Cada máquina usa a chave da própria instalação.
Executar em segundo plano (bandeja do Windows)
"execution-mode": "console"), o runtime abre e permanece numa janela de console, exatamente como sempre funcionou. No Windows, dá pra configurar "execution-mode": "background" para que o runtime nunca abra janela nenhuma: ele já nasce direto com um ícone na bandeja do sistema, perto do relógio (pode estar atrás da seta ^ de ícones ocultos).

background.{
"key_activation": "<chave de ativação do runtime>",
"user_token": "<seu token de usuário>",
"ui_socket_url": "https://app.browsermate.io",
"execution-mode": "background",
"startup-notice": true
}
Como nada abre na tela nesse modo, o runtime confirma que subiu: aparece uma caixa de mensagem do Windows dizendo browserMate Runtime está rodando em background. Processo ativo na bandeja. Ela não interrompe nada, a ativação do agente segue acontecendo enquanto ela estiver na tela. Sai com um clique em OK, e também se fecha sozinha depois de um minuto, para nunca ficar parada na tela de uma máquina sem ninguém por perto. É uma caixa diferente do aviso de que o runtime já está rodando, que aparece quando o executável é aberto uma segunda vez.
Para iniciar calado, ponha "startup-notice": false no arquivo. Isso é recomendado quando o runtime sobe sozinho junto com o Windows, ou quando ele fica num servidor sem ninguém na frente da tela: nos dois casos a confirmação não tem quem leia. Quando é uma pessoa que abre o runtime, deixe true, porque é essa caixa que diz a ela que o serviço está no ar. O padrão é confirmar: campo ausente, arquivo gerado antes desta opção existir, valor escrito errado ou arquivo com erro de digitação mantêm o aviso, nunca calam o runtime por acidente.
O ícone da bandeja tem duas opções: Ver logs, que abre no programa de texto padrão do Windows o arquivo de log local dessa execução em segundo plano (esse arquivo só existe no modo background, já que no modo console o próprio console já mostra tudo ao vivo), e Sair, que encerra o processo.
status.txt ao lado do executável, nos casos raros em que nem uma janela de console pôde ser aberta pra mostrar o problema). A única exceção é o aviso de que já existe um runtime ativo com a mesma chave: nesse caso o runtime mostra a mensagem e encerra em seguida, porque não há nada a executar (veja Uma máquina ativa por chave de ativação).
Essa opção só existe no Windows. No Mac e no Linux, o campo é ignorado: o runtime sempre abre em console, registrando no log a mensagem Background nativo não suportado neste sistema operacional.
| Sintoma | Causa | O que fazer |
|---|---|---|
| Abrir o executável de novo não faz nada, ou mostra um aviso dizendo que já está rodando | Proteção de instância única: o runtime não deixa dois processos com a mesma chave de ativação rodarem ao mesmo tempo no mesmo computador, pra não competir pela mesma fila de execuções. Vale nos dois modos, console e background. Chaves diferentes (instalações diferentes) rodam juntas no mesmo computador, cada um na sua pasta, com o seu agent.config.json. |
Nada a fazer, é o comportamento esperado. Pra reiniciar, encerre a instância em execução primeiro: Sair na bandeja (modo background) ou fechando a janela (modo console). |
Em modo background o ícone aparece na bandeja, mas nenhuma mensagem confirma que subiu |
O arquivo está com "startup-notice": false, que é a opção de iniciar calado. Também acontece quando ninguém estava na frente da tela no minuto em que a caixa apareceu, já que ela se fecha sozinha depois disso. |
Troque para true e reinicie o runtime. Sem essa caixa, a confirmação de que subiu continua no ícone da bandeja e no arquivo de log. |
Na primeira vez que liga em modo background num computador, o ícone demora alguns segundos a mais pra aparecer, ou abre um console dessa única vez |
O componente da bandeja é extraído para o disco na primeira execução naquele computador, e um antivírus escaneando esse arquivo recém-criado pode atrasar o processo por um instante. | Nada a fazer, o runtime tenta de novo automaticamente antes de desistir e abrir um console. Da segunda execução em diante, no mesmo computador, isso não se repete. |
Manter a sessão ativa em servidor remoto (Windows)
Quando o runtime roda num servidor ou numa máquina virtual acessada por Área de Trabalho Remota (RDP), fechar a janela da conexão sem sair do Windows deixa a sessão desconectada. Ela continua viva e o runtime continua executando, mas o Windows deixa de ter uma tela ativa. Programas que dependem do desktop deixam de funcionar até alguém entrar de novo. O caso típico são os módulos de segurança de bancos, como o Warsaw do Banco do Brasil, que o navegador não reconhece enquanto a sessão está desconectada.
Com "keep-session-active": true, o runtime prepara o Windows para manter a sessão ativa, sem nenhum script a instalar ou manter:
- cria uma tarefa agendada do Windows, executada pela conta do sistema a cada minuto, chamada
browserMate-KeepSessionActive-<usuário>. Quando a sessão do usuário que roda o runtime fica desconectada, a tarefa a move para o console da máquina, o que a mantém ativa sem ninguém conectado; - zera os tempos limite do RDP (sessão desconectada, ociosa e conectada), para o Windows não encerrar a sessão depois de algumas horas. Os valores anteriores são guardados;
- põe Desligar o monitor e Suspender em "Nunca" no plano de energia ativo, na tomada e na bateria. Com o monitor desligado, o Windows para de desenhar a tela da sessão, e o programa do banco pode deixar de ser reconhecido mesmo com a sessão no console. Os valores anteriores são guardados.
A cada vez que sobe, o runtime confere a tarefa, os tempos limite e o plano de energia e corrige o que tiver mudado. Com a opção em false, ele remove a tarefa e devolve os tempos limite, o monitor e a suspensão aos valores anteriores.
O runtime também avisa no log, sem alterar nada, quando o Windows bloqueia a tela por inatividade (política InactivityTimeoutSecs) ou quando a proteção de tela está ligada para o usuário. Com a tela bloqueada ou coberta, a automação pode falhar.
A tarefa só move a sessão quando ela continua desconectada numa segunda verificação, 30 segundos depois, e não há ninguém conectando pelo RDP naquele momento. Ao reconectar, a sessão passa um instante pelo estado desconectado. Sem essas verificações, a tarefa poderia agir nesse instante e derrubar quem está entrando. Quando você volta pelo RDP, a sessão é reconectada normalmente.
{
"key_activation": "<chave de ativação do runtime>",
"user_token": "<seu token de usuário>",
"ui_socket_url": "https://app.browsermate.io",
"keep-session-active": true
}
- Só Windows. Em Mac e Linux o campo é ignorado.
- Abra o runtime como administrador uma vez depois de ligar a opção (e uma vez depois de desligar). Criar e remover a tarefa e alterar os tempos limite e o plano de energia exigem essa permissão. Depois disso, o runtime pode rodar sem ser administrador. Sem a permissão, o runtime avisa no log
Manter sessão ativa NÃO está instalado: abra o runtime como administrador uma vez para concluire segue funcionando, sem a proteção. - Só a sessão de quem roda o runtime é movida. Sessões de outros usuários nunca são tocadas.
- Use em servidor dedicado ao runtime. Deixe desligado em um computador de uso pessoal ou compartilhado com troca rápida de usuário.
- Funciona em qualquer idioma do Windows: o estado da sessão é lido pelo sistema, como número, e não pelo texto de comandos como
query session, que muda com o idioma. - O que a tarefa fez fica registrado em
logs\sessao-ativa.log, na pasta do runtime. - Depois de editar o arquivo, reinicie o runtime.
Disable-ScheduledTask -TaskName 'browserMate-KeepSessionActive-<usuário>'. Depois ponha "keep-session-active": false no arquivo e abra o runtime como administrador uma vez, para ele remover a tarefa.
| Sintoma | Causa | O que fazer |
|---|---|---|
| O programa do banco só é reconhecido enquanto você está conectado ao servidor | A sessão fica desconectada quando você fecha o RDP. | Ligue "keep-session-active": true e abra o runtime como administrador uma vez. |
A opção está ligada e o log do runtime diz Manter sessão ativa NÃO está instalado |
O runtime não foi aberto como administrador depois de ligar a opção. | Feche o runtime e abra-o com Executar como administrador uma vez. O log passa a dizer tarefa do Windows criada. |
O log do runtime avisa que uma política de grupo define um tempo limite |
Uma política do servidor fixa o tempo limite do RDP, e ela vale acima do que o runtime grava. O Windows pode encerrar a sessão depois desse tempo. | Peça a quem administra o servidor para zerar esse tempo limite na política de Serviços de Área de Trabalho Remota. |
O log do runtime avisa que o Windows bloqueia a tela ou que a proteção de tela está ligada |
Depois de um tempo sem uso, o Windows bloqueia ou cobre a tela da sessão, e o runtime não altera essas configurações. | Desligue a proteção de tela do usuário nas configurações do Windows. O bloqueio por inatividade é uma política do servidor: peça a quem o administra para desligá-la nessa máquina. |
| A tarefa está instalada e o programa do banco ainda falha com você fora | Veja em logs\sessao-ativa.log se a sessão foi movida para o console. Se foi, a causa da falha é outra. |
Envie ao suporte o horário da falha e esse arquivo de log. |
Preferência de IP (IPv4 ou IPv6)
O banco de dados em tempo real e as APIs da Google que a plataforma usa respondem tanto por IPv4 quanto por IPv6. O campo ip-preference diz qual dos dois o runtime tenta primeiro ao abrir uma conexão com eles:
| Valor | O que faz |
|---|---|
"ipv4" (padrão) | Tenta IPv4. Se o IPv4 não conectar, tenta IPv6 em seguida, sozinho. |
"ipv6" | Tenta IPv6. Se o IPv6 não conectar, tenta IPv4. |
"system" | Segue a ordem do sistema operacional, ou seja, a política de rede da máquina. |
Com qualquer valor, uma rede que só tem IPv4 ou só tem IPv6 continua funcionando, porque a outra família fica de reserva. O padrão é IPv4 porque, em algumas redes, o caminho por IPv6 perde pacotes de vez em quando sem chegar a cair: a conexão aberta por ele fica lenta sem dar erro, e o agente para entre uma etapa e outra até ela se recuperar (veja Quando o banco de dados demora a responder). Use "ipv6" ou "system" quando a política de rede da empresa pede IPv6.
- Campo ausente vale
"ipv4". Um valor que não seja um dos três também vale"ipv4", e o console avisa qual valor foi lido e qual foi usado. - Ao subir, o console mostra a preferência em uso na linha
IP preference:. - Depois de editar o arquivo, reinicie o runtime.
O ip-preference vale só para as conexões que o runtime abre com a plataforma (banco de dados em tempo real e Router). Com ele, o runtime não para entre etapas por causa de um caminho IPv6 ruim, sem nenhuma configuração na máquina. Duas coisas continuam com o sistema operacional, e nenhum programa as corrige de dentro:
- A resolução de nomes (DNS). Quem resolve os nomes é o Windows, para o Chrome e para o próprio runtime. Se a placa de rede recebeu servidores de DNS IPv6 que não respondem, cada endereço novo demora alguns segundos para resolver, e as páginas podem ficar paradas na primeira carga e só carregar depois de recarregar.
- O Chrome. Ele escolhe entre IPv4 e IPv6 pela regra do Windows, para os sites que têm os dois endereços.
No Windows, num PowerShell como administrador, há uma correção para cada caso. Nenhuma desliga o IPv6 nem a placa de rede, e as duas continuam valendo depois de reiniciar:
- DNS IPv6 que não responde: veja quais servidores a placa recebeu com
Get-DnsClientServerAddress -AddressFamily IPv6. Se a placa de rede principal tiver servidores IPv6 e as consultas demorarem, usenetsh interface ipv6 set dnsservers name="<nome da placa>" source=static address=none register=none. Para desfazer:netsh interface ipv6 set dnsservers name="<nome da placa>" source=dhcp. - Preferir IPv4 em toda a máquina, inclusive no Chrome:
netsh interface ipv6 set prefixpolicy prefix=::ffff:0:0/96 precedence=60 label=4. Para desfazer:netsh interface ipv6 set prefixpolicy prefix=::ffff:0:0/96 precedence=35 label=4.
Depois de qualquer uma das duas, reinicie o runtime, para as conexões abertas antes da mudança serem refeitas.
Uma máquina ativa por chave de ativação
Cada chave de ativação é de uma instalação e aceita um único runtime ativo por vez. Duas máquinas com a mesma chave disputariam os mesmos jobs da fila e dividiriam a mesma presença: cada job roda em quem o tirar da fila primeiro, mas, quando uma delas cai, a instalação inteira aparece desligada, mesmo com a outra no ar. Por isso, ao subir, o runtime faz a mesma pergunta que a tela Meus Runtimes faz para mostrar LIVE ou OFFLINE: esta chave está ativa agora? Se estiver, o runtime novo não sobe. Se não estiver, ele sobe.
Um runtime ativo renova um sinal de vida a cada 30 segundos, e a chave é considerada ativa enquanto esse sinal estiver recente (menos de 75 segundos). Na prática:
- Já existe um runtime ativo: o runtime novo mostra Registering... por alguns segundos, o tempo de confirmar que o outro continua renovando o sinal. Em seguida mostra Já existe um Runtime ativo com essa chave de ativação., com o nome do computador onde o outro está rodando, e encerra. O runtime que já estava rodando não é afetado.
- O runtime anterior foi encerrado normalmente: a chave fica livre na hora, e o runtime novo sobe sem espera.
- O runtime anterior parou de forma abrupta (queda de energia, servidor que caiu, travamento): o sinal deixa de ser renovado e a chave volta a ficar livre sozinha, em até 75 segundos. Um runtime que reinicia automaticamente depois da queda mostra Registering... até lá e então sobe, sem você fazer nada. Ele nunca é barrado por causa de um runtime que já não existe.
O Registering... também aparece se o servidor demorar mais de uns 5 segundos para responder à ativação, para que o runtime nunca fique parado sem dar sinal, principalmente no modo background, em que não há janela.
No modo background, o aviso de chave em uso aparece numa caixa de mensagem do Windows, e o ícone nem chega a subir na bandeja. Essa caixa não depende do startup-notice: mesmo com "startup-notice": false, ela sempre aparece, porque é um erro e não uma confirmação. Durante a espera, aparece também uma caixa Registering..., que se fecha sozinha assim que a pergunta termina.
background, essa mensagem aparece numa caixa do Windows que fica na tela até você fechá-la, e o ícone da bandeja some quando o runtime se encerra. Assim os dois nunca ficam recebendo jobs da mesma chave por muito tempo. Se você quiser que o runtime original continue, encerre o outro e abra este de novo.
Erros comuns de ativação e conexão
Se algo no agent.config.json ou na rede não estiver certo, o runtime encerra com uma mensagem no console (prefixo Boot error:) ou fica rodando sem nunca aparecer como online. Todas as mensagens Activation failed abaixo vêm da chamada que o runtime faz ao Router (veja Pré-requisitos técnicos) para validar a ativação:
| Mensagem / sintoma | Causa | O que fazer |
|---|---|---|
agent.config.json not found |
O arquivo não está na mesma pasta do executável (não foi criado, foi renomeado ou ficou em outra pasta após extrair o .zip). |
Confirme que o agent.config.json está ao lado do executável extraído. |
Activation failed (400): user_token e key_activation são obrigatórios |
key_activation ou user_token está vazio no JSON. |
Preencha os dois campos. Nenhum pode ficar em branco. |
Activation failed (401): ativação inválida |
A combinação não bate: a chave de ativação não pertence a nenhuma instalação deste user_token. Ela foi copiada de outra conta, a instalação foi removida, ou o token é de outro usuário. |
Copie a chave de novo em Meus Runtimes, no bloco do ambiente certo (ou baixe o agent.config.json dela), e confirme que o token é o Token de API do mesmo usuário dono desse runtime. |
Activation failed (403): Runtime suspenso pelo plano atual da empresa |
A chave é válida, mas esta instalação passa do número que o plano atual cobre (o card mostra Suspensa pelo plano), ou pertence a um membro que ficou sem acesso ativo. Ver Quantos runtimes o plano permite. | Faça upgrade do plano. Quando a empresa passa a um plano que comporta esta instalação (troca de plano ou confirmação de pagamento), ela volta a ativar sem precisar reconfigurar nada. Remover outra instalação não a reativa. |
Já existe um Runtime ativo com essa chave de ativação. |
Outro runtime, nesta ou em outra máquina, está ativo com a mesma chave (o sinal de vida dele está sendo renovado). A mensagem diz em qual computador ele está. No modo background, o aviso aparece numa caixa do Windows e o ícone não sobe na bandeja. |
Encerre o outro runtime (Sair na bandeja, ou feche a janela de console na máquina onde ele roda) e abra este de novo. Para usar duas máquinas ao mesmo tempo, cada uma precisa de uma instalação própria, com a sua chave. Veja Uma máquina ativa por chave de ativação. |
Outro Runtime assumiu esta chave de ativação. Este Runtime não receberá mais jobs e será encerrado. |
Este computador hibernou ou ficou sem conexão, e outro runtime assumiu a mesma chave nesse intervalo. Ao voltar, este runtime perguntou se a chave estava livre e viu o outro ativo. | Nada a fazer, é o comportamento esperado: o runtime termina as execuções em andamento e se encerra. Para voltar a usar este computador, encerre o outro runtime e abra este de novo. Veja Uma máquina ativa por chave de ativação. |
Registering... na tela por alguns segundos ao iniciar |
A plataforma ainda considera o runtime anterior ativo (o sinal de vida dele ainda é recente), e o novo espera para saber se ele continua vivo ou se parou de forma abrupta, por exemplo numa queda de energia. Também aparece quando o servidor está demorando para responder à ativação. | Aguarde, no máximo uns 75 segundos. Se o runtime anterior estiver vivo, você recebe a mensagem de que já existe um runtime ativo. Se ele tiver parado, o runtime assume a chave e segue normalmente. Se a demora for do servidor e não passar, confira a conexão com a internet da máquina. |
Activation failed (500): ... |
Erro inesperado no servidor durante a validação. | Tente novamente em alguns instantes; se persistir, acione o suporte browserMate. |
Transmission Service Error: ... |
A ativação passou, mas o runtime não conseguiu abrir a conexão ao vivo com a plataforma. ui_socket_url errado ou rede bloqueando a saída. |
Confira o ui_socket_url no JSON e a conectividade de saída (veja Pré-requisitos técnicos a seguir). |
| Roda sem erro no console, mas nunca aparece online em Meus Runtimes | A ativação e o socket da plataforma passaram, mas a conexão com o banco de dados em tempo real (Firebase) que sinaliza os jobs está bloqueada. | Libere a saída para o domínio Firebase da plataforma (veja Pré-requisitos técnicos). |
Pré-requisitos técnicos
O runtime não abre nenhuma porta de entrada. Ele não sobe nenhum servidor local esperando conexão de fora, então não é preciso redirecionar porta nenhuma no roteador. Mas ele faz várias conexões de saída, e em redes corporativas com firewall/proxy restritivo (que bloqueiam saída por padrão), o time de TI provavelmente vai precisar liberar explicitamente:
- Router da plataforma:
https://router.browsermate.io:9443precisa estar alcançável. É o controlador dos runtimes: sem esse domínio liberado, o runtime não funciona. Veja o detalhe de protocolo e porta de cada conexão em Arquitetura → Topologia de Comunicação. - A plataforma browserMate:
https://app.browsermate.io(ou o endereço configurado emui_socket_url), por onde o runtime recebe comandos ao vivo (acompanhar execução, debug, gravador). - O banco de dados em tempo real (Firebase) da plataforma: um domínio da Google (
*.firebaseio.com) usado para o runtime saber, ao vivo, quando um novo job foi disparado. É uma conexão separada das duas anteriores. - Conexão de saída para os sistemas-alvo: a máquina do runtime também precisa acessar as URLs que os agentes vão automatizar (VPN, rede interna, etc.).
- Repositórios públicos de pacotes: só se os seus agentes usarem Regra Customizada com bibliotecas externas. Para instalá-las na primeira execução, o runtime precisa alcançar o repositório do
npm(Node.js) e o dopip(Python). Num Projeto ZIP em Node.js dá para evitar essa liberação empacotando as dependências junto: veja Rodando sem acesso aos repositórios de pacotes. - Não precisa instalar Python ou Node.js: o runtime já carrega sua própria versão portátil de execução (Node.js 24 LTS e Python 3.14) para rodar scripts de Regra Customizada, isolada do que estiver (ou não) instalado na máquina.
- Google Chrome instalado: necessário quando o Navegador do agente está configurado como "Usando navegador local" ou "Usando conexão com navegador local". No modo "Usando app nativo" o runtime já traz um Chromium embutido. Nenhuma instalação extra é necessária nesse modo.
- Porta local de depuração do Chrome: só no modo "Usando conexão com navegador local". O runtime abre o Chrome com depuração remota numa porta que o próprio Chrome escolhe entre as livres, e se conecta a ele via
localhost. Não há porta fixa a reservar nem a liberar no firewall. - Conectores fazem suas próprias conexões de saída: a maioria dos Conectores (bancos de dados, APIs de IA, serviços de e-mail, integrações HTTP) abre conexão direta com o serviço configurado, em geral por HTTP/HTTPS ou no protocolo do próprio banco (ex.: porta padrão do MySQL, Postgres, MSSQL, Oracle, MongoDB). Se o conector aponta para um serviço atrás de firewall, libere a saída para o endereço e porta específicos desse serviço a partir da máquina do runtime.
Requisitos mínimos de máquina
O runtime herda os requisitos oficiais de sistema operacional do Node.js 24, a versão que o empacota (no runtime 2.4.0, a 24.22.1):
| Sistema | Requisito mínimo |
|---|---|
| Windows | Windows 10 ou Windows Server 2016, 64-bit (x64) |
| macOS | macOS 13.5 (Ventura) ou superior. O pacote distribuído é para Apple Silicon (arm64) |
| Linux | Kernel 4.18+ e glibc 2.28+, 64-bit (x64). Cobre distribuições como Ubuntu 20.04+, Debian 10+ e RHEL 8+ |
Não há requisito mínimo de RAM/CPU documentado oficialmente. Na prática, o consumo segue o do Google Chrome/Chromium (o maior componente do pacote), então qualquer máquina capaz de rodar um navegador Chrome moderno com folga roda o runtime sem problema. Reserve pelo menos 3 GB de disco livre por instalação (o .zip baixado já tem entre 380 MB e 660 MB dependendo do sistema operacional, e ocupa mais espaço depois de extraído).
Comportamento de execução
Cada instalação tem o próprio comportamento de execução. No card do runtime, o botão Configurar no bloco da instalação abre Configurar instalação, com o nome da instalação no título. A seção Comportamento de Execução controla como aquela instalação lida com múltiplos jobs. Nome, descrição e visibilidade para a empresa são do runtime e ficam em Editar.

| Opção | Comportamento |
|---|---|
| Enfileirar Jobs (em ordem, até o teto) | Liga a fila do runtime: as execuções entram em ordem de chegada e só começam quando há vaga. Quantas vagas existem é o campo Execuções ao mesmo tempo, logo abaixo. Recomendado para servidores que não devem processar mais de um job ao mesmo tempo, ou mais do que um certo número. |
| Execuções ao mesmo tempo | O teto da fila: quantas execuções podem estar de pé ao mesmo tempo nesta máquina. 1 é uma por vez, em ordem, o comportamento de sempre. Com 3, três rodam e a quarta espera a primeira vaga. Vale para tudo que chega na máquina: API, agendamento, webhook, Control Room, execução manual e agentes chamados por outro agente. Só existe com Enfileirar Jobs ligado; nos planos sem fila configurável é sempre 1. Uma chamada de webhook em modo Aguardar conta o tempo na fila dentro do limite de espera dela. Detalhes: Webhook. |
| Manter fluxo offline | Sem esta opção, disparar uma execução com a instalação offline é recusado na hora (o job nem chega a ser criado). Com ela marcada, o job entra na fila mesmo com a instalação offline e dispara automaticamente assim que ela voltar a ficar online. |
| Anular fila por exceção | Quando uma execução da fila falha, as execuções seguintes na fila são canceladas. Evita processar um lote inteiro sobre um estado inconsistente. Disponível quando Enfileirar Jobs está ativo. Vale só para as execuções de sempre: um agente chamado por outro agente não dispara o cancelamento nem é cancelado. As execuções canceladas saem da fila de vez. Uma chamada de webhook em modo Aguardar cancelada assim já recebeu o 202 com status queued e não recebe outra resposta. |
Essas opções são lidas quando o runtime sobe. Depois de mudar Enfileirar Jobs, o número de execuções ao mesmo tempo ou as outras duas, reinicie o runtime na máquina daquela instalação para a mudança valer.
A execução de um agente chamado pelas etapas Chamar Agente ou Paralelizar Agentes conta no teto e espera na fila como as outras, com duas regras próprias: ela entra na frente das execuções de sempre que estavam esperando, e o agente que a chamou, enquanto espera por ela, solta a vaga dele e a pede de volta quando o retorno chega, com prioridade sobre a fila. Sem isso, um teto de 1 seria um impasse: o chamador ocupando a única vaga e o chamado esperando atrás dele. Os três tetos que existem (o do runtime, o do agente e o da etapa) estão comparados em Enfileirar Agentes.
Limites e tetos
| Limite | Valor | O que acontece ao passar | Contorno |
|---|---|---|---|
| Execuções ao mesmo tempo (o teto da fila) | 1 ou mais, por instalação | A execução que não cabe espera na fila, em ordem de chegada; o agente que espera agente chamado solta a vaga dele. Uma chamada de webhook em modo Aguardar cujo limite de espera acaba antes da vaga recebe 202 com status queued, e a execução segue na fila. | Suba o número se a máquina aguenta; reparta entre máquinas com Balancear Carga dos Agentes; ou limite um agente específico pelo teto dele, em Configurações de Execução. |
| Sem Enfileirar Jobs | Sem teto | Cada execução começa ao chegar, cada uma com o seu navegador. A máquina é o limite. | Ligue Enfileirar Jobs com um número que a máquina aguente. |
| Fila configurável | A partir do plano com Paralelismo (Paralelizar Agentes e distribuir entre runtimes) e fila configurável | Nos outros planos o runtime roda sempre em fila, uma por vez. | Mudar de plano, ou repartir o trabalho em mais de um runtime até o teto de runtimes do plano. |
| Runtimes por empresa | O teto do plano, em que cada instalação conta como um runtime (ver Quantos runtimes o plano permite) | O Salvar é recusado com a conta na tela. | Reaproveite uma instalação entre ambientes, remova instalações que não usa mais, ou mude de plano. |
Quando o runtime sai do ar no meio
O runtime pode cair por qualquer motivo comum: a máquina foi desligada, a internet caiu, o processo foi encerrado. O que acontece com o trabalho depende de onde ele estava.
| Onde estava | O que acontece |
|---|---|
| Executando | A execução para onde estava. Não existe retomada do ponto: quando o runtime volta, ele não continua de onde parou. O registro fica no Control Room e no log com o que chegou a acontecer. |
| Na fila do runtime | Continua na fila e roda quando o runtime voltar, que é o que Manter fluxo offline promete. Sem essa opção, disparos novos são recusados na hora, em vez de esperarem. |
| Executando um agente que outro agente chamou, com o chamador esperando | O agente que espera não fica parado para sempre. A plataforma percebe que o runtime saiu do ar e devolve a falha a ele, que segue pela Gestão de Erros. Os prazos e cada situação estão em Quando o runtime do agente chamado sai do ar. |
Ao subir de novo, ele se declara ligado, pega o que estava na fila e volta a receber execuções novas. Não é preciso reativar nem mexer no cadastro. O que ficou pela metade não recomeça sozinho: quem decide repetir é você, pelo Control Room, pelo agendamento ou por quem dispara o agente.
Quando o banco de dados demora a responder
Antes de cada etapa, o runtime confere no banco de dados em tempo real se alguém pediu para parar ou pausar a execução. Normalmente a resposta vem em milissegundos. Quando ela demora:
- Depois de 5 segundos sem resposta, o log mostra
Sem resposta do banco de dados há 5 s; aguardando a conexão voltar antes da etapa "<etapa>".A etapa não começa enquanto isso, porque sem a resposta o runtime não teria como atender um pedido de parar. - Quando a resposta chega, o log mostra
O banco de dados respondeu depois de N se a execução segue. Um pedido de parar feito durante a espera é atendido nesse momento. - Sem resposta por 5 minutos, a execução é encerrada antes daquela etapa, com o motivo
Execução encerrada: sem resposta do banco de dados por mais de 5 minutos antes da etapa "<etapa>".no registro da execução. - Quando as esperas de uma mesma execução somam 2 minutos, o log avisa uma vez que ela está mais lenta que o normal por esperar o banco de dados, e a execução continua. Se o agente tem Envio de Logs com Sempre que houver uma falha, o mesmo aviso vai por e-mail para Quem o agente deve informar?. Veja Configurações do Agente.
- No fim, o log mostra quanto a execução esperou ao todo:
Esperas pelo banco de dados nesta execução: N s em M parada(s) entre etapas.
Esse prazo só conta entre etapas. Dentro de uma etapa valem os prazos de sempre: espera de página, de elemento e de script. Uma pausa tem o seu prazo de 5 minutos, e ele vale mesmo com o banco de dados sem responder.
Esperas repetidas costumam vir da rede da máquina do runtime. Veja Preferência de IP.
Vínculo com o agente
Cada agente tem um runtime e um ambiente cadastrados, e são eles que valem por padrão: a execução roda na instalação que o runtime tem no ambiente do agente. O runtime fica no campo RUNTIME, na segunda fileira do cabeçalho do Agent Builder, e o ambiente nos botões Dev, Homolog e Prod, ao lado dele. Com o agente publicado, trocar um ou outro vale na hora, sem versão nova, porque é uma decisão de infraestrutura e não de modelagem. Os dois ficam travados enquanto outra pessoa está desenvolvendo o processo, já que a publicação dela sobrescreveria a escolha.
Em um agente que foi compartilhado com você, o runtime não é seu para trocar: ele pertence ao dono do agente, e o campo mostra apenas Runtime do dono do agente, além da Sandbox quando há uma versão em desenvolvimento aberta. Os botões Dev, Homolog e Prod mostram o ambiente que o dono escolheu e ficam desabilitados. Os runtimes da sua conta não aparecem ali de propósito. O dono não os alcança, e apontar um deles faria toda execução do agente ser recusada, inclusive as dele. Se o agente precisa rodar na sua máquina, marque o runtime como visível para toda a empresa e peça ao dono para selecioná-lo. Quem troca o runtime e o ambiente de um agente é sempre o dono dele.
Esse cadastro vale na execução manual, no modo de teste do editor e no disparo por webhook. Três situações permitem apontar outro runtime, ou outro ambiente, sem mexer no cadastro do agente. Em todas, o runtime precisa ter instalação no ambiente da execução:
| Onde | Como escolher |
|---|---|
| Agendamento | Campo Runtime de Execução no cadastro do agendamento. A primeira opção, runtime e ambiente do agente, segue o cadastro do agente. Em cada runtime, mesmo ambiente do agente fixa só o runtime, e o ambiente acompanha o do agente; escolher um ambiente fixa os dois, e a execução usa os valores do cofre desse ambiente. Cada opção mostra o status LIVE ou OFFLINE da instalação no momento da escolha, e o que decide de fato é o estado dela na hora do disparo. Ao gravar e ao religar, a tela confere se o par que vai valer (o fixado, senão o runtime e o ambiente do agente publicado) tem instalação. Detalhes em Agendamento. |
| API | Campos environmentID (o ID do runtime) e stage (dev, staging ou prod) no corpo da chamada, tanto no disparo de execução quanto na criação de agendamento. Os dois são opcionais: o que for omitido vem do cadastro do agente. Os IDs vêm de GET /v1/environments ou do card do runtime (veja ID do runtime). |
| Distribuir entre runtimes | Nas etapas Chamar Agente e Paralelizar Agentes, você marca runtimes. No disparo, cada runtime marcado entra com a instalação do ambiente do agente chamado, e fica fora da distribuição o runtime sem instalação nesse ambiente, com a instalação suspensa pelo plano, ou que foi removido ou saiu do alcance do dono do agente chamado. Com Runtime do próprio agente, o agente chamado roda no runtime e no ambiente dele. |
ID do runtime (para a API)
Numa chamada de API, o campo environmentID do disparo e do agendamento indica qual runtime deve executar. O ID de cada runtime aparece no alto do card dele em Meus Runtimes, com botão de cópia, e também vem da rota GET /v1/environments, que devolve os runtimes que a conta de quem chama alcança, com o ID e, para cada ambiente, se há instalação e qual o status dela (veja Rotas da API). O disparo e o agendamento valem pelo alcance do dono do processo: num agente compartilhado, o runtime enviado precisa estar ao alcance do dono. Qual instalação roda depende do ambiente: o do agente, ou o de stage. O ID de uma instalação também é aceito e vale pelo runtime a que ela pertence.
A chave de ativação do card é outra coisa: liga a máquina à instalação, no agent.config.json. É segredo, nunca use em integrações.
Boas práticas
- Separe a instalação de Produção quando o agente for para valer. Uma instalação para os três ambientes serve para começar. Quando o agente for para Produção, troque a posição de Produção para Nova instalação e instale num servidor, deixando Desenvolvimento e Homologação no notebook. Assim uma execução de Produção nunca cai na sua máquina pessoal, que desliga, dorme e troca de rede.
- Use Sem instalação no que o runtime não deve atender. Um runtime que só serve para testes fica sem instalação em Produção, e nenhum agente roda nele em Produção: escolhê-lo num agente em Produção leva o agente junto para um ambiente que o runtime tem (Homologação, depois Desenvolvimento), com aviso.
- Use Enfileirar Jobs em servidores compartilhados. Evita erros de concorrência quando vários processos disparam ao mesmo tempo.
- Nomeie pelo que o runtime faz. "Nota Fiscal Automation" comunica mais do que "Servidor 2". O ambiente já aparece nos botões Dev, Homolog e Prod do agente, não precisa estar no nome.
- Compartilhe com parcimônia. Só marque "visível para toda a empresa" em servidores dimensionados para receber a carga de outros times.
