Réécriture de Prime Agent en Rust
Depuis le lancement de Prime Agent en août, les téléchargements ont dépassé les 300 000 et le traitement des tokens a franchi les 8 000 milliards. Aujourd'hui, l'équipe livre une version plus rapide et plus propre, entièrement réécrite à partir de zéro en Rust.
Sur deux semaines, Prime Agent a orchestré un essaim de plus de 2 000 agents qui l'ont réécrit de bout en bout, opérant à travers plus de 10 000 Prime Sandboxes et plus de 200 milliards de tokens issus du point d'accès GLM-5.3 de Prime Inference. La réécriture a mis à l'épreuve les capacités multi-agents, y compris l'infrastructure de bac à sable et d'inférence pour de grands essaims d'agents, la recherche autonome et l'apprentissage par renforcement.
Pour garantir la parité fonctionnelle, Prime Agent a utilisé des sous-agents pour trier topologiquement les dépendances, avec des machines à états finis structurant les calculs en boucle et les contrôles de justesse. L'architecture du code a été réécrite pour faciliter la maintenance. Des benchmarks d'exécution et des traces réelles ont servi à améliorer les indicateurs de performance et à trier les bogues. Prime Agent s'exécute désormais plus vite et consomme moins de ressources que la plupart des frameworks d'agents de programmation. L'implémentation en Rust a traité 192,99 milliards de tokens avec 1 981 agents à la profondeur 3, tandis que TypeScript en a traité 35,70 milliards avec 228 agents.
Pourquoi Rust : TypeScript a aidé à livrer rapidement, mais les types optionnels disparaissent à l'exécution, les erreurs remontent sous forme d'exceptions non vérifiées, et les tâches gourmandes en CPU entrent en concurrence avec la saisie clavier sur une boucle d'événements unique. Chaque processus supporte le coût d'un environnement d'exécution JavaScript et d'un ramasse-miettes. Rust convient à l'objectif de livrer vite tout en maintenant un niveau d'exigence plus élevé à mesure que le code grandit. Les gains de performance viennent du code natif sans ramasse-miettes, de processus de travail par session et d'améliorations du démarrage. La concurrence profite des traits Send et Sync de Rust, qui permettent au compilateur de vérifier les échanges de données entre threads. Les garanties à la compilation, issues des énumérations exhaustives, de la propriété et des durées de vie, éliminent des classes entières de bogues. Parmi les autres avantages figurent la prise en charge de Windows, l'isolation des plantages de session et un protocole de démon plus cohérent.
L'objectif était que les agents réalisent la réécriture de façon autonome, avec une intervention humaine minimale. Le travail humain a porté sur la mise en place de la vérification permettant un déploiement autonome à grande échelle, dans la lignée de travaux antérieurs sur la traduction automatique vers Rust. Chaque spécification couvrait un type différent de parité : la parité TUI compare les binaires TypeScript et Rust côte à côte face au même modèle scripté, en comparant les images du terminal. La parité de harnais compare les transcriptions de session et les requêtes envoyées au fournisseur de modèle. La parité de protocole vérifie tous les types de messages du protocole du démon par rapport à l'implémentation TypeScript. La parité fonctionnelle a impliqué un audit composant par composant du produit TypeScript. Des contrôles objectifs garantissent la cohérence entre les API et les protocoles.
Source: Hacker News · Résumé par HeadlinesBriefing