← Tous les articles

La sécurité des agents IA commence par de petits logiciels

Matt Sephton a publié Fits on a Floppy en avril 2026 autour d’une contrainte volontairement absurde : un logiciel utile devrait essayer de tenir dans 1,44 Mo, soit la capacité d’une disquette 3,5 pouces standard.1

La limite de taille compte moins que l’attitude qu’elle impose. Sephton défend des téléchargements rapides, un lancement instantané, une faible consommation de mémoire et de CPU, du code natif, la prise en charge de systèmes plus anciens et des outils qui font bien une seule chose.1 La lecture évidente est que le petit logiciel respecte l’utilisateur. À l’ère des agents, la lecture va plus loin : le petit logiciel laisse moins d’endroits aux agents de codage IA pour cacher leurs erreurs.

La sécurité des agents IA commence par de petits logiciels, parce que des systèmes petits et inspectables réduisent l’espace qu’un agent peut mal comprendre, modifier, autoriser ou oublier de tester. Les environnements isolés et les demandes d’autorisation restent nécessaires. Le petit logiciel déplace toutefois la frontière de sécurité en amont, dans la forme même de l’artefact.

TL;DR

Les agents de codage fonctionnent mieux lorsqu’ils peuvent lire les fichiers pertinents, exécuter les contrôles utiles et expliquer le diff important avant que le contexte se dégrade. Les recommandations Claude Code d’Anthropic indiquent que le contexte se remplit vite et que les performances diminuent à mesure qu’il se remplit ; le même guide présente la vérification comme la pratique la plus précieuse et décrit les outils CLI comme des interfaces économes en contexte.2 La documentation d’OpenAI sur le shell local avertit que les agents qui exécutent des commandes shell ont besoin d’un environnement isolé, ou de listes d’autorisation et de refus strictes, avant toute exécution.3

Le petit logiciel ne remplace pas ces contrôles. Il les rend plus faciles à appliquer. Un petit outil a moins de commandes à autoriser, moins de fichiers à inspecter, moins de dépendances à croire, moins de tests à lancer et moins de branches où une hypothèse fausse peut se cacher. L’ancienne leçon d’Unix n’a pas vieilli : McIlroy rattache le principe « faire une seule chose » aux premières contraintes de taille, puis explique pourquoi les flux de texte sont devenus des interfaces universelles utiles, pour les programmes comme pour les personnes.4 Les systèmes d’agents redécouvrent le même motif, parce que les agents ont besoin de surfaces inspectables et composables.

Points clés

Pour les concepteurs d’agents : - Privilégiez de petits outils avec des entrées explicites, des sorties explicites et des artefacts en fichiers simples avant d’ajouter de larges API ou de grands schémas d’outils. - Traitez les chemins de fichiers, les diffs, les journaux et les tests comme des surfaces de sécurité. L’agent peut les inspecter, le relecteur peut les inspecter et l’automatisation peut s’en servir comme seuil.

Pour les équipes logicielles : - Le petit logiciel réduit le coût de revue. Un relecteur peut comprendre un outil de 400 lignes et ses tests en une seule séance ; un framework tentaculaire impose de la confiance là où il devrait y avoir des preuves. - Gardez le périmètre d’autorisation près de l’action. Une petite commande peut s’exécuter en lecture seule, écrire dans un seul dossier ou refuser l’accès réseau. Une commande générale demande généralement plus d’autorité que la tâche n’en exige.

Pour les responsables produit : - Le petit logiciel n’est pas de la nostalgie. C’est un modèle de gouvernance pour un monde où les machines peuvent produire trop de code trop vite. - La barre doit passer de « l’agent peut-il le construire ? » à « l’équipe peut-elle le vérifier, se l’approprier et revenir en arrière ? ».

Pourquoi le petit logiciel redevient pertinent

Le gonflement logiciel ressemblait autrefois à un problème d’expérience utilisateur : téléchargements lents, mémoire lourde, lancement différé, batteries vidées et anciens appareils laissés de côté. Fits on a Floppy rend cette critique visible grâce à un étalon volontairement physique. Un badge de 1,44 Mo transforme la retenue en test compréhensible par l’utilisateur.1

Les agents de codage IA changent la raison pour laquelle cette retenue compte. La machine peut produire des fichiers plus vite qu’un humain ne peut les lire. Cette vitesse affaiblit la qualité quand le système environnant confond volume et progrès. Une fonctionnalité de 2 000 lignes avec quatre nouvelles dépendances peut sembler impressionnante dans la transcription tout en augmentant davantage la surface de défauts que la valeur produit.

