Agents IA

PDD Kit utilise des preuves formelles pour vérifier le code généré par l'IA

Microsoft Research présente PDD Kit, une boîte à outils qui applique la vérification formelle aux logiciels écrits par des agents, garantissant que le code correspond à l'intention de l'utilisateur grâce à des preuves mathématiques et à des tests ciblés.

Un cube en verre avec des circuits lumineux sur un bureau à côté de documents vérifiés.
Illustration générée pour cet article

Traduit automatiquement depuis l'original anglais.

Microsoft Research a présenté PDD Kit, une nouvelle boîte à outils conçue pour introduire les méthodes de vérification formelle dans le développement logiciel quotidien piloté par des agents IA. Publiée le 5 novembre 2026, cette approche répond au défi croissant de la validation de grands volumes de code générés par des assistants de codage autonomes. En combinant preuves mathématiques et tests empiriques, PDD Kit vise à garantir que les applications écrites par des agents respectent strictement l'intention du développeur sans nécessiter une revue manuelle ligne par ligne.

Ce qui s'est passé

Alors que les agents IA deviennent capables de générer des fonctionnalités entières ou des applications full-stack en une seule session, les processus traditionnels de revue de code peinent à suivre le rythme. Les développeurs s'appuient souvent sur des plans en langage naturel comme contrats pour ces agents, mais il n'existe aucun mécanisme inhérent forçant l'agent à suivre le plan avec précision. Les agents peuvent s'écarter des spécifications, implémenter une logique légèrement différente puis écrire des tests qui réussissent pour leur implémentation incorrecte plutôt que pour le comportement attendu. Cela crée un fossé caché entre ce qui a été demandé et ce qui est livré, que les pipelines d'intégration continue standards ne détectent souvent pas car ils ne vérifient que des cas de test spécifiques.

Pour résoudre ce problème, Microsoft Research a développé Proof-Driven Development (PDD) et sa boîte à outils associée, PDD Kit. Ce système s'intègre à l'environnement de planification Chopin de GitHub Next pour transformer l'intention utilisateur en spécifications formelles. Il utilise ensuite ces spécifications pour prouver mathématiquement que le code généré est correct pour chaque entrée possible. Pour les aspects du logiciel qui ne peuvent être prouvés formellement, tels que les interactions avec des bibliothèques tierces ou les interfaces utilisateur, la boîte à outils recourt à des tests empiriques de haute qualité. Cette approche hybride permet aux ingénieurs sans formation en méthodes formelles d'appliquer une vérification rigoureuse à leurs projets.

L'équipe de recherche a démontré PDD Kit en construisant Pet Store, une application web full-stack écrite en Rust. L'application inclut un backend utilisant Axum et SQLite, et un frontend construit avec Leptos compilé vers WebAssembly. Bien que l'application entière consiste en environ 5 000 lignes de code, l'équipe a concentré ses efforts de vérification formelle sur la logique de connexion. Ce composant critique gère l'authentification et l'autorisation, ce qui en fait un candidat idéal pour une validation basée sur des preuves. Le processus a permis au développeur de revoir l'intention et la spécification sans lire chaque ligne du code généré, tout en atteignant un haut degré de confiance dans la sécurité et la correction du flux de connexion.

Comment cela fonctionne

PDD Kit opère en comblant le fossé entre l'intention en langage naturel et les spécifications mathématiques formelles. Lorsqu'un développeur fournit une demande, la boîte à outils pose des questions de clarification pour lever les ambiguïtés, telles que distinguer « obtenir un jeton uniquement avec le bon mot de passe » de « le bon mot de passe fonctionne toujours ». Ces décisions sont enregistrées dans un artefact d'intention, qui mappe les exigences utilisateur vers des specs formelles en Verus, un langage de preuve pour Rust. La boîte à outils génère ensuite des preuves que le code satisfait ces specs pour toutes les entrées, tout en créant simultanément des tests pour les parties du système situées hors du périmètre de la vérification formelle, connues sous le nom de Trusted Computing Base.

