Skip to main content
As automações permitem conectar eventos externos — mensagens do Slack, webhooks do GitHub, atualizações de tickets do Linear, agendamentos e webhooks personalizados — a sessões do Devin que são iniciadas automaticamente. Em vez de marcar o Devin manualmente sempre que um bug é relatado ou uma verificação de CI falha, você define o gatilho uma vez, e o Devin cuida de cada evento conforme ele chega. Você também pode gerenciar automações de forma declarativa com o provider do Terraform. Para um tutorial em vídeo com quatro exemplos, veja o tutorial de Automações do Devin.

Conceitos principais

Uma automação tem um gatilho e Ações, com condições opcionais e uma verificação Preflight:

Tipos de Ação

Fontes de acionamento

Fontes que não são de agendamento aparecem no seletor de acionamento assim que a integração correspondente é conectada em Configurações > Conexões. Uma automação pode ter vários acionadores — eles funcionam como um OR, então a automação é acionada quando qualquer um deles corresponde. Por exemplo, você pode ter uma automação que é acionada tanto por uma falha de CI no GitHub quanto por uma reação no Slack.

Criar uma automação

Na página de automações

  1. Acesse automação na barra lateral
  2. Clique em Criar automação e escolha Create para abrir um editor em branco (se você ainda não tiver nenhuma automação, clique em Create manually na página inicial). O mesmo menu também oferece Template (abre a galeria de templates) e Generate with Devin (inicia uma sessão que cria a automação junto com você)
  3. Configure o gatilho, as condições e a GitHub Action
  4. Clique em Criar automação

A partir de um template

  1. Navegue até automação na barra lateral
  2. Clique em Criar automação > Template (se você ainda não tiver nenhuma automação, clique em Criar a partir de template na página inicial), ou acesse diretamente /automations/templates
  3. Explore a galeria de templates — cada template é uma automação pré-configurada para um fluxo de trabalho comum
  4. Clique em um template para preencher o editor com seu gatilho, GitHub Action e limites sugeridos
  5. Personalize a configuração (por exemplo, selecione seu canal do Slack ou repositório) e clique em Criar automação

Como usar linguagem natural

Na página de automações, clique em Criar automação > Gerar com Devin (se você ainda não tiver nenhuma automação, clique no cartão Gerar com Devin na página inicial). O Devin abre uma nova sessão para ajudar você a criar a automação. Descreva o que deseja — por exemplo, “Quando uma verificação de CI falhar em my-org/my-repo, faça o Devin corrigir isso e enviar para a mesma branch.” Devin gerará a configuração da automação para você, que poderá revisar e criar.

Configurando gatilhos

Gatilhos do Slack

Os gatilhos do Slack são disparados quando uma mensagem é publicada ou uma reação é adicionada em um canal para o qual Devin foi convidado.
  • Mensagem do Slack: Dispara com novas mensagens. Uma condição de canal é adicionada por padrão; você pode removê-la para corresponder a mensagens de vários canais, mas, nesse caso, cada grupo de condições precisa de pelo menos um outro filtro (por exemplo, o texto da mensagem ou o tipo de remetente — Incluir respostas em thread sozinho não é suficiente).
  • Grupo de usuários mencionado: Dispara quando um grupo de usuários do Slack (por exemplo, @oncall) é mencionado. Selecione o grupo ou informe o ID dele no Slack (que começa com S) e, opcionalmente, restrinja o gatilho a canais específicos.
  • Reação do Slack: Dispara quando uma reação de emoji específica é adicionada a uma mensagem (e.g. 🚨 para incidentes). Você pode filtrar pelo nome da reação e pelo canal.
Para gatilhos com escopo de canal, Devin precisa ser convidado para o canal do Slack. Você também deve ter sua conta pessoal do Slack conectada em Configurações > Conexões > Slack.

Gatilhos do GitHub