Le petit logiciel donne à l’agent une cible plus exigeante et au relecteur une meilleure prise. Le prompt peut demander un exécutable, un format de données, un fichier de test et un chemin de retour en arrière. Le résultat laisse moins de degrés de liberté. Un modèle peut encore se tromper, mais l’erreur a moins d’espace pour se camoufler.

Niklaus Wirth a publié un article intitulé A Plea for Lean Software en 1995, bien avant que les agents de codage n’entrent dans les flux de travail.5 Le titre reste pertinent, car l’échec sous-jacent demeure : les équipes dépensent du matériel, des dépendances et des couches d’abstraction pour éviter les décisions de conception difficiles. Les agents abaissent le prix de l’ajout de code ; refuser d’ajouter du code devient donc plus précieux.

Le contexte est un budget de sécurité

La sécurité des agents est souvent présentée comme un problème d’autorisations : quelles commandes l’agent peut-il exécuter, quels fichiers peut-il modifier, quels secrets peut-il voir, quels appels réseau peut-il faire ? Ces questions comptent. Elles ne couvrent pas la première contrainte que rencontre l’agent pendant qu’il travaille : le contexte.

Le guide des bonnes pratiques Claude Code d’Anthropic explique que la fenêtre de contexte contient la conversation, les messages, les fichiers lus et la sortie des commandes, et qu’une seule session de débogage peut consommer des dizaines de milliers de tokens.2 Le guide avertit aussi que Claude peut commencer à oublier des instructions antérieures ou faire davantage d’erreurs à mesure que la fenêtre de contexte se remplit.2

Cet avertissement transforme la taille en propriété de sécurité. Une petite base de code permet à l’agent de lire la surface pertinente sans noyer la session dans des fichiers inutiles. Un petit outil permet à l’agent de garder en vue la fonction, les tests, le modèle d’autorisation et les cas limites en même temps. Un petit diff permet au relecteur de trouver le vrai changement au lieu de parcourir une pile de mouvement généré.

Le budget de contexte a trois limites pratiques :

Limite Réponse du petit logiciel Gain de sécurité
Fichiers lus Moins de fichiers portent le comportement L’agent peut inspecter le vrai chemin au lieu de deviner à partir des noms.
Volume de sortie Journaux plus courts et tests plus rapides L’agent peut utiliser la sortie des commandes comme preuve au lieu de l’abandonner.
Conflits d’instructions Moins de conventions locales L’agent a moins de règles à concilier sous pression.

Les grands systèmes peuvent quand même être sûrs. Ils exigent une meilleure décomposition. Si une base de code ne peut pas être petite, la surface exposée à l’agent doit l’être : un package, un sous-système borné, une commande publique, une cible de test, un dossier attribué.

Les fichiers simples battent l’état caché

L’histoire orale de McIlroy donne à l’ancienne leçon un tranchant très pratique. Il décrit le principe « faire une seule chose » comme né de l’impossibilité matérielle de faire plus d’une chose, puis explique que les équipes ont conservé ce modèle après la disparition de la contrainte initiale.4 Il explique aussi pourquoi les flux de texte comptaient : les données lisibles par l’humain rendaient le débogage moins pénible, et faire évoluer des champs textuels demandait moins de travail que modifier des formats binaires fixes.4

Les agents ont besoin du même type de surfaces. Un fichier peut être listé, recherché, comparé par diff, lu par plages, validé dans Git, restauré, linté et relu. L’état caché d’un IDE, les bases locales opaques et les grands outils hébergés peuvent être utiles, mais ils obligent l’agent et le relecteur à faire confiance à une surface qu’ils ne peuvent pas facilement inspecter.

Un article arXiv de janvier 2026 relie l’abstraction de fichier d’Unix aux systèmes d’IA agentique. L’article affirme que les abstractions de type fichier et les spécifications sous forme de code ramènent des ressources diverses à des interfaces cohérentes et composables, et peuvent aider les systèmes d’agents à devenir plus maintenables, auditables et solides en production.6 L’analyse d’Oracle sur la mémoire des agents établit une distinction proche : les interfaces de système de fichiers fonctionnent bien parce que les modèles comprennent déjà les surfaces natives des développeurs, comme les dépôts, dossiers, Markdown, journaux et interactions CLI, tandis que le stockage durable peut tout de même relever d’une base de données.7

