¿Ejecutas en Kubernetes? devin-outpost-k8s
es un operador de código abierto que implementa este bucle por ti: vigila la
cola, reclama las sesiones pendientes y ejecuta cada una como un pod de worker en
cualquier clúster certificado (GKE, EKS, …). Instálalo con su chart de Helm en lugar de
crear tu propio orquestador.
El flujo principal
1. Registrar un outpost
rhel, gpu-h200 o my-outpost). Crea uno con devin worker outpost create:
En la fleet API, los outposts se representan como recursos
outposts, dentro del ámbito de
tu cuenta (compartidos entre todas sus organizaciones). Consulta los
endpoints de outposts.2. Supervisa la fleet API para ver las sesiones en espera
metadata.session_id y tolera duplicados. Consulta List queued sessions y Watch for changes para conocer los parámetros de consulta, los formatos de respuesta y la semántica completa de la paginación.
3. Reclamar antes del aprovisionamiento
acceptor_id: una identidad autodeclarada para tu worker:
409. Al reclamar, se garantiza que un worker estará listo dentro del plazo de reclamación asignado por el servidor (status.claim_deadline); las reclamaciones vencidas vuelven a la cola automáticamente. Si el aprovisionamiento falla, libera la reclamación para que la sesión vuelva a la cola de inmediato.
4. Crear una máquina y ejecutar el worker
--acceptor-id que usaste para reclamar mediante la API y proporciona el token con --token o DEVIN_OUTPOSTS_TOKEN (consulta la lista completa de flags). El worker se conecta a la nube de Devin, marca la sesión como lista y comienza a ejecutar invocaciones de herramientas.
5. Termina la máquina cuando el worker finalice
devin worker start finalice, la sesión habrá terminado (o se habrá suspendido). Termina la VM o el contenedor. Si tu outpost admite reanudación, crea una instantánea de la máquina antes de terminarla para poder restaurarla si la sesión se reanuda.
Tu orquestador puede hacer seguimiento de las sesiones que ha reclamado y de sus estados:
status.session_status de pending, running, suspended o terminated.
Programación sin centralización
¿Planeas ejecutar más de ~16 coordinadores (workers u orquestadores
que supervisan y reclaman sesiones de un outpost)? Ponte en contacto primero con tu equipo de cuenta: las
flotas más grandes aumentan la contención de reclamaciones y la carga de lectura de la cola, y queremos asegurarnos de
que el outpost esté aprovisionado para ello.
- Las reclamaciones son el único mecanismo de coordinación. Cada worker supervisa la cola de forma independiente y compite por reclamar las sesiones pendientes. La reclamación es una operación atómica de compare-and-swap en el servidor: exactamente un worker gana, y cada perdedor recibe un
409y simplemente pasa a la siguiente sesión pendiente. Perder una carrera por una reclamación es parte del funcionamiento normal, no un error. - Cada worker tiene su propia identidad. El
acceptor_idrestringe las reclamaciones, renovaciones y la recuperación tras reinicio de un worker únicamente a ese worker.devin worker startgenera y guarda uno automáticamente por máquina, por lo que una flota no necesita configuración de identidad. Nunca compartas un ID de acceptor (ni un directorio de datos de un worker copiado) entre máquinas: los workers en conflicto se robarán las reclamaciones entre sí. - Los fallos se recuperan solos. Si un worker se detiene después de reclamar, su reclamación vence al llegar el plazo de reclamación y la sesión vuelve a la cola para que otro worker la recoja. No hace falta seguimiento de estado a nivel de flota.
Crear un orquestador personalizado
devin worker start está disponible directamente a través de la fleet API, por lo que puedes reemplazar por completo la CLI: descarga el binario devin-remote desde la distribución estática de Devin y ejecútalo tú mismo con las variables de entorno documentadas. Consulta Distribución del binario remoto y el spawn contract en la referencia.
