Come eseguire centinaia di agenti AI su un paio di server senza fallire
Di solito lavorare con Kubernetes è prevedibile: un servizio — un pod (beh, o un ReplicaSet). Ma quando passiamo al mondo degli agenti AI, il pattern familiare si rompe. Immagina di avere migliaia di agenti, ognuno con un contesto di dialogo in memoria, variabili d'ambiente e stato del file system. La maggior parte del tempo non fanno nulla — aspettano solo un comando dell'utente o un evento. Allocare un pod completo in K8s per ciascuno è costoso: il control plane semplicemente si soffocherà con così tanti oggetti, e le risorse del cluster verranno sprecate.
Il team di Google (anche se il progetto è segnato come non ufficiale) ha introdotto Agent Substrate. Questo è un sistema che permette di "giocolare" centinaia di sessioni attive di agenti usando solo pochi pod fisici.
Il problema con l'approccio standard
In Kubernetes, creare un pod non è un'operazione istantanea. Devi aggiornare lo stato in etcd, aspettare lo scheduler, scaricare l'immagine e avviare il container. Per agenti interattivi, un ritardo di un paio di secondi è già troppo. Inoltre, quando un agente "dorme," vuoi liberare le sue risorse, ma quando si sveglia, deve ripristinare istantaneamente tutti i file e le variabili in memoria.
Agent Substrate risolve questo attraverso il concetto di actor e worker. Gli actor sono le tue applicazioni (agenti), e i worker sono pod-shell di lunga durata. Il sistema mappa un enorme numero di actor su un piccolo pool di worker.
Caratteristiche principali del progetto
Teleportazione istantanea della sessione
Sembra magia, ma in pratica funziona basandosi su gVisor. Quando un agente è inattivo, Substrate fa uno snapshot del suo stato (inclusa la memoria) e lo salva. Non appena arriva una richiesta, il sistema trova un worker libero e "estrae" lo snapshot lì. L'attivazione richiede meno di un secondo.
Conservazione dello stato senza hack
Non devi configurare dolorosamente database esterni per ogni piccola cosa che fa un agente o montare slow network drive. L'intero stato, inclusi i contenuti della RAM e i file locali, viene preservato perfettamente. Se un agente stava scrivendo codice nel terminale o teneva un array di dati in memoria, dopo l'ibernazione continuerà esattamente da dove aveva lasciato.
Multiplexing estremo
Nel video demo, gli autori mostrano come 250 actor stateful stanno in soli 8 pod. Questo fornisce risparmi di risorse di decine di volte. Per chi costruisce una piattaforma per agenzie AI o servizi di sviluppo (come Claude Code), questo è un percorso diretto per ridurre le bollette cloud.
Come funziona sotto il cofano
Il progetto è scritto in Go e tightly integrato con l'ecosistema Kubernetes, ma sposta la gestione degli actor fuori dal critical path del control plane K8s.
Ecco i componenti principali:
- ateapi: Il core del sistema, gestisce il ciclo di vita degli actor.
- atelet: Un daemon sui nodi che orchestra snapshot e trasferimento di stato.
- atenet: Gestisce il routing del traffico così che le richieste raggiungano il worker giusto dove l'actor necessario è attualmente "sveglio."
- gVisor (runsc): Fornisce isolamento e abilita i checkpoint dei processi.
A proposito, il progetto è completamente framework-agnostic. Non importa se stai usando LangChain, Claude Code, o uno script Python personalizzato — se è impacchettato come container OCI, Substrate lo eseguirà.
Quick start
Se hai Go, Docker e kubectl installati, puoi provare il sistema localmente tramite kind. Gli sviluppatori hanno preparato script che faranno partire un cluster e un ambiente demo in un paio di minuti.
# Создаем локальный кластер
hack/create-kind-cluster.sh
# Ставим систему и демо-приложение
hack/install-ate-kind.sh --deploy-ate-system
hack/install-ate-kind.sh --deploy-demo-counter
# Устанавливаем плагин для kubectl
go install ./cmd/kubectl-ate
# Создаем пространство и первого актора
kubectl ate create atespace demo
kubectl ate create actor my-counter-1 -a demo --template ate-demo-counter/counter
Dopo di che, puoi chiamare un actor con un normale curl. Il sistema determinerà automaticamente se ha bisogno di svegliarlo e dove instradare la richiesta.
Vale la pena provarlo adesso
Il progetto è nella fase di "Very Early Development". Questo significa che l'API cambierà sicuramente, e la backward compatibility non è garantita. È troppo presto per produzione, ma per reparti R&D e per chi sta progettando infrastruttura per servizi LLM, questo è un must-have per lo studio.
Se hai bisogno di eseguire migliaia di sandbox isolate per l'esecuzione di codice o una mandria di assistenti AI che devono ricordare il contesto, Agent Substrate offre un percorso molto più elegante che cercare di scalare native Kubernetes all'infinito.
Il video mostra il sistema che giocola con gli actor in tempo reale.
Il team del progetto comunica attivamente su CNCF Slack (canali #substrate-users e #substrate-dev) e tiene meeting settimanali. È chiaro che dietro questo progetto c'è una seria expertise in virtualizzazione e containerizzazione. Come minimo, è un grande esempio di come estendere le capacità di K8s per workload specifici.
Progetti correlati