Cette distinction compte. « Utiliser des fichiers » ne veut pas dire « tout stocker en texte libre pour toujours ». Le modèle le plus sûr sépare l’interface de l’agent du substrat de stockage :

Couche Bon choix par défaut Pourquoi cela aide les agents
Interface de l’agent Fichiers, dossiers, journaux, diffs, commandes Le modèle et l’humain peuvent inspecter le même artefact.
Stockage durable Base de données, stockage objet, file d’attente, cache Le système conserve ses garanties de concurrence, d’indexation et d’intégrité.
Surface de vérification Tests, linters, contrôles de routes, captures d’écran Les preuves survivent hors de la transcription du chat.

L’agent doit voir la plus petite interface utile. Le produit peut garder la couche de stockage plus robuste en dessous.

Moins d’outils, c’est moins d’autorisations

L’article sur l’autorisation de MCP a rendu explicite la leçon d’autorisation : valider un bearer token ne prouve pas qu’un utilisateur peut appeler tous les outils derrière le serveur.8 Le petit logiciel applique la même idée plus tôt dans la conception. Un outil plus petit demande une autorité plus étroite.

La documentation d’OpenAI sur le shell local énonce clairement le danger : exécuter des commandes shell arbitraires peut être dangereux, et les développeurs doivent isoler l’exécution ou ajouter des listes d’autorisation et de refus strictes avant d’envoyer des commandes au shell système.3 Le guide Claude Code d’Anthropic donne un exemple pratique à grande échelle : lors d’un travail réparti sur de nombreux fichiers, utilisez des restrictions d’outils autorisés afin que les exécutions sans surveillance ne puissent pas dépasser les besoins de la tâche.2

Une petite commande se restreint plus facilement :

Forme de commande Forme d’autorisation Forme de revue
check-citations content/blog/x.md Lire un fichier, réseau autorisé seulement pour les URL citées Relire les résultats de citation et la liste des sources.
translate-post --slug x --locale ja Écrire un chemin de cache, lire un article source Relire un seul diff de locale et le seuil de qualité.
deploy-site Identifiants larges, réseau, build, purge de cache Exige une confiance de niveau release et des seuils solides.

Les outils larges accumulent souvent des autorisations larges. Une commande générale « publish » peut toucher le contenu, les traductions, les lignes de base de données, la purge de cache, les journaux de déploiement et l’analytique. Parfois, la commande de release a sa place. Le modèle le plus sûr construit la release à partir de commandes plus petites, avec des seuils explicites entre elles, puis automatise la séquence seulement lorsque chaque étape dispose de preuves.

Le but n’est pas de ralentir le travail. Le but est de rendre l’autorité visible.

Les tests doivent tenir dans l’outil

La première section de bonnes pratiques d’Anthropic dit aux utilisateurs de donner à Claude un moyen de vérifier son travail : tests, captures d’écran, sorties attendues et contrôles par commande.2 Le petit logiciel rend ce conseil concret. Un petit outil peut porter un petit contrat de vérification.

Pour un logiciel construit par agent, le contrat devrait tenir sur un seul écran :

Inputs:
- one source path
- one output path
- one optional flag

Allowed effects:
- read source path
- write output path
- no network unless --verify-sources is present

Evidence:
- unit tests for parsing
- fixture test for output
- dry-run output for the exact file
- git diff limited to owned paths

Ce contrat compte parce que les agents peuvent satisfaire trop facilement les demandes vagues. « Améliore le pipeline » invite au remaniement architectural. « Ajoute un flag dry-run à cette commande précise et prouve que la sortie n’écrit aucun fichier » crée un chemin de preuves.

Les tests deviennent aussi plus rapides lorsque les outils restent petits. Les tests rapides changent le comportement de l’agent. Il les lance plus souvent, voit les échecs pendant que le code pertinent est encore dans le contexte, et corrige les causes profondes avant que la transcription ne dérive. Les tests lents poussent le modèle à deviner ou à raconter ce qu’il aurait exécuté.

Petit ne veut pas dire sous-construit

Le petit logiciel peut échouer de façon prévisible :

Mode d’échec Ce qui déraille Meilleur standard
Minimalisme jouet L’outil omet les erreurs, journaux, reprises ou retours en arrière Gardez le périmètre petit, pas la qualité.
Pureté factice Le système évite les bases de données alors que la persistance en exige une Utilisez les fichiers comme interface de l’agent et les bases de données comme couche de stockage.
Encombrement monofichier Un fichier grossit jusqu’à devenir impossible à raisonner Découpez par responsabilité tout en conservant une petite commande publique.
Théâtre des autorisations Une commande reste petite mais appelle un sous-processus large Encadrez l’effet réel, pas l’enveloppe.