Le processus de vérification distingue deux types d'assurance : la vérification formelle et la vérification empirique. La vérification formelle utilise le vérificateur Verus pour fournir une preuve mathématique que le code respecte sa spécification pour chaque entrée possible. La vérification empirique, quant à elle, repose sur l'exécution du code et l'observation de son comportement via des tests unitaires, des tests end-to-end et des agents de navigateur. PDD Kit rend explicite la frontière entre ces deux approches, exigeant que les développeurs valident chaque composant de confiance, tel que les bibliothèques de cryptographie externes ou les requêtes de base de données, afin de s'assurer que les hypothèses sous-jacentes aux preuves sont clairement comprises et acceptées.

Détails clés

  • PDD Kit s'intègre à l'environnement Chopin de GitHub Next pour faciliter la planification et la vérification en temps réel et multi-utilisateurs.
  • La boîte à outils utilise Verus, un langage de preuve pour Rust, pour générer des preuves mathématiques que le code satisfait les spécifications formelles pour toutes les entrées.
  • Elle convertit automatiquement les parties de l'intention utilisateur qui ne peuvent être prouvées formellement en spécifications informelles couvertes par des tests empiriques.
  • Le système définit explicitement la Trusted Computing Base, exigeant la validation du développeur sur les dépendances externes et les comportements supposés.
  • Dans la démo Pet Store, PDD Kit a vérifié la logique de connexion d'une application Rust de 5 000 lignes, révélant des bugs existants et prouvant l'absence d'erreurs de connexion par rapport à la spec.
  • Le workflow inclut une carte d'intention qui lie les exigences aux specs formelles et aux tests, fournissant une piste d'audit claire de la manière dont l'intention utilisateur a été implémentée.

Pourquoi c'est important

Pour les ingénieurs logiciels et les responsables techniques, PDD Kit offre une solution évolutive à la crise de fiabilité posée par le code généré par l'IA. À mesure que les agents produisent des bases de code plus grandes et plus complexes, le coût de la revue manuelle devient prohibitif, et les stratégies de test traditionnelles laissent des lacunes significatives en couverture. En automatisant la création de preuves formelles, PDD Kit fournit un niveau d'assurance que les tests seuls ne peuvent égaler, capturant les cas limites et les erreurs logiques qui pourraient autrement passer en production. Cela transforme le rôle du développeur d'un relecteur ligne par ligne en un architecte de haut niveau qui définit l'intention et valide les spécifications.

De plus, cette approche démocratise les méthodes formelles, historiquement réservées aux systèmes critiques de niche en raison de leur complexité et de leur coût. En exploitant l'IA pour gérer le travail lourd de génération de preuves et de rédaction de spécifications, PDD Kit rend ces techniques rigoureuses accessibles au développement d'applications quotidiennes. Cela pourrait mener à un nouveau standard en matière de qualité logicielle, où des composants critiques comme l'authentification, les transactions financières et le traitement des données sont régulièrement vérifiés mathématiquement, réduisant le risque de bugs sévères et de vulnérabilités de sécurité.

Ce que vous pouvez faire

  • Évaluez vos processus actuels de revue de code pour identifier les goulets d'étranglement causés par de grandes pull requests générées par l'IA.
  • Identifiez les composants critiques de votre application, tels que l'authentification ou la logique de paiement, qui bénéficieraient le plus de la vérification formelle.
  • Explorez les capacités de Verus et d'autres outils de vérification formelle pour Rust afin de comprendre leur potentiel d'intégration dans votre workflow.
  • Expérimentez avec la spécification d'exigences claires et non ambiguës pour les agents IA afin de réduire la probabilité de dérive d'implémentation.
  • Envisagez d'adopter une stratégie de test hybride combinant des tests unitaires traditionnels avec des tests basés sur les propriétés pour couvrir davantage de scénarios d'entrée.
  • Restez informé des développements en Proof-Driven Development et d'outils comme PDD Kit à mesure qu'ils deviennent plus largement disponibles.
  • #ai agents
  • #formal verification
  • #rust
  • #software engineering
  • #microsoft research

Outils de la Boutique Bytechap

Continuer la lecture

Tous les articles