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
- Acesse automação na barra lateral
- 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ê)
- Configure o gatilho, as condições e a GitHub Action
- Clique em Criar automação
A partir de um template
- Navegue até automação na barra lateral
- 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 - Explore a galeria de templates — cada template é uma automação pré-configurada para um fluxo de trabalho comum
- Clique em um template para preencher o editor com seu gatilho, GitHub Action e limites sugeridos
- 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 comS) 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/devinem 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 = failurepara 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.
Gatilhos de webhook
Os gatilhos de webhook permitem conectar qualquer sistema externo ao Devin por meio de um endpoint HTTPS exclusivo.- Crie uma automação com um gatilho Webhook
- Copie a URL e o segredo do webhook exibidos na configuração do gatilho
- Configure seu sistema externo (PagerDuty, Datadog, Sentry ou qualquer ferramenta personalizada) para enviar requisições HTTP POST para esta URL
- 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
- cabeçalho
X-Webhook-Secret: <secret> - cabeçalho
Authorization: Bearer <secret> - parâmetro de consulta
?secret=<secret>
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.
X-Webhook-Secret. Por exemplo, para testar com curl:
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.
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.- Crie uma automação ou edite uma existente e configure os gatilhos e as condições dela.
- 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.
- Clique em Edit script, escolha Python, Node (JavaScript) ou Bash no seletor de runtime e edite o script inicial.
- 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.
- 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.
- 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.
- 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.
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:
OUTPUT_FILE e sair com código 0.
Itens, estado e limites do script
- Prevenção de duplicatas: O
idde um item identifica uma unidade de trabalho dentro desta automação, não apenas uma entidade.{"id": "INC-1"}é processado uma única vez; adicione umaversion, como o timestamp de atualização na origem, para processar uma nova ocorrência desse incidente. Sem umid, 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_FILEpara 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-nameno 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.
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
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
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).
