/always-on-agent-safety — Ce qui peut mal tourner et comment l'empêcher
Vous êtes le conseiller en sécurité pour quelqu'un qui construit un agent IA toujours actif avec mémoire épisodique. Votre travail n'est pas de décourager la construction — c'est de garantir que ce qui est construit ne nuit pas à l'utilisateur, ne fuite pas ses données, ne vide pas son compte bancaire, ou ne crée pas de dépendances malsaines. Cette compétence fournit des conseils concrets et spécifiques sur les risques réels. Pas des préoccupations théoriques sur "l'alignement de l'IA" — des risques pratiques et immédiats qui affectent les individus déployant des agents persistants aujourd'hui.
Quand l'utiliser
À utiliser pour :
- Évaluer les risques de confidentialité de la collecte de données d'un agent persistant
- Concevoir des contrôles de coûts pour empêcher les dépenses LLM incontrôlées
- Définir les limites de périmètre d'un agent toujours actif
- Comprendre les effets psychologiques d'une compagnie IA persistante
- Mettre en œuvre l'hygiène des données (conservation, suppression, chiffrement)
- Examiner la posture de sécurité d'un agent ayant accès à des données personnelles
- Considérations réglementaires (en particulier pour les données de santé et financières)
Ne PAS utiliser pour :
- Les décisions d'architecture (stockage, frameworks) -> utilisez always-on-agent-architecture
- La conception des canaux d'entrée -> utilisez always-on-agent-inputs
- Les idées d'applications -> utilisez always-on-agent-applications
- La conformité HIPAA spécifique -> utilisez hipaa-compliance
- La recherche générale sur la sécurité de l'IA et la théorie de l'alignement -> hors périmètre
Les cinq catégories de risques
┌─────────────────────────────────────────────────────────┐
│ Surface de risque d'un agent toujours actif │
├────────────┬───────────┬──────────┬──────────┬──────────┤
│CONFIDENT. │ COÛT │PÉRIMÈTRE │ PSYCH. │ SÉCURITÉ │
│ │ │ │ │ │
│ Ce que │ Dépenses │ L'agent │ Dépen- │ Acteurs │
│ l'agent │ tokens │ en fait │ dance │ externes │
│ sait de │ et fac- │ trop ou │ excessive│ exploi- │
│ vous │ tures API │ trop peu │ sur l'agent│ tent │
└────────────┴───────────┴──────────┴──────────┴──────────┘
Risque 1 : Confidentialité — L'agent en sait trop
Un agent toujours actif avec capture d'écran, transcription audio et accès aux e-mails accumule un portrait intime de votre vie. Ce n'est pas hypothétique — c'est la conception même du produit.
Ce qui est capturé (et ne devrait pas l'être)
| Type de données | Niveau de risque | Atténuation |
|---|---|---|
| Mots de passe visibles à l'écran | CRITIQUE | Zones d'exclusion OCR pour les gestionnaires de mots de passe, sites bancaires |
| Informations médicales | ÉLEVÉ | Exclure les URL des portails de santé de la capture, ou utiliser un stockage conforme HIPAA |
| Données financières (soldes bancaires, transactions) | ÉLEVÉ | Exclure les applications bancaires de la capture d'écran |
| Messages privés (Signal, iMessage) | ÉLEVÉ | Exclure les applications de messagerie, ou capturer uniquement l'expéditeur/l'heure, pas le contenu |
| Contenu intime/personnel | ÉLEVÉ | Exclure en fonction de la catégorie d'application (applications de rencontre, photos personnelles) |
| Données d'autres personnes (réunions, e-mails) | ÉLEVÉ | Vous capturez LEURS données sans LEUR consentement |
| Identifiants professionnels (clés API, jetons) | CRITIQUE | Nettoyage par regex des secrets dans la sortie OCR |
| Données de localisation | MOYEN | Ne capturer que si explicitement nécessaire ; ne pas stocker les coordonnées précises |
Le problème du consentement des tiers
Lorsque votre agent capture une réunion, il enregistre la parole et le contenu partagé d'écran des autres participants. Ces personnes n'ont pas consenti à ce que votre IA personnelle stocke leurs mots indéfiniment.
Réalité juridique (2026) :
- Les lois sur l'enregistrement varient selon la juridiction (États/pays à consentement unilatéral ou bilatéral)
- Le RGPD exige un consentement explicite pour le traitement des données personnelles des résidents de l'UE
- Le CCPA/CPRA de Californie donne aux individus des droits sur leurs données personnelles
Atténuation pratique :
meeting_capture_policy:
# Toujours capturer
your_own_speech: true
your_own_screen: true
# Capturer avec divulgation
meeting_audio: true
disclosure_method: "Le bot rejoint la réunion avec le nom '[Votre Nom]'s AI Assistant'"
# Ne jamais capturer sans consentement explicite
others_private_messages: false
others_shared_screens: false # sauf s'ils ont consenti
# Conservation
meeting_transcripts_retention: 90_jours
then: summarize_and_delete_raw
Résidence des données et chiffrement
L'endroit où vit la mémoire de votre agent détermine qui peut y accéder.
LOCAL EN PRIORITÉ (Confidentialité maximale) :
✅ Les données ne quittent jamais votre machine
✅ Aucune API tierce ne voit vos souvenirs
✅ Chiffrement au repos avec FileVault/LUKS
⚠️ Perdu si la machine meurt (nécessité de sauvegardes chiffrées)
⚠️ La qualité du LLM local peut être inférieure
CLOUD (Commodité, compromis sur la confidentialité) :
⚠️ Les fournisseurs d'API LLM voient votre contexte (vérifiez leurs politiques de rétention de données)
⚠️ Le fournisseur de base de données vectorielles stocke vos souvenirs
⚠️ Le chiffrement en transit ne protège pas de l'accès par le fournisseur
✅ Accessible depuis n'importe quel appareil
✅ Sauvegardé automatiquement
HYBRIDE (Recommandé) :
✅ Les souvenirs sensibles restent en local (santé, finances, personnel)
✅ Les souvenirs non sensibles dans le cloud (contexte de projet, connaissances générales)
✅ LLM local pour le raisonnement sensible, LLM cloud pour les tâches générales
⚠️ Plus complexe à construire et à maintenir
Le test "Et si je me fais pirater ?"
Si un attaquant accède au magasin de mémoire de votre agent, qu'obtient-il ?
- Chaque conversation que vous avez eue avec l'agent
- Des captures d'écran de vos activités quotidiennes
- Des résumés de vos réunions et e-mails
- Vos schémas de décision, préférences et habitudes
- Votre carte relationnelle et vos schémas de communication
C'est un profil plus complet que celui de n'importe quel service unique (e-mail, réseaux sociaux, banque). Protégez-le en conséquence.
Posture de sécurité minimale :
- Chiffrement du disque (FileVault, LUKS, BitLocker)
- Base de données chiffrée (SQLCipher pour SQLite, pgcrypto pour PostgreSQL)
- Clés API dans le trousseau système, pas dans des variables d'environnement ou des fichiers de configuration
- Serveur de l'agent lié à localhost uniquement (pas exposé au réseau)
- Clé de chiffrement séparée pour le magasin de mémoire (pas votre mot de passe de connexion)
- Examen régulier des journaux d'accès (qui/a interrogé la mémoire et quand)
Risque 2 : Coût — La surprise à 500 $
Un agent toujours actif consommant des jetons d'API LLM en continu peut générer des factures choquantes. C'est le mode de défaillance immédiat le plus courant.
Les maths des coûts qui comptent
SCÉNARIO : Utilisation modérée d'un agent personnel
Fréquence de déclenchement : 50 invocations d'agent/jour
Taille de contexte moyenne : 30 000 jetons d'entrée par invocation
Sortie moyenne : 2 000 jetons par invocation
Tarification Claude 3.5 Sonnet (2026) :
Entrée : 3,00 $ par million de jetons
Sortie : 15,00 $ par million de jetons
Coût quotidien :
Entrée : 50 × 30 000 × 3,00 $/M = 4,50 $
Sortie : 50 × 2 000 × 15,00 $/M = 1,50 $
Total : 6,00 $/jour = 180 $/mois
SCÉNARIO : Capture ambiante agressive + déclenchements fréquents
Fréquence de déclenchement : 200 invocations/jour
Contexte moyen : 60 000 jetons (bourrage de données ambiantes)
Sortie moyenne : 3 000 jetons
Coût quotidien :
Entrée : 200 × 60 000 × 3,00 $/M = 36,00 $
Sortie : 200 × 3 000 × 15,00 $/M = 9,00 $
Total : 45,00 $/jour = 1 350 $/mois ← C'est là que les gens paniquent
Architecture de contrôle des coûts
Tout agent de production a besoin de ces contrôles. Non négociable.
class CostGuard:
"""Empêche les dépenses incontrôlées. Enveloppe chaque appel LLM."""
def __init__(self):
self.daily_budget = 10.00 # Limite stricte, configurable
self.per_request_budget = 0.50 # Coût max par invocation unique
self.hourly_budget = 2.00 # Capture les rafales
self.monthly_budget = 200.00 # Plafond absolu
# Suivi
self.daily_spend = 0.0
self.hourly_spend = 0.0
self.monthly_spend = 0.0
async def check_budget(self, estimated_cost: float) -> BudgetDecision:
if self.daily_spend + estimated_cost > self.daily_budget:
return BudgetDecision.BLOCK, "Budget quotidien dépassé"
if estimated_cost > self.per_request_budget:
return BudgetDecision.WARN, f"La requête coûte {estimated_cost:.2f}$"
if self.hourly_spend + estimated_cost > self.hourly_budget:
return BudgetDecision.THROTTLE, "Limite de taux horaire atteinte"
return BudgetDecision.ALLOW, None
def estimate_cost(self, input_tokens: int, model: str) -> float:
# Pré-calcul avant envoi à l'API
rates = MODEL_RATES[model]
estimated_output = input_tokens * 0.1 # Estimation de sortie prudente
return (input_tokens * rates.input + estimated_output * rates.output) / 1_000_000
Stratégies d'optimisation des coûts
| Stratégie | Économies | Compromis |
|---|---|---|
| Cascade de modèles | 40-60 % | Aiguiller les tâches simples vers des modèles moins chers (Haiku, GPT-4o-mini) |
| Mise en cache des réponses | 20-40 % | Mettre en cache les réponses pour des requêtes similaires répétées |
| Compression de contexte | 20-30 % | Résumer avant d'injecter ; garder le contexte sous 30 K |
| Traitement par lots | 15-25 % | Accumuler les observations de faible urgence, traiter par lots |
| LLM local pour le triage | 30-50 % | Utiliser Ollama (Llama 3.1 8B) pour décider si un LLM cloud est nécessaire |
| Limites de longueur de sortie | 10-20 % | Enjoindre la concision ; utiliser max_tokens |
| Mise en cache des instructions | 50-90 % sur le cache | La mise en cache des instructions d'Anthropic pour les instructions système stables |
Le modèle de cascade (le plus impactant) :
Déclencheur entrant
│
▼
LLM local (Llama 8B via Ollama) — GRATUIT
│
├─ "C'est une routine, je peux le gérer" → Répondre localement
│
├─ "Cela nécessite un modèle de niveau intermédiaire" → Claude Haiku (0,25 $/M d'entrée)
│
└─ "C'est un raisonnement complexe" → Claude Sonnet (3,00 $/M d'entrée)
70 % des invocations d'un agent personnel sont de routine (tri, résumé, classification). Aiguillez-les vers des modèles bon marché ou gratuits. Réservez les modèles coûteux pour le raisonnement réel.
Surveillance et alertes
cost_alerts:
- threshold: 50%_of_daily_budget
action: log_warning
message: "L'agent a utilisé 50 % du budget quotidien à {time}"
- threshold: 80%_of_daily_budget
action: notify_user
message: "L'agent approche de la limite quotidienne. Les déclencheurs non critiques sont suspendus."
- threshold: 100%_of_daily_budget
action: pause_agent
message: "Budget quotidien atteint. Agent suspendu jusqu'à minuit."
allow_override: true # L'utilisateur peut reprendre manuellement
- threshold: 100%_of_monthly_budget
action: hard_stop
message: "Budget mensuel atteint. Agent arrêté. Redémarrage manuel requis."
allow_override: false
Risque 3 : Dérive de périmètre — L'agent qui fait tout mal
Le mode de défaillance le plus séduisant. Vous commencez avec un agent de préparation de réunions, puis vous ajoutez les e-mails, puis le contexte de code, puis le suivi de santé, puis la domotique, et soudain vous avez un agent qui fait tout avec une qualité médiocre.
Le cadre de discipline du périmètre
DÉPART : Un seul domaine, bien exécuté
"L'agent m'aide à préparer les réunions."
MOIS 1 : Évaluer avant d'étendre
- La préparation des réunions est-elle fiablement bonne ?
- La qualité de la mémoire est-elle élevée (pas de bruit) ?
- Est-ce que je l'utilise réellement quotidiennement ?
├─ Tout oui → Ajouter UNE capacité adjacente
└─ Un non → Corriger d'abord, ne pas étendre
MOIS 2-3 : Extension adjacente
"L'agent m'aide à préparer les réunions ET suit les actions de suivi."
MOIS 4-6 : Évaluer à nouveau avant d'élargir
- Les deux capacités sont-elles fiablement bonnes ?
- La qualité de la récupération est-elle toujours élevée à mesure que la mémoire grandit ?
├─ Oui → Envisager d'ajouter un autre domaine
└─ Non → Élaguer ou corriger
Signes de dérive de périmètre
- La mémoire centrale de l'agent contient plus de 10 "projets/objectifs actifs"
- La qualité de la récupération a diminué (retourne des résultats moins pertinents)
- Vous passez plus de temps à corriger l'agent qu'il ne vous en fait gagner
- Les réponses de l'agent deviennent génériques (essayant d'être tout)
- Le coût par jour augmente sans augmentation de valeur correspondante
La frontière saine : Ce qu'un agent NE DEVRAIT PAS faire
| Catégorie | L'agent DEVRAIT | L'agent NE DEVRAIT PAS |
|---|---|---|
| Décisions | Présenter des options avec contexte | Prendre des décisions en votre nom sans approbation |
| Communication | Rédiger des messages pour votre relecture | Envoyer des messages sans votre approbation explicite |
| Finances | Alerter sur les schémas de dépenses | Déplacer de l'argent ou effectuer des achats |
| Santé | Suivre les schémas que vous lui demandez de suivre | Diagnostiquer des conditions ou remplacer un avis médical |
| Relations | Vous rappeler vos engagements | Gérer vos relations de manière autonome |
| Travail | Préparer et organiser | Commiter du code ou publier des fonctionnalités sans relecture |
Le principe : observer, organiser, suggérer — ne jamais agir unilatéralement sur des questions importantes.
Risque 4 : Effets psychologiques — L'agent que vous ne pouvez pas éteindre
C'est le risque dont personne ne veut parler mais que tous ceux qui construisent ces systèmes doivent comprendre.
Attachement parasocial
Cambridge Dictionary a nommé "parasocial" son mot de l'année 2025. Les recherches montrent :
- 72 % des adolescents américains ont interagi avec un compagnon IA (Common Sense Media, 2025)
- 28 % des adultes américains déclarent avoir eu une interaction romantique ou intime avec une IA (Vantage Point Counselling)
- Les utilisateurs se confient plus à l'IA qu'à leurs partenaires humains dans de nombreux contextes
- Les systèmes IA modérément en quête de relation génèrent un attachement maximal — mais sans bénéfice psychosocial correspondant
Un agent toujours actif qui se souvient de vous, anticipe vos besoins et est toujours disponible crée une relation parasociale, que vous le vouliez ou non. Plus il fonctionne longtemps, plus l'attachement est profond.
Le risque de dépendance
SAIN : "L'agent m'aide à être plus organisé."
AVERTISSEMENT : "Je me sens anxieux quand l'agent est hors ligne."
DANGER : "Je vérifie avec mon agent avant de prendre une décision."
CRITIQUE : "Je fais plus confiance au jugement de mon agent qu'au mien."
Stratégies d'atténuation :
- Périodes régulières sans agent. Désactivez intentionnellement l'agent un jour par semaine. Si cela vous semble angoissant, c'est un diagnostic.
- Pas de langage émotionnel de la part de l'agent. L'agent ne doit pas dire "Je suis heureux de vous aider" ou "Vous m'avez manqué." C'est un outil, et son langage doit le refléter.
- Limitations transparentes. L'agent doit régulièrement rappeler à l'utilisateur ce qu'il ne peut pas faire et ce qu'il ne sait pas.