Vai executar no Kubernetes? devin-outpost-k8s
é um operador de código aberto que implementa esse loop para você: ele monitora a
fila, reivindica sessões pendentes e executa cada uma como um pod de worker em qualquer
cluster certificado (GKE, EKS, …). Instale-o com seu chart Helm em vez de
criar seu próprio orquestrador.
O fluxo principal
1. Registrar um outpost
rhel, gpu-h200 ou my-outpost). Crie um com devin worker outpost create:
Na fleet API, os outposts são representados como recursos
outposts, com escopo
na sua conta (compartilhados entre todas as suas organizações). Consulte os
endpoints de outposts.2. Monitore a fleet API para identificar sessões em espera
metadata.session_id e tolere duplicatas. Consulte List queued sessions e Watch for changes para ver os parâmetros de consulta, os formatos de resposta e a semântica completa da paginação.
3. Reivindique antes do provisionamento
acceptor_id — uma identidade informada pelo próprio worker:
409. Ao reivindicar, você garante que um worker estará pronto dentro do prazo de reivindicação atribuído pelo servidor (status.claim_deadline); reivindicações expiradas retornam automaticamente à fila. Se o provisionamento falhar, libere a reivindicação para que a sessão retorne imediatamente à fila.
4. Inicie uma máquina e execute o worker
--acceptor-id que você usou na reivindicação via API e informe o token com --token ou DEVIN_OUTPOSTS_TOKEN (consulte a lista completa de flags). O worker se conecta à nuvem do Devin, marca a sessão como pronta e começa a executar chamadas de ferramenta.
5. Encerre a máquina quando o worker for encerrado
devin worker start é encerrado, a sessão terminou (ou foi suspensa). Encerre a VM ou o contêiner. Se o seu outpost permitir retomada, crie um snapshot da máquina antes de encerrá-la para poder restaurá-la se a sessão for retomada.
Seu orquestrador pode acompanhar as sessões que reivindicou e seus estados:
status.session_status como pending, running, suspended ou terminated.
Agendamento descentralizado
Está planejando executar mais de ~16 coordenadores (workers ou orquestradores
monitorando e reivindicando sessões de um outpost)? Entre em contato com a equipe responsável pela sua conta primeiro — frotas maiores ampliam a contenção por reivindicações e a carga de leitura da fila, e queremos garantir
que o outpost esteja provisionado para isso.
- As reivindicações são o único mecanismo de coordenação. Cada worker monitora a fila de forma independente e disputa a reivindicação de sessões pendentes. A reivindicação é uma operação atômica de compare-and-swap no servidor: exatamente um worker vence, e todos os demais recebem um
409e simplesmente passam para a próxima sessão pendente. Perder uma disputa por uma reivindicação faz parte da operação normal, não é um erro. - Cada worker tem sua própria identidade. O
acceptor_idvincula as reivindicações, renovações e a recuperação após reinicialização exclusivamente àquele worker.devin worker startgera e persiste um automaticamente por máquina, então uma frota não precisa de configuração de identidade. Nunca compartilhe um acceptor ID (ou um diretório de dados de worker copiado) entre máquinas — workers com IDs conflitantes roubarão as reivindicações uns dos outros. - As falhas se recuperam automaticamente. Se um worker morrer depois de reivindicar uma sessão, sua reivindicação expira ao fim do prazo de reivindicação e a sessão retorna à fila para que outro worker a assuma. Nenhum monitoramento de integridade em nível de frota é necessário.
Criando um orquestrador personalizado
devin worker start faz está disponível diretamente por meio da fleet API, então você pode substituir totalmente a CLI: obtenha o binário devin-remote na distribuição estática do Devin e inicie-o por conta própria usando o ambiente documentado. Consulte Distribuição do binário remoto e o contrato de spawn na referência.
