Au premier semestre 2026, si vous observez comment les agents de code sont construits, un schéma se retrouve partout : les modèles ne lisent et n'écrivent plus directement sur le système de fichiers hôte. Les équipes insèrent plutôt un système de fichiers virtuel (VFS) entre les deux — des outils sandbox de Cursor et les abstractions workspace de Claude Code aux sandboxes distantes sur OpenHands, E2B et Modal. Les agents parlent au disque via une couche API gouvernable.
C'est bien plus qu'un point de montage différent. Le VFS assume quatre rôles à la fois : isolation, budget de tokens, snapshots et changements auditables. Cet article explique pourquoi le VFS est devenu la norme en 2026, comment il s'associe à la couche mémoire, quelles implémentations les équipes choisissent et comment les développeurs iOS / cross-platform relient les sandboxes VFS aux environnements de build Mac cloud.
* D'après des expériences courantes sur monorepos et les bonnes pratiques des éditeurs ; varie selon la structure du repo.
Qu'est-ce qu'un système de fichiers virtuel agent ?
Les plugins IDE classiques laissent un LLM appeler read_file("/Users/...") — chemin égal permission. Le VFS agent insère une API contrôlée entre modèle et stockage :
ls/tree: résumés, pas des arbres complets dans le contextegrep/glob: recherche par motif avec correspondances ligne par ligneread: lectures par plage avec budgets de tokenswrite/patch: diffs structuréssnapshot/rollback: points de contrôle au niveau tâche
Le modèle voit toujours un arbre de fichiers ; la plateforme peut mesurer, limiter, auditer et refuser des chemins à chaque I/O. C'est la différence avec « cloner le repo dans un conteneur et lancer bash ».
Pourquoi l'essor en 2026
Trois pressions ont convergé et ont transformé le VFS d'optimisation en architecture par défaut.
Sécurité : les agents ne doivent pas posséder la machine
Quand les agents exécutent du shell, modifient la config et installent des paquets, une injection de prompt peut équivaut à une RCE. Après des incidents médiatisés du type « l'agent a effacé mon repo » et « modification accidentelle de ~/.ssh » en 2025–2026, les produits ont basculé par défaut vers des sandboxes :
- Allowlists de chemins : racine du projet et sous-répertoires
/tmpuniquement - Contrôle de l'egress réseau : npm/pip via proxy ; bloquer curl interne arbitraire
- Isolation des identifiants : les clés API restent hors du VFS ; la passerelle les injecte
Le VFS est le point d'application unique — plus propre que de disperser des if path.startswith dans chaque outil.
Tokens : le contexte n'est pas un disque gratuit
Comme nous l'avons montré dans le coût mensuel réel de la programmation IA, injecter un monorepo de 100 000 lignes dans le prompt peut coûter des dollars par appel. Le VFS transforme « posséder le code » en « récupérer le code à la demande » :
grep "class FooBar"pour localiserread path:42-80pour la fonctionpatchne renvoie que le diff
Cela complète le choix entre DeepSeek, Claude Code et Cursor : peut tenir ≠ doit tenir. Le VFS, c'est l'économie des tokens au niveau produit.
Snapshots : rollback et reproductibilité
Après dix modifications de fichiers le build casse — les utilisateurs veulent « revenir cinq minutes en arrière ». Les snapshots VFS avant chaque write (overlay FS, git stash, etc.) versionnent l'état de la tâche. C'est crucial pour :
- Les sessions agent cloud partagées en équipe
- Les bots CI qui corrigent des PR sans surveillance
- Les entreprises qui doivent montrer aux équipes compliance exactement ce que le modèle a modifié
La mémoire retient les préférences ; les snapshots VFS retiennent ce qui a changé pendant cette exécution — des horizons temporels différents.
Qui utilise quoi
| Produit | Forme du VFS | Notes |
|---|---|---|
| Cursor | Sandbox locale + outils read/grep | Intégration IDE profonde ; .cursorignore comme policy |
| Claude Code | Workspace + approbations | Human-in-the-loop pour les opérations risquées |
| OpenHands | Sandbox Docker + montage repo | Open source, adapté au self-host |
| E2B / Modal | VFS distant au niveau VM | Forte isolation ; compromis de cold start |
| LangGraph / custom | Abstraction de store | Flexible ; vous gérez perf grep + snapshots |
Fil conducteur : les modèles ne détiennent jamais de syscalls open() bruts — seulement des appels d'outils schématisés. C'est aussi pourquoi les Claude Code Skills peuvent livrer des packs de capacités en toute sécurité : les Skills déclarent chemins/outils autorisés ; le VFS les applique.
VFS vs couche mémoire
Ne confondez pas le VFS avec Mem0, Zep ou TencentDB Agent Memory :
| Dimension | VFS | Mémoire |
|---|---|---|
| Horizon | Workspace d'une tâche / session | Faits et préférences inter-sessions |
| Stocke | Arbre de code, diffs, tampons de logs de build | Contraintes, décisions, résumés d'échecs |
| APIs | read / grep / patch | add_memory / search |
| Mode d'échec | Le rollback snapshot perd les edits | Les faits obsolètes nécessitent une invalidation temporelle |
Les stacks matures utilisent trois couches : VFS pour « ce qu'on édite maintenant », mémoire pour « ce que cet utilisateur veut toujours », vrai macOS pour « est-ce que ça compile et ship ».
Comparaison des implémentations
Choix rapides
- Dev local solo → VFS intégré IDE (Cursor / Claude Code)
- Agents d'équipe partagés → OpenHands ou E2B par session
- Compliance → logs d'audit VFS + mémoire temporelle Zep
- Sorties d'outils massives (logs
xcodebuild) → ring buffer VFS ; résumé vers la mémoire
Si vous construisez le VFS vous-même, priorisez grep <2s sur 100k fichiers et patches atomiques. Beaucoup d'équipes utilisent des git worktrees en dessous avec le VFS comme wrapper policy + tokens — un MVP pragmatique.
Un parcours pratique pour les devs iOS / cross-platform
Les équipes Flutter / React Native supposent souvent que si flutter build passe dans une sandbox VFS, elles sont prêtes à shipper. En pratique :
- Sandbox VFS : l'agent édite Dart/Swift, lance les tests unitaires, rédige le texte de PR
- Mémoire : UDID de l'appareil de test, TestFlight uniquement, profil expiré la dernière fois
- Mac cloud : vrai
xcodebuild, archive, upload App Store Connect
Voir RN / Flutter debug appareil iOS et App Store. La toolchain Apple est liée au matériel et à macOS. Le VFS résout les edits de code en sécurité ; Zilmac Mac cloud résout les builds qui compilent et shippent dans l'environnement Apple.
Pipeline recommandé : terminer la branche feature dans une sandbox VFS locale ou cloud → la mémoire enregistre les contraintes de build → webhook déclenche la CI Mac cloud → les résumés de logs d'échec s'écrivent dans la mémoire pour la prochaine session agent.
Recommandations et anti-patterns
Pratiques recommandées
- Policy de chemins deny-all par défaut ; autoriser les répertoires explicitement
- Déverser les sorties d'outils au-delà de N Ko vers des fichiers VFS ; ne garder que résumé + chemin dans le contexte
- En fin de tâche, synchroniser les diffs clés non mergés vers la mémoire ou une issue
- Garder builds et signature physiquement séparés du VFS pour que les agents ne touchent jamais aux profils de provisioning
Anti-patterns
- ❌ Utiliser le VFS comme base JSON pour des données métier — utiliser la mémoire ou une vraie DB
- ❌ Laisser les agents
readtoutnode_modules— un trou noir de tokens - ❌ Wrappers minces de chemins hôte sans snapshots — le rollback devient impossible
- ❌ S'attendre à ce que le VFS remplace Xcode — signature et debug appareil nécessitent toujours macOS
FAQ
En quoi le VFS agent diffère-t-il des montages Docker ?
Docker conserve la sémantique de chemins réels. Le VFS agent ajoute des APIs agent plus budgets de tokens, snapshots et allowlists — c'est l'abstraction, pas le conteneur.
Ai-je besoin du VFS si j'ai la mémoire ?
Oui — rôles différents. La mémoire gère préférences inter-sessions et historique de tâches ; le VFS gère lectures/écritures de l'arbre de code et tampons de sortie d'outils dans une seule tâche. Voir le tableau ci-dessus.
Le VFS peut-il remplacer mon répertoire de projet Xcode ?
Pas pour la signature et les builds, mais il améliore grandement la sécurité quand les agents éditent le code. Combo pragmatique : sandbox VFS + builds Mac cloud.
Comment choisir un VFS pour un agent custom ?
Prototyper avec git worktree ; en production choisir selon les besoins d'isolation — OpenHands, E2B ou une passerelle custom. Benchmarker perf grep, snapshots et isolation multi-tenant.
VFS pour éditer en sécurité, Mac cloud pour des builds qui shippent
Les systèmes de fichiers virtuels permettent aux agents d'éditer Swift et Flutter en sécurité ; la signature TestFlight et xcodebuild nécessitent toujours macOS. Zilmac s'associe à toute stack VFS + mémoire — edits sandboxés, builds cloud Apple Silicon.
Exécutez toute la toolchain Apple sans Mac physique. — Voir les offres Cloud Mac