Le badge de disquette mesure la taille. La sécurité des agents a besoin d’une autre mesure : un relecteur peut-il comprendre le comportement, le périmètre d’autorisation et le chemin de preuves avant d’approuver le changement ?

Cette question autorise un outil à dépasser 1,44 Mo. Elle refuse ce qui compte vraiment : le périmètre accidentel. Une application native sûre et ennuyeuse de 20 Mo peut battre un script de 200 Ko qui délègue à un installateur non relu. Le petit logiciel ne sert la sécurité que lorsque la retenue atteint le vrai chemin d’exécution.

Une grille d’évaluation de la petitesse pour le travail d’agent

Avant qu’un agent construise ou modifie un outil, notez le travail sur cinq dimensions. L’objectif n’est pas de punir les grands systèmes. Il est de trouver les surfaces qui doivent être décomposées avant que l’agent commence à écrire.

Dimension Bon signe Mauvais signe À corriger avant de coder
Empreinte de contexte L’agent peut lire la source, les tests et la documentation pertinents sans pression de compaction. L’agent a besoin de la moitié du dépôt en contexte pour comprendre un seul changement. Créer un point d’entrée, une limite de package ou un brief de tâche plus petit.
Empreinte d’autorisation La commande nécessite une seule classe d’autorité étroite. La commande nécessite ensemble l’accès au système de fichiers, au réseau, aux identifiants, au déploiement et au cache. Séparer lecture, écriture, publication et purge en commandes distinctes.
Empreinte de test La commande de vérification s’exécute en quelques secondes ou en quelques minutes. La seule preuve est une release complète, une QA manuelle ou « ça a l’air bon ». Ajouter des fixtures, un mode dry-run ou un contrôle ciblé de route.
Empreinte de diff Un relecteur peut expliquer le changement de comportement après une seule lecture du diff. Le changement mélange refactorisation, fonctionnalité, migration de données et collage de release. Découper en commits indépendamment réversibles.
Empreinte de retour en arrière Un commit ou un flag ramène le système au comportement précédent. Le retour en arrière exige une opération chirurgicale en base, des suppositions sur le cache ou des fichiers générés modifiés à la main. Ajouter un rollback de migration, un feature flag ou un chemin d’écriture réversible.

Une cellule rouge ne signifie pas que le travail doit s’arrêter. Elle signifie que l’agent a besoin d’une unité de travail plus petite. La sécurité progresse lorsque la forme de la tâche rend le bon comportement facile à prouver.

Le modèle pratique

Les systèmes construits par agent auxquels je fais confiance partagent une forme :

  1. Une commande étroite fait un seul travail.
  2. Des fichiers simples portent les entrées, sorties, journaux, plans et dossiers de revue.
  3. Les autorisations correspondent aux effets réels de la commande.
  4. Les tests sont assez rapides pour que l’agent les utilise pendant la session.
  5. Le diff reste assez petit pour être relu par un humain.
  6. Le chemin de release compose de petites commandes au lieu de cacher une autorité large derrière un seul bouton.

Le Manifeste no-build décrivait la même préférence côté pile web : moins de couches de build, moins d’artefacts générés et moins de distance entre la source et l’environnement d’exécution.9 La version sécurité des agents dit la même chose à un autre lecteur. Chaque couche supplémentaire donne à la machine un nouvel endroit où produire un travail plausible que l’humain ne peut pas vérifier rapidement.

Le petit logiciel transforme la retenue en infrastructure. Un module plus étroit améliore l’ajustement au contexte. Un fichier plus simple améliore l’auditabilité. Un test plus rapide améliore le retour d’information. Un jeu d’autorisations plus petit améliore le contrôle du rayon d’impact. Un diff plus petit améliore le jugement humain.

FAQ : petit logiciel et sécurité des agents

Le petit logiciel rend-il les agents de codage IA sûrs ?

Non. Le petit logiciel réduit la surface que les agents peuvent mal comprendre ou endommager. Les équipes ont toujours besoin d’environnements isolés, de listes d’autorisation et de refus, de tests, de revue de code, de frontières autour des identifiants et de seuils de release. Le petit logiciel rend ces contrôles plus faciles à appliquer et plus difficiles à contourner par accident.

