¿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 las organizaciones de la cuenta). Consulta los
endpoints de outposts.2. Vigila la fleet API para detectar 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 de tu worker:
409. Reclamar 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 al reclamar mediante la API y proporciona el token con --token o DEVIN_OUTPOSTS_TOKEN (consulta la lista completa de opciones). El worker se conecta a la nube de Devin, marca la sesión como preparada y empieza a ejecutar invocaciones de herramientas.
5. Termina la máquina cuando el worker finalice
devin worker start finaliza, la sesión ha terminado (o se ha suspendido). Termina la VM o el contenedor. Si tu outpost permite reanudar sesiones, 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 coordinador central
¿Planeas ejecutar más de ~16 coordinadores (workers u orquestadores
que observan y reclaman desde un outpost)? Ponte primero en contacto con tu equipo de cuentas: las flotas más grandes aumentan la contención al reclamar 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 observa 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 server: 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 normal, no un error. - Cada worker tiene su propia identidad. El
acceptor_idlimita las reclamaciones, renovaciones y la recuperación tras reinicio de un worker únicamente a ese worker.devin worker startgenera y conserva 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 worker copiado) entre máquinas: los workers en conflicto se robarán las reclamaciones entre sí. - Los fallos se recuperan solos. Si un worker deja de funcionar después de reclamar, su reclamación expira al llegar a la fecha límite de reclamación y la sesión vuelve a la cola para que otro worker la recoja. No hace falta supervisar el estado de toda la flota.
Creación de un orquestador personalizado
devin worker start está disponible directamente a través de la fleet API, así que puedes sustituir por completo la CLI: descarga el binario devin-remote de la distribución estática de Devin e inícialo tú mismo con el entorno documentado. Consulta Distribución del binario remoto y el contrato de creación en la referencia.
