Alors que les développeurs comptent de plus en plus sur les agents d'intelligence artificielle (AI Agents) pour écrire de grandes parties de code, les ingénieurs font face à un défi croissant pour examiner ces sorties, en particulier dans les systèmes distribués complexes. L'équipe Hydro, un framework open source pour les systèmes distribués développé en Rust, cherche à combler cette lacune en intégrant des mécanismes de vérification logicielle au sein du compilateur pour détecter les erreurs que les agents pourraient commettre.
Pourquoi les tests traditionnels ne suffisent-ils pas ?
Shadaj Laddad, responsable de la recherche au sein de l'équipe Hydro, indique que les agents d'intelligence artificielle ont tendance à écrire le code et leurs propres tests en même temps, ce qui permet difficilement aux réviseurs humains de s'assurer de l'exactitude de ces tests. Souvent, les fonctionnalités peuvent bien fonctionner de manière isolée, mais échouent lorsqu'elles sont intégrées dans un système plus vaste, entraînant l'effondrement des garanties logicielles.
La transition vers des "barrières de protection" logicielles
Plutôt que de s'en remettre entièrement aux tests écrits par l'agent, l'équipe Hydro se concentre sur l'imposition de règles strictes en dehors de la "zone de confiance" de l'agent. À l'instar de la manière dont le vérificateur d'emprunt (Borrow Checker) en Rust prévient les conditions de concurrence (Race Conditions) avant l'exécution du code, Hydro vise à appliquer des vérifications similaires pour les systèmes distribués. Des motifs récurrents, tels que l'idempotence (Idempotency) — garantissant que l'exécution des requêtes n'est pas dupliquée lorsqu'elles sont renvoyées après un échec —, sont actuellement explorés pour être transformés en barrières de protection générales auxquelles les agents peuvent se conformer.
Intégration avec l'environnement d'exécution
Parallèlement à ces efforts, AWS a récemment lancé Infinity, un runtime open source pour les agents, conçu pour suspendre le travail de l'agent en attendant la réponse d'outils ou des tâches d'intégration continue (CI), réduisant ainsi considérablement la consommation de ressources. Cette approche permet de faire fonctionner un nombre massif d'agents avec une grande efficacité.
Qu'est-ce que cela signifie pour les développeurs ?
Cette orientation représente une reconnaissance du fait que le compilateur doit évoluer pour devenir la première ligne de défense contre les erreurs de l'intelligence artificielle. Bien qu'Hydro en soit encore à ses débuts, il offre un modèle sur la manière de construire des systèmes distribués hautement fiables à l'ère de la "programmation par agent", où la fiabilité est intégrée dans la structure du langage et des outils plutôt que d'être simplement une couche de test supplémentaire.