Conception d'agents IA locaux

Un agent qui écrit des fichiers, c'est un utilisateur de plus.

Le problème réel

Un agent outillé n'est pas un chatbot avec des boutons. Dès qu'il peut lire un fichier, appeler une API ou exécuter du code, il devient un compte utilisateur non humain — avec des droits, une mémoire, et aucune intuition de ce qui est dangereux.

La plupart des déploiements traitent ce problème dans le prompt système : « n'exécute pas de commande destructive ». Un prompt n'est pas un contrôle d'accès. Il se contourne par la formulation, il se pollue par la mémoire, et il ne laisse aucune trace auditable.

Comment je le résous

Je construis la boucle ReAct autour de trois séparations qui, elles, tiennent :

  • Classification des outils par effet, pas par nom. Tout outil qui écrit passe par une approbation explicite — l'utilisateur voit l'action avant qu'elle ne parte.
  • Exécution confinée. Le code produit par un modèle tourne dans un bac à sable : réseau coupé, écriture bornée à un dossier jetable, lecture des clés SSH et des trousseaux refusée. Une sonde teste la cellule avant chaque exécution.
  • Chemins résolus, pas concaténés. Neuf points d'écriture passent par une résolution résistante aux liens symboliques, bornée à des racines déclarées.

Un piège appris sur le terrain

Sur mon propre agent, la classification write/read était faite sur le nom de l'outil. Les verbes anglais étaient couverts. Les verbes français — generer, supprimer — ne l'étaient pas : ils tombaient dans la catégorie lecture et passaient sans validation.

La leçon n'est pas « j'ai oublié le français ». Elle est structurelle : une liste de motifs est une passoire par construction. La classification se fait désormais à la déclaration de l'outil, par un champ obligatoire — un outil sans effet déclaré ne s'enregistre pas.

Ce que ça donne, mesuré

  • 44 outils natifs + 18 serveurs MCP en production
  • 119 outils MCP exposés sur 188 recensés — l'écart est un choix, pas un oubli
  • 2 061 tests sur l'agent seul
  • Envoi de mail sortant gardé derrière un drapeau lecture seule

Où c'est en production

Cette compétence intervient dans

AuditBuild

Vos données ne peuvent pas sortir ?

C'est exactement le problème que je résous. Un appel de 30 minutes suffit à cadrer un audit.