Projet IA
Agent Smith
Un agent IA qui résout des problèmes de code tout seul : il raisonne, écrit du code, l'exécute dans un bac à sable et corrige jusqu'à trouver la solution (benchmarks MBPP et SWE-bench).
Le projet
Un LLM seul sait écrire du code, mais il ne sait pas s’il marche. Agent Smith lui donne une boucle de travail : réfléchir, agir, observer le résultat, recommencer, jusqu’à une réponse vérifiée.
L’agent est évalué sur deux benchmarks reconnus :
- MBPP : des problèmes d’algorithmique en Python, vérifiés par des tests ;
- SWE-bench : de vrais bugs, dans de vrais projets open source, à corriger avec un patch.
C’est un projet de l’École 42, réalisé en équipe de trois.
Comment ça marche
- Le LLM agit en écrivant du code, pas en remplissant un formulaire JSON. Il peut ainsi enchaîner plusieurs actions, faire des boucles et réagir aux erreurs dans une seule étape.
- Ses outils passent par notre propre serveur MCP (Model Context Protocol) : lire et écrire des fichiers, chercher dans le code, lancer des commandes.
- Tout ce qu’il écrit s’exécute dans une sandbox, jamais directement sur la machine.
- Des budgets stricts encadrent chaque tâche : nombre d’étapes, tokens (morceaux de texte facturés par le modèle) et temps. L’agent mesure aussi sa consommation (tokens, latence, nouvelles tentatives) et sauvegarde un rapport de chaque exécution.
Ma partie : la sandbox
J’ai conçu la sandbox, le « bac à sable » qui exécute le code écrit par le LLM. Ce code ne doit jamais être considéré comme sûr, donc il passe plusieurs barrières :
- un processus séparé, qui peut être arrêté à tout moment ;
- une analyse du code avant l’exécution et une liste blanche des modules et fonctions autorisés ;
- un « audit hook » Python qui bloque les accès au système (fichiers, réseau, processus) pendant l’exécution ;
- des limites de temps et de mémoire, et aucun secret transmis.
Sur ce portfolio, la même sandbox tourne en plus dans un conteneur Docker sans réseau, en lecture seule et sans droits : c’est elle qui exécute les calculs de l’agent de la page d’accueil.
Ce que j’ai appris
- Penser la sécurité comme une suite de murs : si l’un tombe, le suivant tient.
- Tester une protection en l’attaquant, pas seulement en vérifiant que le cas normal fonctionne.
- Travailler à trois sur un même code : contrats clairs entre les parties, revues et tests partagés.