Os gatilhos do GitHub são acionados por eventos do repositório. Você deve selecionar um repositório específico para cada gatilho.
  • Problema: Dispara em eventos de problema (aberto, fechado, reaberto, editado, com rótulo).
  • Comentário em problema: Dispara quando um comentário é publicado em um problema do GitHub. É comumente usado com a condição starts_with "/devin", para que os usuários possam digitar /devin em qualquer problema e acionar o Devin.
  • Pull request: Dispara em eventos de PR (abertura, sincronização etc.).
  • Revisão de pull request: Dispara quando uma revisão é enviada em um PR.
  • Comentário de revisão de pull request: Dispara em comentários individuais da revisão.
  • execução de verificação: Dispara quando uma verificação de CI é concluída. Filtre por conclusion = failure para corrigir automaticamente builds com falha.
  • Push: Dispara com pushes para uma branch.
Por padrão, as automações do GitHub são acionadas apenas em repositórios privados. Um administrador pode habilitar uma conexão individual do GitHub para repositórios públicos: em Configurações → Conexões → GitHub, abra o menu da conexão e defina Escopo da automação como Todos os repositórios instalados. Qualquer pessoa na internet pode comentar ou abrir um PR em um repositório público, portanto, os gatilhos de repositórios públicos apresentam um risco maior de injeção de prompt — habilite isso deliberadamente e mantenha as condições dos gatilhos restritas.

Gatilhos do GitLab

Os gatilhos do GitLab são acionados por eventos de projeto na instância do GitLab conectada:
  • Merge request: acionado em ações de MR (aberto, fechado, com merge, reaberto, aprovado, atualizado).
  • Comentário em MR: acionado quando um comentário (nota) é publicado em um merge request, incluindo threads de revisão de diff.
  • Problema: acionado em ações de problemas (aberto, fechado, reaberto, atualizado).
  • Comentário em problema: acionado quando um comentário é publicado em um problema.
  • Push: acionado em pushes para uma branch.
  • Pipeline: acionado quando um pipeline atinge um determinado status — filtre por status (por exemplo, failed) para corrigir automaticamente pipelines com falha.

Gatilhos do Linear

Os gatilhos do Linear são acionados por eventos de problemas no workspace conectado do Linear. Você deve selecionar uma equipe para cada gatilho.
  • Problema criado: É acionado quando um novo problema é criado na equipe selecionada.
  • Rótulo adicionada: É acionado quando uma rótulo é aplicada a um problema (por exemplo, bug, devin).
  • Status alterado: É acionado quando o status de um problema é alterado (por exemplo, movido para “Em andamento”).
  • Prioridade alterada: É acionado quando a prioridade de um problema é alterada.
  • Atribuído: É acionado quando um problema é atribuído a alguém.
  • Problema movido: É acionado quando um problema é movido para outra equipe — o filtro de equipe do gatilho corresponde à equipe de destino.

Gatilhos do Jira

Os gatilhos do Jira são acionados por eventos de problemas no site do Jira conectado. Você pode filtrar por projeto, rótulos, status, responsável e épico:
  • Issue created: acionado quando um novo problema é criado.
  • Issue updated: acionado quando os campos de um problema são alterados.
  • Label added: acionado quando um rótulo é aplicado a um problema.
  • Status changed: acionado quando o status de um problema muda.
  • Assigned: acionado quando um problema é atribuído a alguém.
  • Comment created or edited: acionado quando um comentário é adicionado ou editado em um problema.

Gatilhos por agendamento

Os gatilhos por agendamento disparam com base em um cronograma — de forma recorrente ou em uma única execução. No menu suspenso de gatilhos, expanda Agendamento e escolha A cada hora, Todos os dias, Toda semana, Executar uma vez ou Agendamento personalizado.
  • Recorrente: Defina a frequência (por hora, diária, semanal) e o horário. Internamente, os agendamentos usam o formato RRULE do iCalendar. Escolha Agendamento personalizado para criar uma recorrência personalizada (repetir a cada N minutos/horas/dias/semanas/meses) ou insira diretamente uma string RRULE em formato bruto (e.g. FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0) para intervalos mais complexos.
  • Executar uma vez: Dispara uma única vez em uma data e horário futuros específicos e depois é desativado automaticamente. Útil para uma tarefa pontual com atraso programado — e.g. “acorde Devin em 12 horas para executar uma tarefa”. Escolha a data e o horário (o padrão é uma hora a partir de agora); eles devem estar no futuro.
Cada agendamento tem seu próprio fuso horário, que por padrão é o do seu navegador e pode ser alterado no editor de agendamento. O agendamento é executado nesse horário local, inclusive quando há mudanças de horário de verão.

Gatilhos de webhook

