La contrainte que personne ne conçoit
Construire un agent SOC capable d'agir est facile. En construire un que vous laisseriez approcher la production ne l'est pas. La plupart des travaux sur le SOC autonome traitent la sûreté comme un ajout tardif — une file d'approbation, un humain dans la boucle, greffés sur un système conçu pour aller vite.
ARGOS part de l'hypothèse inverse. Vitesse de détection et sûreté opérationnelle sont des contraintes à parts égales. Aucune ne l'emporte par défaut. Tout ce qui suit découle de cette seule décision.
L'identité d'abord, pas le réseau
Le graphe d'entités est dans Neo4j et note le risque sur six dimensions, y compris les chemins de mouvement latéral. À côté, un registre des identités non humaines — comptes de service, identités de charge de travail, principals d'API — noté sur cinq dimensions, avec détection d'anomalies et recommandations de rotation.
Cet ordre est délibéré. Dans la plupart des parcs, les identités non humaines sont plus nombreuses que les humaines et personne ne les possède. Si vous modélisez le réseau d'abord, vous passez votre temps à expliquer du trafic. Si vous modélisez l'identité d'abord, vous le passez à expliquer une intention.
Un agent qui peut dire qu'il ne sait pas
L'agent de triage dispose d'une calibration de confiance et de six voies d'abstention, plus une politique formelle de clôture automatique. L'abstention compte ici davantage que l'exactitude. Un agent qui produit toujours une réponse est pire que pas d'agent : il fabrique une confiance sur laquelle un analyste va ensuite agir.
Des garde-fous mécaniques, pas consultatifs
Dix actions interdites. Des contrôles de rayon d'impact. Six disjoncteurs. Un scanner d'injection de prompt devant l'ensemble.
Rien de tout cela n'est un prompt demandant au modèle de bien se tenir. Une contrainte dont on peut convaincre un modèle de sortir n'est pas une contrainte. Celles-ci sont appliquées hors de la boucle de raisonnement, seul endroit où elles ont un sens.
Une mémoire qui oublie volontairement
La mémoire de travail est dans Redis, avec des TTL. La mémoire épisodique est dans Qdrant, avec une formule de décroissance explicite et une fonction de classement.
Un agent qui se souvient de tout pour toujours est un agent dont vous ne pouvez plus auditer les croyances. C'est le même échec que celui décrit dans MISC 147 : si une fausse prémisse atteint la mémoire longue et n'expire jamais, chaque décision ultérieure découle de quelque chose que vous ne voyez plus.
Mesurer si tout cela fonctionne
Vingt KPI, l'erreur de calibration attendue, et les latences P50, P95 et P99.
La calibration est ce que l'on saute. Un agent confiant 90 pour cent du temps et juste 60 pour cent du temps n'est pas un système de détection, c'est un générateur aléatoire bien élevé.
L'exécuter
Trois paliers de déploiement. Le palier minimal ne demande que l'API Anthropic, et plusieurs exemples ne demandent aucune clé. L'intermédiaire ajoute Redis et Qdrant. Le complet ajoute Neo4j.
Les quarante et quelques tests s'exécutent sans clé d'API et sans infrastructure. C'était un objectif de conception, pas un confort : si les tests exigent une stack démarrée, personne ne les lance.
Ce que je considère encore non prouvé
Le modèle de gouvernance tient dans les exemples. Il n'a pas traversé un vrai incident à volume, avec un analyste fatigué décidant à trois heures du matin s'il fait confiance à une abstention. C'est le test qui compte, et il n'a pas encore eu lieu.
Le code est ouvert. Si vous le cassez, dites-moi comment.