Referencia rápida de la sintaxis y el comportamiento de environment.yaml. Para ver conceptos y guías, consulta Configuración de Environment.
| Campo | Tipo | Obligatorio | Ejecutado durante | Descripción |
|---|
initialize | cadena o lista | No | Solo en la compilación | Comandos de configuración únicos. Los resultados se guardan en la imagen de la máquina. Deben ser idempotentes. |
maintenance | cadena o lista | No | Compilación + inicio de la sesión | Comandos recurrentes de dependencias. Deben ser rápidos e incrementales. |
knowledge | lista de objetos | No | Nunca (solo referencia) | Información que se carga en el contexto de Devin al inicio de la sesión. |
| Campo | Tipo | Obligatorio | Descripción |
|---|
name | string | No | Etiqueta legible para humanos que se muestra en los registros de compilación. Facilita la identificación de fallos. |
run | string | No | Comando(s) de shell que se ejecutarán. Se admiten cadenas de varias líneas. Los Step sin run se omiten. |
Campos de la entrada de Knowledge
| Campo | Tipo | Obligatorio | Descripción |
|---|
name | string | Sí | Identificador (p. ej., test, lint, startup, architecture, notes). |
contents | string | Sí | Contenido de referencia. No se ejecuta como si fueran comandos. |
- Los comandos se ejecutan en bash con
set -e activado; si alguna línea falla, el paso se detiene de inmediato.
- Los comandos específicos del repositorio se ejecutan desde la raíz del repositorio (
~/repos/<repo-name>). Los comandos de Enterprise y de toda la organización se ejecutan desde el directorio personal (~).
- Cada paso de la forma expandida se ejecuta en su propio contexto de shell.
| Ámbito | Tiempo de espera |
|---|
| Comando individual | 1 hora |
| Compilación total | 2 horas |
Buenas prácticas:
- Use subshells para comandos en subdirectorios:
(cd packages/frontend && npm install).
- Prefiera las instalaciones incrementales en
maintenance (por ejemplo, npm install en lugar de npm ci).
- Evite los comandos de compilación (
npm run build, make) en maintenance; se ejecutan en cada sesión.
- Agregue indicadores
-y para evitar prompts interactivos: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y.
- Los comandos deben poder ejecutarse de forma segura varias veces;
maintenance se ejecuta en cada sesión.
La imagen base de Devin (Ubuntu 22.04, x86_64) incluye estas herramientas. No necesitas instalarlas.
| Categoría | Incluye |
|---|
| Lenguajes | Node.js (a través de nvm), Python 3.12 (a través de pyenv, con las versiones 3.9–3.11 también disponibles), Rust (a través de rustup), Java (OpenJDK 17), Scala, Go |
| Gestores de paquetes | npm, yarn, pnpm, pip, cargo |
| Control de versiones | git, gh (CLI de GitHub), git-lfs |
| Contenedores | Docker (con el complemento Compose: usa docker compose, no docker-compose) |
| Herramientas de compilación | make, build-essential (gcc, g++) |
| Utilidades | curl, wget, jq, ripgrep, direnv, awscli, ffmpeg, Homebrew, OpenVPN |
| Navegadores | Chrome (para pruebas en navegador) |
Puede que esta lista no sea exhaustiva. Ejecuta which <tool> o <tool> --version en una sesión de Devin para comprobarlo. Si falta algo, instálalo en la sección initialize.
| Término | Definición |
|---|
| Configuración | Una configuración de entorno guardada (el contenido YAML). Cada repo/org/empresa tiene la suya. |
| Versión de configuración | Una revisión específica de una configuración. Cada vez que se guarda, se crea una nueva versión. |
| Compilación | El proceso de ejecutar tu configuración para crear una imagen de la máquina. |
| Imagen de la máquina | El entorno guardado creado por una compilación exitosa. Las sesiones se inician a partir de la imagen exitosa más reciente. |
| Configurado | Un repositorio con una configuración YAML explícita (initialize/maintenance/Knowledge). |
| Incluido | Un repositorio clonado en la imagen de la máquina, pero sin configuración personalizada. |
| Disponible | Un repositorio accesible para la org, pero no agregado al entorno. |
| $ENVRC | Un archivo especial para configurar variables de entorno. Similar a $GITHUB_ENV de GitHub Actions. |
| Éxito parcial | Una compilación en la que la parte principal se completó correctamente, pero algunas configuraciones a nivel de repositorio fallaron. |