À propos du projet
Agent Substrate est un runtime d'exécution d'agents sécurisé par défaut, conçu pour exécuter des millions de sandbox avec une densité 10 fois supérieure aux runtimes de conteneurs standard. Spécialement conçu pour les agents autonomes, il offre des opérations de reprise en moins de 500 ms avec plus de 500 activations suspend/reprise par seconde, avec une isolation native du noyau et du réseau de confiance zéro. Il prend en charge plusieurs technologies de sandbox, notamment les microVM et gVisor, permettant des opérations de cycle de vie cohérentes pour tous les types de sandbox.
Au cœur d'Agent Substrate, un ensemble plus large d'« acteurs » (applications telles que des agents) est mappé sur un ensemble plus restreint de « workers » prêts, en s'appuyant sur le fait que les applications de type agent ont tendance à être inactives la plupart du temps pour réaliser un multiplexage intensif. Il fournit des fonctionnalités pour gérer le cycle de vie d'un acteur (par exemple, création/suppression, suspension/reprise), assigner les acteurs aux workers en temps réel et router le trafic entrant vers eux.
Agent Substrate est conçu comme un système à faible opinion. Les charges de travail qu'il gère ne doivent pas nécessairement être des agents IA littéraux, mais ils constituent le meilleur exemple du type d'applications pour lesquelles il est conçu. Ce n'est pas un SDK pour construire des agents, mais plutôt un système pour les exécuter à grande échelle.
Agent Substrate s'appuie sur Kubernetes pour le provisionnement de l'infrastructure et la gestion du cycle de vie des workers (Pods Kubernetes). Il se construit sur des fonctionnalités Kubernetes telles que les Pods et l'autoscaling des Pods, tandis qu'Agent Substrate fournit une planification et un contrôle spécifiques aux agents pour obtenir une latence plus faible. L'utilisation de Kubernetes comme système sous-jacent permet une gestion cohérente de l'infrastructure pour tous les types de charges de travail nécessaires aux déploiements agentiques de bout en bout et permet des optimisations holistiques de l'infrastructure pour les scénarios de RL qui couvrent les cycles agentiques, d'inférence et d'entraînement.
## Démo
Une vidéo de démonstration montre le cluster Agent Substrate multiplexant environ 250 acteurs avec état sur seulement 8 pods physiques. Les capacités clés démontrées incluent :
1. **Téléportation d'acteur :** Suspension et reprise haute performance des acteurs sur n'importe quel worker disponible du pool avec activation en moins d'une seconde.
2. **Persistance d'état :** Mémoire de travail persistante (RAM volatile) et état du système de fichiers préservés parfaitement à travers les cycles d'hibernation via des instantanés d'état complet.
3. **Multiplexage d'agents :** Démontre une sursouscription de 30x+ en « jonglant » avec un grand registre d'acteurs avec état sur un petit pool de pods physiques partagés.
## Agnosticisme de framework et compatibilité
Agent Substrate est conçu pour être agnostique en matière de framework et de harnais d'agent. Parce qu'il gère des conteneurs OCI standard au niveau du noyau (via gVisor), il peut héberger des agents construits sur n'importe quelle pile.
- **Agent Development Kit (ADK) :** Prise en charge des agents ADK avec préservation de l'état de session à travers les invocations comme état d'acteur.
- **LangChain :** Environnement d'exécution idéal pour les agents et appels d'outils LangChain.
- **Claude Code, CodeX et Antigravity :** Prise en charge d'environnements de codage avec état à haute densité qui préservent l'état du système et l'état du système de fichiers à travers les sessions.
- **Model Context Protocol (MCP) :** Prise en charge du déploiement de serveurs MCP sécurisés et sandboxés en tant qu'acteurs Substrate pour fournir des outils durables à n'importe quel modèle.
## Écosystème et exemples
- **Agent Executor (google/ax) :** Un runtime d'agent distribué démontrant la construction d'un harnais d'agent sécurisé et hyper-extensible sur Agent Substrate.
- **kagent :** Un projet CNCF Sandbox et un framework natif Kubernetes pour construire, déployer et gérer des agents IA qui utilise Agent Substrate pour exécuter des charges de travail d'agents avec état et sandboxées.
## Statut et compatibilité
Agent Substrate est actuellement en développement précoce. Il n'est pas prêt pour une utilisation en production, et les API sont presque garanties de changer. Aucune garantie de rétrocompatibilité n'est faite à ce stade.
### Versions Kubernetes prises en charge
Vise actuellement à prendre en charge la dernière version stable de Kubernetes et la version mineure précédente.
## Communauté
Rejoignez le groupe Google ate-dev pour les annonces et les discussions. Des réunions communautaires hebdomadaires ont lieu tous les jeudis de 10h00 à 11h00 PST. Il existe également des canaux Slack CNCF : #substrate-users et #substrate-dev.
## Démarrage rapide (Développement)
Pour configurer l'environnement complet localement :
1. Assurez-vous que Go, kubectl et docker sont installés.
2. Exécutez les étapes suivantes :
- `hack/create-kind-cluster.sh` pour créer le cluster et le registre local.
- `hack/install-ate-kind.sh --deploy-ate-system` pour installer ate, PostgreSQL, rustfs.
- `hack/install-ate-kind.sh --deploy-demo-counter` pour installer la démo counter.
- `go install ./cmd/kubectl-ate` pour installer kubectl-ate.
- Créez un acteur counter : `kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter`.
- Redirigez le port du routeur réseau : `kubectl port-forward -n ate-system svc/atenet-router 8000:80`.
3. Dans un terminal séparé, envoyez une requête HTTP pour incrémenter le compteur :
```shell
curl -X POST -H "ate-target-actor: ate-demo-counter/my-counter-1" -i http://localhost:8000/
```
La capacité des workers est versionnée : le dataplane ne planifie que sur les nœuds portant l'étiquette `ate.dev/substrate-version`, et l'installation l'appose sur chaque nœud existant lors de son exécution.
### Démarrage rapide GKE (Développement)
1. Copiez et modifiez le fichier d'environnement : `cp hack/ate-dev-env.sh.example .ate-dev-env.sh`.
2. Activez les identifiants d'application par défaut : `gcloud auth application-default login --project=${PROJECT_ID}`.
3. Provisionnez les ressources GCP : `go run ./tools/setup-gcp bootstrap`.
4. Déployez le système : `./hack/install-ate.sh --deploy-ate-system`.
5. Déployez les applications d'exemple : `./hack/install-ate.sh --deploy-demo-counter`.
Des scripts de configuration et de démontage personnalisés sont disponibles pour les étapes individuelles.
## Démonstrations
- **Démo Counter :** Un serveur HTTP Go avec état démontrant la préservation de l'état à travers les suspensions/reprises.
- **Démo Sandbox (Antigravity) :** Un environnement d'exécution sécurisé et sandboxé (Alpine Linux) permettant l'exécution arbitraire de shell tout en préservant l'état du système de fichiers.
- **Multiplex Claude Code :** Démontre la sursouscription du matériel physique en multiplexant plusieurs agents Claude Code sur un pool limité de workers.
- **Multi-Template :** Deux ActorTemplates exécutant différents binaires partagent un WorkerPool.
- **Parking de requêtes :** Un pool sursouscrit où le routeur retient les requêtes entrantes jusqu'à ce qu'un worker se libère.
- **WorkerPool autoscalé :** Met à l'échelle un WorkerPool sur son nombre de workers assignés avec un HPA alimenté par prometheus-adapter.
## Documentation et guides
- Architecture : Comment le plan de contrôle, le superviseur de nœud et la pile réseau s'assemblent.
- Guide de configuration API : Référence détaillée pour configurer WorkerPools, ActorTemplates, Secrets et Volumes.
- Documentation complète du CLI : Installation et utilisation de kubectl-ate.
- Glossaire : Termes clés (Actor, Atespace, ActorTemplate, WorkerPool, Worker, ate-api-server, atenet, atelet, ateom).
- Dépôts d'intégration : Où vivent les intégrations et comment les correctifs reviennent au cœur.
- Guide d'observabilité : Journalisation des acteurs, métriques et traçage distribué.
- Guide d'authentification : Configurer les fournisseurs JWT de confiance et les identifiants humains.
- Trafic sortant : Quels protocoles un acteur peut utiliser pour atteindre le monde extérieur et lesquels sont bloqués.
- Activation de l'interception MITM pour la politique de trafic sortant des acteurs.
- Parking de requêtes : Comment le routeur gare les requêtes à travers la saturation transitoire du pool de workers.
- Runbook de mise à niveau progressive : Mettre à niveau un nœud substrate en cours d'exécution sans perdre l'état des acteurs.
- Modèle de menace : Frontières de confiance, hypothèses et risques connus.
- Feuille de route : Limitations actuelles et ce qui est prévu ensuite.
- Guide de benchmarking : Tests de charge basés sur Locust, pile de surveillance et harnais de benchmark orchestré.
## Tour
Commandes et composants clés :
- `cmd/ateapi` : Serveur API du plan de contrôle central exposant des endpoints gRPC.
- `cmd/atelet` : DaemonSet au niveau du nœud supervisant les pods workers physiques.
- `cmd/atecontroller` : Contrôleur Kubernetes réconciliant les ressources personnalisées WorkerPool.
- `cmd/atenet` : Contrôleur réseau combiné fournissant le routage Envoy et les sidecars proxy.
- `cmd/ateom-gvisor` : Helper intra-pod exécutant les commandes runsc checkpoint et restore.
- `cmd/ateom-microvm` : Pair de micro-VM exécutant les acteurs en tant que VM cloud-hypervisor.
- `cmd/podcertcontroller` : Polyfill fournissant des signataires de certificats de pods.
- `cmd/kubectl-ate` : Outil CLI pour gérer les ressources Agent Substrate.
- `cmd/benchmarking` : Charges de travail synthétiques pour les tests de charge.
- `tools/setup-gcp` : Utilitaire de provisionnement pour l'infrastructure GCP.
- `demos/` : Applications d'exemple démontrant les capacités.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.