Quelle taille doit avoir un outil exposé à un agent ?

La limite utile est la lisibilité en revue, pas le nombre d’octets. Un bon outil exposé à un agent a un seul travail, un petit contrat d’entrée/sortie, un profil d’autorisation clair, des tests rapides et un diff qu’un relecteur peut comprendre en une séance.

La mémoire d’un agent doit-elle utiliser des fichiers ou une base de données ?

Utilisez des fichiers pour l’interface quand l’agent doit inspecter, rechercher, comparer et écrire des artefacts. Utilisez une base de données quand le produit a besoin de concurrence, d’indexation, de contrôle d’accès, de durabilité ou d’état partagé entre utilisateurs. L’architecture la plus sûre sépare l’interface exposée à l’agent du substrat de stockage.7

Où se place MCP ?

MCP a sa place lorsque l’agent a besoin d’un pont typé vers des outils ou des données externes. MCP ne supprime pas le besoin de petites commandes, d’autorisations limitées et d’une autorisation au niveau de l’action. Le serveur doit encore décider si le sujet précis peut exécuter l’action précise.8

Conclusion

L’IA rend le code bon marché. Le code bon marché augmente la valeur du refus.

Le petit logiciel donne au refus une forme que la machine peut suivre : une commande, une sortie, une frontière d’autorisation, un chemin de test, un diff. La forme ne garantit pas la qualité. Elle rend toutefois le travail faible plus visible.

La disquette n’est plus la contrainte. L’inspectabilité l’est.


Références


  1. Matt Sephton, « Fits on a Floppy: A Manifesto for Small Software, » avril 2026. Le site définit le badge de 1,44 Mo et liste les valeurs du petit logiciel utilisées dans cet article : téléchargements rapides, lancement instantané, faible consommation de mémoire et de CPU, code natif, fonctionnalités ciblées et prise en charge des systèmes plus anciens. 

  2. Anthropic, « Best Practices for Claude Code, » documentation Claude Code, consultée le 18 mai 2026. L’article cite les sections sur la pression de la fenêtre de contexte, la vérification, les outils CLI, le travail réparti sur plusieurs fichiers et les restrictions d’outils autorisés. 

  3. OpenAI, « Local shell, » documentation API d’OpenAI, consultée le 18 mai 2026. La documentation décrit l’exécution de shell local pour les agents et recommande un environnement isolé, ou des listes d’autorisation et de refus strictes, avant de transmettre des commandes shell. 

  4. Computer History Museum, « Oral History of Malcolm Douglas (Doug) McIlroy, Part 2, » 2019. Le passage cité traite des racines de « faire une seule chose », des pipes et des flux de texte comme interfaces universelles lisibles par l’humain. 

  5. DuckDB Foundation, « A Plea for Lean Software, » entrée de bibliothèque pour l’article Computer de Niklaus Wirth publié en 1995. L’entrée renvoie vers le PDF original et établit le titre, l’auteur, la date et le lieu de publication. 

  6. Deepak Babu Piskala, « From Everything-is-a-File to Files-Are-All-You-Need: How Unix Philosophy Informs the Design of Agentic AI Systems, » arXiv:2601.11672, soumis le 16 janvier 2026. 

  7. Oracle Developers, « Comparing File Systems and Databases for Effective AI Agent Memory Management, » Oracle Developers Blog, consulté le 18 mai 2026. L’article distingue les interfaces de système de fichiers du stockage en base de données pour la mémoire des agents. 

  8. Blake Crosley, « Les outils MCP ont besoin d’une autorisation au niveau de l’action » blakecrosley.com, 18 mai 2026. 

  9. Blake Crosley, « Le manifeste no-build : livrer sans bundler » blakecrosley.com, 19 février 2026. 

Articles connexes

Le Pare-feu Anti-Fabrication : Quand Votre Agent Publie des Mensonges

Un agent autonome a publié des affirmations fabriquées sur 8 plateformes pendant 72 heures. La sécurité intégrée lors de…

16 min de lecture

La couche de nettoyage est le véritable marché des agents IA

Charlie Labs a pivoté de la construction d'agents au nettoyage derrière eux. Le marché des agents IA passe de la générat…

15 min de lecture

La boucle Ralph : comment je fais tourner des agents IA autonomes pendant la nuit

J'ai construit un système d'agents autonomes avec des hooks d'arrêt, des budgets de spawn et une mémoire par système de …

10 min de lecture