Documentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
Esta é a referência completa dos campos de blueprints. Para uma introdução aos blueprints e a como eles se encaixam no ambiente do Devin, veja Configuração declarativa do
ambiente.
Visão geral
| Seção | Objetivo | Executado? |
|---|---|---|
initialize | Instalar ferramentas do sistema, runtimes de linguagem e CLIs globais | Sim, em cada build |
maintenance | Instalar e atualizar as dependências do projeto | Sim, durante builds. Apresentado ao agente no início da sessão (não executado automaticamente). |
knowledge | Informar ao Devin como executar lint, testes e build, além de outras informações específicas do projeto | Não, usado apenas como referência |
initialize é executado apenas durante builds. Os resultados são salvos no snapshot. maintenance é executado durante builds (após initialize). No início de cada sessão, os comandos de maintenance não são executados automaticamente — em vez disso, são apresentados ao agente como contexto para que ele saiba quais comandos de dependência executar, se necessário (por exemplo, após fazer pull do código mais recente). Os comandos ainda devem ser rápidos e incrementais. Os builds são executados automaticamente quando seu blueprint muda e periodicamente (a cada ~24 horas).
initialize
initialize para instalar ferramentas e runtimes que não dependem do estado específico do seu código: runtimes de linguagens, pacotes do sistema e CLIs globais.
Forma simples
Formato estruturado
run.
Quando usar initialize vs maintenance
Coloque em initialize | Coloque em maintenance |
|---|---|
| Instalação do runtime de linguagem | npm install / pip install |
Pacotes do sistema (apt-get) | bundle install |
| Ferramentas de CLI globais | go mod download |
| Configuração única | Atualizações do cache de dependências |
GitHub Actions (setup-python, etc.) | Scripts de configuração específicos do repositório |
initialize; comandos de dependência vinculados aos arquivos de lock do seu código ficam em maintenance.
maintenance
maintenance para instalar dependências e executar outros comandos que devem ser executados depois que seu código for clonado. Esses comandos são executados durante os builds e são apresentados ao agente no início da sessão para que ele possa executá-los novamente se as dependências tiverem mudado. É aqui que entram npm install, pip install, uv sync e comandos semelhantes.
Para blueprints no nível do repositório, os comandos
maintenance são executados a partir do diretório raiz do repositório. Para blueprints no nível da organização, eles são executados a partir do diretório inicial (~).knowledge
knowledge não é executada. Ela fornece informações de referência que Devin usa ao trabalhar no seu projeto. É aqui que você informa ao Devin os comandos corretos para linting, testing, build e quaisquer outros workflows específicos do projeto.
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Identificador deste item de conhecimento (por exemplo, lint, test, build) |
contents | string | Texto livre com comandos, instruções ou observações |
name é um rótulo. Por convenção, lint, test e build são os nomes padrão. O Devin usa esses nomes ao verificar o próprio trabalho. Você pode adicionar outros itens de conhecimento com nomes personalizados:
Tipos de etapa
initialize ou maintenance usa um de dois tipos: comandos de shell (run) ou GitHub Actions (uses).
Comandos de shell (run)
| Campo | Tipo | Descrição |
|---|---|---|
name | string (optional) | Rótulo legível para humanos da etapa |
run | string | Comando(s) de shell a ser executado(s) |
env | map (optional) | Variáveis de ambiente adicionais para esta etapa |
- Os comandos são executados em bash. Se qualquer comando em um script com várias linhas falhar, a etapa inteira é interrompida imediatamente.
- Blueprints no nível da organização são executados no diretório inicial (
~). - Blueprints no nível do repositório são executados na raiz do repositório clonado.
- Cada etapa tem um tempo limite de 1 hora.
- Os segredos ficam automaticamente disponíveis como variáveis de ambiente.
GitHub Actions (uses)
| Campo | Tipo | Descrição |
|---|---|---|
name | string (optional) | Nome legível da etapa |
uses | string | Referência da ação do GitHub |
with | map (optional) | Parâmetros de entrada da ação |
env | map (optional) | Variáveis de ambiente extras para esta etapa |
github.com/ e o sufixo @<ref> são obrigatórios. O ref normalmente é uma tag de versão, como v5.
Ações mais usadas:
| Action | Purpose | Example with |
|---|---|---|
github.com/actions/setup-python@v5 | Instalar Python | python-version: "3.12" |
github.com/actions/setup-node@v4 | Instalar Node.js | node-version: "20" |
github.com/actions/setup-go@v5 | Instalar Go | go-version: "1.22" |
github.com/actions/setup-java@v4 | Instalar Java/JDK | java-version: "21", distribution: "temurin" |
github.com/gradle/actions/setup-gradle@v4 | Instalar Gradle | (nenhum) |
github.com/ruby/setup-ruby@v1 | Instalar Ruby | ruby-version: "3.3" |
with funcionam:
Os valores passados em with são fornecidos à ação como entradas, seguindo as mesmas convenções dos workflows do GitHub Actions. Todos os valores são convertidos em strings.
setup-python adiciona o binário do Python ao PATH, que permanece disponível para todas as etapas posteriores e no maintenance.
run vs uses: qual usar
Use run quando… | Use uses quando… |
|---|---|
Instalar pacotes do sistema (apt-get) | Configurar runtimes de linguagem (Python, Node, Go, Java, Ruby) |
| Executar scripts específicos do projeto | Houver uma GitHub Action oficial para o que você precisa |
| Configurar arquivos ou o ambiente | Você quiser gerenciamento automático de versões e cache |
| O comando for simples e autocontido | Você usaria a mesma Action em um workflow do GitHub Actions |
uses para runtimes de linguagem e run para todo o resto.
Variáveis de ambiente e segredos
Variáveis de ambiente por etapa
env:
Variáveis de ambiente compartilhadas entre etapas ($ENVRC)
$ENVRC:
$ENVRC são exportadas automaticamente e ficam disponíveis para todas as etapas seguintes e para a sessão do Devin. Isso funciona de forma semelhante ao $GITHUB_ENV no GitHub Actions.
Segredos
$MY_SECRET).
Os segredos são injetados antes da execução de cada etapa durante os builds e reinjetados no início de cada sessão. Eles são removidos da própria imagem do snapshot, para que as credenciais nunca fiquem embutidas em imagens de máquina salvas.
- Segredos da organização: Disponíveis como variáveis de ambiente em todas as etapas de todos os blueprints da organização. Configure-os na aba Segredos do editor do blueprint de nível da organização.
- Segredos do Enterprise: Mesclados com os segredos da organização (os segredos da organização têm precedência em caso de conflito de nomes). Disponíveis em todas as organização do enterprise.
- Segredos do repositório: Gravados em um arquivo por repositório em
/run/repo_secrets/{owner/repo}/.env.secrets. Durante os builds, os segredos do repositório são carregados automaticamente antes da execução das etapas do blueprint desse repositório. Durante a sessão, o Devin os carrega ao trabalhar no repositório. Configure-os na aba Segredos do editor de blueprint do repositório.
Segredos apenas para build: Segredos marcados como “somente para build” ficam disponíveis durante os builds do snapshot, mas são removidos antes de o snapshot ser salvo. Use-os para credenciais necessárias apenas no momento do build (por exemplo, baixar artefatos privados durante
initialize).Anexos de arquivos
.npmrc, settings.xml e arquivos de configuração) no editor de blueprint. Os arquivos importados são gravados em ~/.files/, e uma variável de ambiente é definida apontando para o caminho de cada arquivo:
FILE_.
Use anexos de arquivo nas etapas do seu blueprint:
Blueprints baseados em Git
Blueprints baseados em Git ainda não têm suporte. Esse recurso chegará em breve. Você poderá armazenar blueprints no seu repositório e fazer com que as builds sejam acionadas automaticamente quando houver alterações. Por enquanto, configure os blueprints pela interface em Configurações > Ambiente > Blueprints.
Exemplo completo
Para entender como os blueprints se compõem entre os níveis (enterprise → org → repo), os status das builds, os estados do repositório e o que aciona um rebuild, consulte Builds e sessões na página de configuração declarativa.
