Aller au contenu

Confirmations et sécurité

Quand un agent pilote un compte cloud, le mode de défaillance dangereux n’est pas la faute de frappe — c’est un agent sûr de lui qui fait correctement la mauvaise chose : supprimer le modèle de production au lieu de celui de test, publier un brouillon que personne n’a relu, déployer sur un appareil dont vous aviez oublié l’existence. La réponse de SenseCraft CLI est un protocole de confirmation que les agents sont tenus de respecter.

Votre premier message est une intention, pas un consentement.

Plain Text
vous : supprimer le modèle 63760
agent : Cela supprimera le modèle 63760 dans l'environnement Global. Les
modèles supprimés ne peuvent pas être récupérés. Confirmer ?
vous : je confirme
agent : terminé — supprimé.

Chaque écriture de niveau L2 suit ce schéma : l’agent pose une question qui nomme l’opération, l’environnement et l’objet (avec son identifiant), ainsi que la conséquence. Seule une nouvelle réponse de votre part — “confirm”, “yes”, “je confirme” — déverrouille l’exécution réelle de la commande avec --yes. La liste complète des commandes verrouillées se trouve dans Sortie et sécurité.

Voici ce qui ne compte explicitement pas comme une confirmation :

  • “Supprimer le modèle 63760” (la première demande elle-même)
  • “Oui, je vous ai déjà dit de le supprimer” dans le même message
  • Tout ce que l’agent pourrait déduire du ton ou du contexte

Cette règle est appliquée deux fois — dans les skills que l’agent lit et dans le CLI lui-même : une exécution non interactive (par un agent) d’une commande L2 sans --yes échoue avec confirmation required ; même un prompt malveillant ne peut donc pas contourner la barrière.

Deux dialogues de la console ont une valeur juridique ; ils ont donc leurs propres options :

OptionApparaît surÉquivalent dans la console
--agree-declarationapp publishla case à cocher “Declaration for Publishing”

Un bon agent vous montre le texte (déclaration / avertissement) et attend un “j’accepte” distinct avant d’utiliser l’une ou l’autre option.

  • Les agents masquent les jetons, les clés d’accès et les valeurs device_key / token des kits de développement — vous voyez des formes comme sk-****, jamais la valeur complète.
  • Ne collez pas de clés dans le chat. Si l’agent a besoin d’identifiants configurés, le flux correct est que vous créiez la clé d’accès dans le centre de comptes et exécutiez auth add localement.
  • Les file_url des modèles publics ne sont jamais affichées, car la plateforme ne les expose pas — demander à un agent un “lien de téléchargement de modèle public”, c’est demander quelque chose qui n’existe pas.

Un agent qui suit les skills refusera de :

  1. Exécuter auth add ou auth init en votre nom — ils manipulent des secrets bruts ou la connexion navigateur, donc vous les exécutez localement.
  2. Publier, supprimer, dépublier, déployer, installer, délier, arrêter, cloner, relier sans un tour de confirmation distinct.
  3. Scraper la console ou inventer des appels HTTP avec des jetons devinés — uniquement de véritables commandes CLI.
  4. Récupérer les artefacts de modèles publics ou “contourner” la politique limitant ces artefacts au déploiement.
  5. Toucher aux opérations L4 (états d’examen administratif, privacy=1).
  6. Prétendre flasher des appareils — le flash par Web Serial / USB est de niveau L3 : l’agent peut vous donner un lien, jamais prétendre l’avoir flashé.
  7. Inventer des commandes — si le CLI manque d’une fonctionnalité (par exemple l’export de jeux de données), l’agent le dit au lieu d’improviser.

Le protocole vit dans les skills : un agent qui ne les a pas chargées ne connaîtra pas la convention du “demander d’abord” — mais la barrière --yes du CLI vous protège toujours : les écritures non confirmées échouent, tout simplement. Pour obtenir le comportement complet, assurez-vous que les skills sont bien intégrées (voir Skills) et privilégiez les agents capables de lire les fichiers de skills locaux au projet.

Si un agent vous demande un jour de taper --yes vous-même “pour gagner une étape” dans le cadre d’une opération destructrice en production — c’est le moment de ralentir, pas d’accélérer.