Os gatilhos de webhook permitem conectar qualquer sistema externo ao Devin por meio de um endpoint HTTPS exclusivo.
  1. Crie uma automação com um gatilho Webhook
  2. Copie a URL e o segredo do webhook exibidos na configuração do gatilho
  3. Configure seu sistema externo (PagerDuty, Datadog, Sentry ou qualquer ferramenta personalizada) para enviar requisições HTTP POST para esta URL
  4. Opcionalmente, adicione um filtro de payload — um padrão regex ao qual o corpo da requisição deve corresponder para que a automação seja acionada
Passe o segredo do webhook de qualquer uma destas formas:
  • cabeçalho X-Webhook-Secret: <secret>
  • cabeçalho Authorization: Bearer <secret>
  • parâmetro de consulta ?secret=<secret>
Prefira um cabeçalho — strings de consulta geralmente são registradas nos logs de acesso de proxies, CDNs e servidores. O payload do webhook é incluído no prompt da sessão do Devin como contexto. Payloads com mais de 200 KB são truncados automaticamente.

Segredo do webhook

Cada gatilho de webhook tem um segredo que autentica as requisições recebidas — chamadas sem o segredo correto são rejeitadas. O segredo é gerado automaticamente e exibido quando você adiciona o gatilho de webhook no editor de automações.
Copie o segredo quando ele for exibido — ele não será mostrado novamente. Um segredo perdido não pode ser recuperado; gere um novo.
Cada requisição deve incluir o segredo no cabeçalho HTTP X-Webhook-Secret. Por exemplo, para testar com curl:
Se você perder o segredo ou precisar alterná-lo, abra o gatilho de webhook no editor de automação e gere um novo. O segredo antigo deixa de funcionar imediatamente, portanto atualize o sistema externo com o novo valor.

Verificações Preflight

Uma verificação Preflight é uma etapa opcional executada entre o gatilho acionado e as Ações da automação. Uma automação pode ter um destes dois tipos: Para adicionar uma, clique em Add a step before the agent runs abaixo da seção de gatilho e escolha filtro de LLM ou Run a script.
Os scripts Preflight estão sendo liberados gradualmente. Se a opção Run a script não aparecer, os scripts ainda não foram ativados para sua organização.
O botão Run now da automação ignora a verificação Preflight e executa diretamente as Ações configuradas.

Filtro de LLM

Selecione filtro de LLM e descreva quais eventos devem ser incluídos ou excluídos pelo filtro. Por exemplo: “PRs sobre o serviço de autenticação” ou “mensagens do Slack sobre o jantar”. Um modelo de decisão leve analisa o evento inteiro. O agente só será executado para os eventos correspondentes.

Configurar e testar um script Preflight

O script é executado em uma máquina virtual (VM) separada e de curta duração, e não dentro da sessão do Devin que ele pode iniciar. Ele pode ler o evento, manter uma pequena quantidade de estado entre execuções e decidir qual trabalho chega às Ações configuradas.
  1. Crie uma automação ou edite uma existente e configure os gatilhos e as condições dela.
  2. Clique em Add a step before the agent runs, abaixo da seção de gatilho, e selecione Run a script no cartão Before the agent runs.
  3. Clique em Edit script, escolha Python, Node (JavaScript) ou Bash no seletor de runtime e edite o script inicial.
  4. Se necessário, use Select secrets no editor de script para anexar segredos da organização. Somente os segredos selecionados são injetados como variáveis de ambiente. Para salvar ou testar um script com segredos anexados, é necessário ter permissão para gerenciar os segredos da organização.
  5. Defina Timeout (seconds) no cartão: o padrão é 60 segundos, e o intervalo permitido vai de 1 a 300 segundos. Por padrão, o script usa o Minimal environment; se houver snapshots de máquina disponíveis, o seletor Environment também permite escolher um snapshot da organização com as suas dependências.
  6. No editor de script, escolha um evento em Test against e clique em Run. Você pode testar o script não salvo com uma amostra de um gatilho configurado ou com um evento recente de uma automação existente. Revise o resultado, os logs e, no caso de itens emitidos, a prévia de quantos seriam executados, quantos seriam duplicados e quantos seriam adiados.
  7. Clique em Save script para aplicar as alterações do editor e, em seguida, clique em Criar automação ou salve a automação para persistir a configuração.
