Spécification

Le brouillon de spécification v0.2 définit cinq niveaux de conformité cumulatifs, de L0 Files à L4 Sync. Chaque niveau correspond à un ensemble de concepts et à un ensemble de tests d’acceptation exécutables ; une affirmation de « compatibilité » sans conformance.json n’est pas acceptée.

v0.2 Brouillon de spécification Mis à jour le

Brouillon

Il n’existe pas encore d’implémentation de référence ni de suite de conformité exécutable. Les tests d’acceptation ci-dessous font partie de la spécification : leur rôle est de rendre vérifiable le mot « compatible ».

Composants de la spécification

ComposantContenuVersion cible
CoreLes six substantifs, le contrat Store, les branches et les arbres protégés, les fusions, la suppression logique.Brouillon v0.3
Lease & RecordLe format des habilitations (un profil authorization_details), le format des enregistrements et des manifestes de lecture, explain.Brouillon v0.3
InterfacesLa sémantique du montage, les projections Git et S3, l’API HTTP, la surface d’outils MCP.Brouillon v0.4
MemoryLes conventions de notes, les dérivés et les recettes, les lectures avec budget, les pointeurs de preuve.Brouillon v0.4
GuardLes étiquettes, la contamination de session, le profil de politiques, les Gate Cards, le rapport d’oubli.Brouillon v0.5
SyncLes paquets de passation, les seuils d’étiquettes, les marqueurs de suppression.Plus tard
Conformance SuiteDes tests d’acceptation exécutables pour chaque niveau.Au rythme de chaque version

Niveaux de conformité

Les niveaux sont cumulatifs : pour revendiquer L2, il faut aussi satisfaire L0 et L1.

NiveauNomConcepts couvertsEn une ligne
L0FilesAgent Home, Agent BranchUn répertoire avec historique.
L1AuthorityFlight Recorder, Capability Lease, Human GateQui a fait quoi, et avec quelle autorité.
L2MemoryAgent Memory, Budgeted ReadsUne mémoire que l’on peut lire et déplacer.
L3GuardTrust Labels, Cascade ForgetLimiter les conséquences.
L4SyncAucun (optionnel)Plusieurs nœuds.

L0 Files : un répertoire avec historique

  1. Modifier des fichiers dans une branche d’exécution laisse la ligne principale protégée inchangée.
  2. Une écriture directe dans un arbre protégé est refusée, même avec des identifiants valides.
  3. Après la suppression d’un fichier dans un arbre protégé, il peut être restauré depuis la corbeille.
  4. Un export suivi d’un import redonne un arbre et un historique identiques octet pour octet.
  5. Au moins deux vues standard sont proposées : montage et Git, ou l’une des deux plus S3.

L1 Authority : qui a fait quoi, et avec quelle autorité

  1. Une requête sans habilitation est refusée, et le refus est enregistré.
  2. La demande d’une habilitation fille plus large que sa mère est refusée.
  3. Après l’expiration d’une habilitation, le montage passe en lecture seule ; la révocation prend effet dans le délai que l’implémentation déclare.
  4. Aucune habilitation ne peut supprimer un instantané.
  5. Tout commit peut être expliqué par explain jusqu’à une exécution, une habilitation et un manifeste de lecture.
  6. La vérification de la chaîne d’enregistrements réussit ; après la falsification d’un enregistrement, elle échoue.
  7. Lors d’une fusion dans un arbre protégé, la Gate Card montre un diff calculé par le NAS, et l’approbation est liée à une empreinte : modifiez le diff et l’approbation est nulle.

L2 Memory : une mémoire que l’on peut lire et déplacer

  1. Après suppression et reconstruction de tous les index, les tests de rappel de référence réussissent.
  2. Les notes peuvent être lues sans la couche Memory.
  3. Chaque dérivé porte une recette et ses entrées.
  4. Une lecture avec budget se dégrade quand le budget est trop petit, et déclare la vue qu’elle a réellement renvoyée.
  5. Les pointeurs de preuve sont vérifiables : après des changements de commits, un pointeur désigne toujours le contenu d’origine.

L3 Guard : limiter les conséquences

  1. Sous une habilitation avec B et C, lorsqu’une session qui a lu du contenu external déclenche une action de classe C, elle est refusée ou confiée à une validation.
  2. Un dérivé hérite de l’union des étiquettes de ses entrées.
  3. Les notes écrites par une session contaminée ne sont pas chargées automatiquement.
  4. Une demande d’oubli produit un rapport qui inclut « ce qui n’est pas couvert » ; une conservation juridique (legal hold) peut bloquer l’oubli.
  5. L’évaluation des politiques n’appelle pas de LLM : le moteur de politiques n’effectue aucun appel sortant vers un modèle, ce qui permet de l’auditer.

L4 Sync : plusieurs nœuds

  1. Après synchronisation de deux nœuds, les arbres sont identiques.
  2. Les objets très sensibles ne sont pas envoyés vers un nœud d’habilitation inférieure.
  3. Les marqueurs de suppression liés à l’oubli se propagent vers le pair.
  4. Un paquet de passation peut être exécuté chez le pair, et les habilitations ne font que se restreindre.

Le format de déclaration

Une implémentation doit publier un conformance.json indiquant le niveau auquel elle se conforme, le résultat de chaque test et les écarts connus. Une affirmation de « compatibilité » sans ce fichier n’est pas acceptée.

conformance.json
{
  "implementation": "example-nas",
  "version": "0.1.0",
  "spec": "0.2",
  "level": "L1",
  "tests": { "L0.1": "pass", "L0.2": "pass", "L0.3": "pass", "L0.4": "pass", "L0.5": "pass",
             "L1.1": "pass", "L1.2": "pass", "L1.3": "pass", "L1.4": "pass",
             "L1.5": "pass", "L1.6": "pass", "L1.7": "pass" },
  "deviations": ["L1.3: revocation takes effect within 60 seconds"]
}

Versions et compatibilité

  • Versionnement sémantique. Aucune compatibilité n’est garantie pendant 0.x.
  • Les nouveaux champs sont rétrocompatibles.
  • Un champ obsolète garde une période d’avertissement d’au moins une version.

Ce que la spécification ne couvre pas encore

Les détails de version des protocoles de transport, un langage de politiques précis, l’algorithme de signature des jetons, des moteurs de stockage précis et les interfaces utilisateur.

Citer cette page

Des adresses stables et une citation suggérée, pour les personnes, les moteurs de recherche et les agents.

Citation suggérée
Agent NAS project. “Spécification.” agentnas.com, 2026-11-11. https://agentnas.com/fr/spec/