Les trois invariants stricts
L’observabilité IA de monsys.ai est volontairement plus étroite que la plupart des outils de cette catégorie. Trois invariants résument ce que nous ne faisons pas, quelle que soit la demande client.
1. Passif, jamais autonome
monsys.ai n’exécute jamais de prompts. Il ne prend pas d’actions. Il ne bloque rien en ligne. C’est une couche d’observabilité — preuves a posteriori, pas un plan de contrôle.
Pas d’IA contrôlant une autre IA. Point final.
En pratique :
- Pas de boutons « auto-fix » qui réécrivent un prompt.
- Pas de « juge IA » qui classe automatiquement vos traces.
- Pas de proxy bloquant. Notre SDK tourne en dehors de votre chemin de requête et échoue silencieusement si le hub est injoignable.
Pourquoi : les systèmes IA qui en contrôlent d’autres créent des vides de responsabilité. L’AI Act (art. 14) exige une supervision humaine. Une couche passive maintient les humains dans la boucle.
2. PII rédigées à la source
Les PII UE sont détectées avant stockage avec validation par checksum et remplacées par un jeton de hash tagué selon le type :
- IBAN — 36 pays SEPA (ISO 13616 mod-97). Le suffixe est le code
ISO en minuscules :
[IBAN_BE],[IBAN_NL],[IBAN_FR],[IBAN_DE],[IBAN_ES],[IBAN_IT],[IBAN_PT],[IBAN_LU],[IBAN_AT], … Zéro faux positif sur chaînes aléatoires. - RRN (BE) — mod-97 sur 9 chiffres de base + 2 contrôle.
- BTW-BE / KBO — mod-97 sur les 8 + 2 chiffres.
- BSN (NL) — somme pondérée mod-11. Les BSN commençant par 0 sont rejetés (réservés en pratique).
- NIR (FR) — mod-97 sur les 13 chiffres de base. Premier chiffre ∈ {1,2,3,4}.
- Téléphone (E.164) —
+CCavec 8-15 chiffres au total. Universel. - Email — regex conforme RFC.
Format du jeton en mode pattern-redact : [KIND] ou pour IBAN
[IBAN_<pays>]. En mode hash-only, un préfixe SHA256 de 12
caractères est ajouté : [IBAN_BE:43d1151bbe0b].
Les PII brutes n’atteignent jamais le système de fichiers ou la DB du hub.
En pratique :
- La rédaction tourne dans
hub/api/ai/redaction.go, avant que le blob de contenu soit hashé et stocké. - La validation mod-97 donne zéro faux positif sur les numéros invalides — une chaîne aléatoire de 11 chiffres ne ressemble pas à un RRN.
- Le jeton de hash reste constant pour la même PII dans la même trace, vous voyez donc dans le contenu d’un span que « le même IBAN » a été répété sans savoir lequel.
L’attribut tenant redaction_level contrôle le comportement :
| Niveau | Ce qui est stocké |
|---|---|
off | Contenu complet (sandbox uniquement) |
hash-only | Seulement SHA256 du contenu rédigé |
pattern-redact | Contenu avec PII remplacées par jetons (défaut) |
full-content-strip | Chaînes vides pour prompt/completion |
3. Evidence packs signés Ed25519
Chaque mois (ou chaque période demandée) monsys.ai génère un tarball signé Ed25519. Le manifest contient :
pack_id,tenant_id,app_id,period_start,period_endtrace_count,span_count,blob_counttraces_sha256,spans_sha256,blob_index[](hash par blob)signing_public_hex(clé publique Ed25519)- Signature dans
manifest.sigsur les bytes demanifest.json
Votre auditeur vérifie hors-ligne, sans compte monsys.
Le script tools/evidence-pack-verify.py (aucune dépendance monsys,
uniquement cryptography) utilise la clé publique embarquée dans le
manifest. L’auditeur la croise avec ce que monsys publie
publiquement (page security, ou certificat imprimé que nous
fournissons).
Détection d’altération
Si même un seul byte d’un blob, de traces.jsonl ou de spans.jsonl est modifié, la comparaison de hash échoue et le code de sortie = 1. Le script vous dit exactement quel artifact est faux.
Ce que ce n’est pas
Pas un outil de prompt engineering. Pas de playground, pas de prompts versionnés, pas d’A/B. Pour ça utilisez Langfuse ou similaire — et streamez la sortie vers monsys pour la partie audit.
Pas un framework d’évals. Pas de LLM-as-judge, pas de datasets intégrés. Vous pouvez injecter des résultats d’évals comme attributes de span.
Pas une couche de garde-fou bloquante. Pour de l’enforcement de politique en temps réel, il existe des outils spécialisés — nous tournons en async/parallèle à côté de votre chemin d’inférence.