As execuções de teste rodam o seu script, mas não executam as Ações da automação, não persistem alterações no estado salvo dela nem marcam os itens emitidos como tratados. Já as requisições externas e os efeitos colaterais produzidos pelo script são reais. Por exemplo, testar um script que grava dados em um serviço externo fará essa gravação de fato.

Entrada e saída do script

O script recebe as variáveis de ambiente abaixo. Cada uma contém um caminho de arquivo, e não os dados JSON em si: Grave em OUTPUT_FILE exatamente um entre run e items, opcionalmente com uma string reason: Por exemplo, este script Python só deixa passar uma mensagem do Slack se o texto contiver urgent:
Selecione um exemplo de mensagem do Slack ou uma mensagem recente do Slack em Test against para inspecionar o resultado. Não basta imprimir uma decisão na saída padrão: o script precisa gravar um JSON válido em OUTPUT_FILE e sair com código 0.

Itens, estado e limites do script

  • Prevenção de duplicatas: O id de um item identifica uma unidade de trabalho dentro desta automação, não apenas uma entidade. {"id": "INC-1"} é processado uma única vez; adicione uma version, como o timestamp de atualização na origem, para processar uma nova ocorrência desse incidente. Sem um id, o Preflight identifica o item por um hash do seu conteúdo, então alterar o conteúdo pode gerar uma nova execução.
  • Limite de itens por execução: Por padrão, no máximo 10 novos itens são despachados por execução; o limite máximo do sistema é 50. Itens que excedem o limite não são processados nem agendados automaticamente. A próxima execução do seu script precisa emiti-los novamente. Não avance um cursor além do trabalho adiado só porque ele apareceu no seu output.
  • Resultados anteriores: Use LAST_RUN_FILE para distinguir trabalhos em execução, concluídos com sucesso, com falha ou pulados. Quando a execução de um item falha, ele é liberado, e uma execução posterior do script pode emiti-lo novamente.
  • Estado persistente: As execuções reais de script de uma automação ocorrem uma de cada vez. Scripts com falha não avançam o estado salvo nem marcam itens como processados. Clear state limpa tanto o estado JSON salvo quanto o histórico de itens já processados; após essa redefinição, itens processados anteriormente podem ser executados novamente.
  • Limites de tamanho: O código-fonte e o output do script são limitados a 256 KiB cada; o estado salvo, a 64 KiB; e os logs capturados, a 1 MiB.
  • Falhas: Um código de saída diferente de zero, timeout, output ou estado inválido, ou uma falha de infraestrutura interrompe o evento antes de suas Ações. Não há nova tentativa automática do script para esse evento; um acionamento posterior pode executá-lo novamente.
  • Acesso à rede: A VM do script segue as restrições de rede da automação e o perfil de segurança aplicável. Por exemplo, para consultar um serviço externo de alertas, o host dele precisa estar permitido. Anexar um segredo não concede acesso à rede.

Configurando GitHub Actions

Iniciar sessão

A ação mais comum. Quando o gatilho dispara, Devin inicia uma nova sessão com seu prompt. O payload do evento (por exemplo, o texto da mensagem no Slack, o corpo do webhook do GitHub ou os detalhes do ticket no Linear) é automaticamente anexado ao prompt para que Devin tenha todo o contexto. Opções:
  • Prompt: As instruções que Devin seguirá. Escreva como se fosse um prompt comum do Devin.
  • Playbook (opcional): Use @playbook-name no seu prompt para incluir um playbook com instruções adicionais.
  • Tags (opcional): Adicione tags às sessões criadas por esta automação para facilitar a filtragem.

Enviar mensagem para uma sessão

Envia uma mensagem para uma sessão existente de longa duração do Devin. Útil quando você quer que uma única sessão persistente processe eventos ao longo do tempo, em vez de criar uma nova sessão para cada evento. Ao configurar esta GitHub Action, você deve selecionar a sessão de destino.

Triagem do Devin (monitor)

Cria uma sessão persistente do Devin que monitora um canal no Slack. Consulte o guia de triagem automática para obter todos os detalhes sobre esse tipo de GitHub Action.

Notificação por email

Envia uma notificação por email quando a automação é executada. Escolha quando receber notificações:
  • Sempre — a cada execução
  • Em caso de falha — somente quando a sessão falhar ou ocorrer um erro
  • Em caso de sucesso — somente quando a sessão for concluída com sucesso

Limites e mecanismos de proteção

As automações incluem controles integrados para evitar uso excessivo:

Limite de ACU

Defina um orçamento máximo de ACU (Agent Compute Unit) por sessão iniciada por esta automação. Se Devin atingir esse limite, a sessão será encerrada. Isso evita que uma única invocação consuma recursos em excesso.

Limite de invocação

Defina um limite para quantas vezes a automação pode ser acionada em um intervalo de tempo. Por exemplo, “no máximo 10 invocações por hora” evita que um canal muito movimentado no Slack ou uma enxurrada de falhas de CI inicie dezenas de sessões. Ambos os campos são opcionais — se forem apagados, a automação será executada sem esse limite. Novas automações começam sem limite de ACU e com um limite de taxa de requisições de 50 execuções por hora (150 por hora para automações de triagem que monitoram canais do Slack); os templates aplicam os mesmos padrões.

Enfileiramento

Por padrão, cada evento correspondente inicia uma execução imediatamente. Ative Enable queueing no editor de automação para limitar quantas execuções ocorrem ao mesmo tempo:
  • Concurrent runs: o número máximo de execuções simultâneas desta automação. Os eventos excedentes aguardam na fila. Uma execução deixa de contar para o limite assim que sua sessão termina e passa a aguardar novas instruções.
  • Queue depth: o número máximo de eventos que podem aguardar na fila. Os eventos que chegam quando a fila está cheia são descartados.
As execuções enfileiradas aparecem com o status Queued na atividade da automação.

Política de rede

Você pode ativar uma política de rede para restringir quais hosts externos as sessões da automação podem acessar. Isso é especialmente importante para automações que processam entradas de usuário não confiáveis (por exemplo, mensagens do Slack e payloads de webhook). Você pode adicionar domínios específicos à lista de permissões caso o Devin precise acessar serviços externos. A política de rede de uma automação apenas restringe o acesso: ela é aplicada em conjunto com o perfil de segurança que rege as sessões da automação.

Integrações MCP

Conectar integrações MCP é altamente recomendável — elas melhoram drasticamente a qualidade das automações ao dar ao Devin acesso a dados de execução, como logs, métricas e detalhes de erros.
As automações funcionam com integrações MCP para dar ao Devin acesso a ferramentas externas. Ao criar uma automação, a seção Conexões mostra quais servidores MCP são recomendados e o status de conexão deles. Por exemplo, o template “Corrigir Erros do Sentry Diariamente” recomenda o Sentry MCP para que o Devin possa consultar o Sentry em busca de erros não resolvidos. O template “Investigar Alertas Acionados” recomenda o Datadog MCP para coletar métricas e traces. Ative os servidores MCP na aba Settings → Conexões → MCPs (ou instale seus plugins pelo marketplace de plugins) antes de criar automações que precisem deles.

Acesso às ferramentas do Slack

Por padrão, as sessões de automação podem ler e escrever nos canais do Slack envolvidos no gatilho. Você pode conceder acesso a canais adicionais do Slack na seção Ferramentas do Slack do editor de automação. Isso é útil quando o Devin precisa ler vários canais além daquele que acionou a automação.

Atividade e monitoramento

Cada automação registra seu histórico de invocações. Na página de detalhes da automação, a aba Atividade mostra:
  • Invocações recentes com data e hora
  • Se cada invocação foi bem-sucedida ou ignorada
  • Links para as sessões do Devin que foram criadas
  • Mensagens de erro para invocações que falharam
A lista de automações mostra um sparkline para cada automação, oferecendo uma visão geral visual da atividade nos últimos 30 dias.

Ativar e desativar

Ative ou desative uma automação a qualquer momento pela lista de automações ou pela página de detalhes. Automações desativadas deixam de processar eventos, mas mantêm a configuração. Ao reativar uma automação, o processamento de eventos é retomado imediatamente.

Templates

O Devin inclui uma biblioteca de templates de automação prontos para fluxos de trabalho comuns: Para navegar por todos os templates, abra a página automação no app do Devin e clique em Criar automação > Template (ou vá diretamente para /automations/templates).