Agents Sanctioned et Shadow
Nécessite @openlatch/client 0.11.11 ou une version ultérieure
Chaque agent d’un hôte qui exécute le client est lu Sanctioned ou Shadow. Ce statut vous dit si l’agent travaille sur un abonnement que votre entreprise paie et qu’elle a autorisé pour son propriétaire, pour voir d’un coup d’œil quels agents tournent sur un compte que vous n’avez pas choisi.
OpenLatch classe les agents des hôtes qui exécutent le client. Les agents des machines sans le client ne sont ni découverts ni classés : la découverte du shadow AI sur les machines sans le client n’est pas disponible.
Ce que le statut compare
Section intitulée « Ce que le statut compare »Chaque agent signale l’abonnement sous lequel tournent ses appels de modèle : une organisation, un espace de travail, une équipe, un projet ou un compte cloud, ou une passerelle de modèles. Lire l’abonnement, le modèle et l’effort d’une session liste chaque type et l’endroit où le client le lit. Un administrateur déclare les abonnements officiels de l’entreprise dans Settings › General › Agent Subscriptions, chacun avec les unités organisationnelles où il est autorisé ; voir Déclarer les abonnements de vos agents.
OpenLatch compare les deux. La comparaison utilise le seul identifiant d’abonnement : aucune adresse e-mail ni aucun signal d’identité n’y prend part, donc le statut fonctionne de la même façon que la collecte des signaux d’identité soit activée ou non.
L’agent est Sanctioned quand l’abonnement qu’il a signalé en dernier est déclaré et autorisé pour l’unité organisationnelle de son propriétaire. Sinon il est Shadow, avec exactement une raison :
| Raison | Quand | Alerte |
|---|---|---|
| Subscription not official | L’agent signale un abonnement qu’aucune déclaration ne nomme | Oui |
| Org unit not allowed | L’abonnement est déclaré, mais seulement pour des unités organisationnelles qui ne contiennent pas le propriétaire de l’agent | Oui |
| Subscription can’t be determined | L’agent ne signale aucun abonnement, par exemple quand il utilise une clé d’API brute | Non |
| User can’t be placed | L’abonnement n’est déclaré que pour certaines unités organisationnelles, et le propriétaire de l’agent n’est dans aucune, par exemple parce que le propriétaire n’a pas pu être déterminé | Non |
Une déclaration autorisée pour toute l’organisation rend Sanctioned chaque agent sur cet abonnement, où que se trouve son propriétaire. Une déclaration limitée à des unités organisationnelles couvre ces unités et toutes les unités en dessous.
D’où vient l’unité organisationnelle de l’agent
Section intitulée « D’où vient l’unité organisationnelle de l’agent »L’unité organisationnelle de l’agent est celle de son propriétaire, telle que l’onglet Identity l’affiche. Pour un agent qui agit pour un service, c’est l’unité de la personne responsable du service, sinon l’unité à laquelle le service est rattaché. Un changement de propriétaire, d’unité d’une personne ou de l’arbre de l’organisation change le statut à la lecture suivante.
Sur une machine partagée par plusieurs personnes, le client compte un agent par utilisateur du système : l’agent de chaque utilisateur du système est un agent distinct, lu à partir de son propre propriétaire. Les personnes qui partagent un même compte du système partagent un même agent.
Sanctioned ne veut pas dire vérifié
Section intitulée « Sanctioned ne veut pas dire vérifié »Le statut est déduit de l’identifiant d’abonnement que le client signale. OpenLatch ne vérifie pas cet identifiant auprès du fournisseur et ne prouve pas quel compte un agent utilise. Sanctioned veut dire que l’agent signale un abonnement officiel, jamais que son compte est vérifié. Le statut classe un agent : il ne change jamais un verdict, et il ne bloque ni ne met jamais en pause un agent.
Le statut couvre un agent qui se comporte mal, pas un agent malveillant : une machine qui signale un mauvais identifiant, par erreur de configuration ou autrement, est lue comme cet identifiant.
Ce qui est lu « Subscription can’t be determined »
Section intitulée « Ce qui est lu « Subscription can’t be determined » »| Situation | Pourquoi |
|---|---|
| L’agent utilise une clé d’API brute | Une clé ne révèle aucune organisation sans appeler le fournisseur, ce qu’OpenLatch ne fait jamais |
| OpenCode ou Devin | Le client ne lit aucun abonnement pour eux |
| Une machine avec un client antérieur à 0.11.11 | Les clients plus anciens ne signalent aucun abonnement |
| Un agent Cursor derrière une passerelle d’entreprise | Le client ne lit aucun réglage de passerelle pour Cursor, il lit donc son équipe Cursor, ou rien |
Une déclaration Gateway ne couvre que les agents Claude Code, Codex CLI et Cline, les agents pour lesquels le client lit une passerelle. Un nom d’hôte de passerelle partagé par de nombreuses entreprises, comme un service de passerelle public, n’identifie aucune entreprise : en déclarer un rend Sanctioned chaque agent qui utilise ce service.
Quand le statut change
Section intitulée « Quand le statut change »Le statut est calculé à chaque lecture. Une nouvelle déclaration, une déclaration supprimée ou une liste d’unités organisationnelles modifiée apparaît à la lecture suivante de chaque agent concerné, sans attente. Un agent qui passe à un autre abonnement est lu sur le nouveau : l’observation la plus récente l’emporte, et l’en-tête de l’agent indique quand elle a été faite. Les sessions passées gardent l’abonnement qu’elles ont enregistré.
OpenLatch envoie la notification Shadow agent detected quand un agent devient Shadow pour une raison qui alerte : Subscription not official ou Org unit not allowed. Elle apparaît dans la console pour chaque membre, et elle atteint chaque canal de notification abonné à ce type ; voir Configurer les canaux de notification.
| Règle | Ce qu’elle veut dire |
|---|---|
| Aucune alerte avant votre première déclaration | Tant que votre organisation n’a rien déclaré, rien n’est alerté. Votre première déclaration vérifie chaque agent et envoie une notification qui compte les agents Shadow, comme « 12 shadow agents discovered » |
| Seulement à l’entrée dans une raison qui alerte | Un agent alerte quand il entre dans Subscription not official ou Org unit not allowed, jamais à nouveau tant qu’il y reste, et jamais pour Subscription can’t be determined, User can’t be placed ou un passage à Sanctioned |
| Au plus une fois par jour et par agent | Un agent alerte au plus une fois en 24 heures, quelle que soit la raison |
| Une notification pour plusieurs agents | Un changement dans Agent Subscriptions, ou une vérification qui fait passer plusieurs agents Shadow à la fois, envoie une notification qui les compte |
| Une attente pour les nouveaux agents | Un agent nouvellement inscrit qui n’a pas encore signalé d’abonnement n’est pas jugé avant d’en signaler un, ou pendant 24 heures après sa découverte, au premier des deux termes |
La notification nomme le produit de l’agent et la raison, jamais la personne, la machine ou l’identifiant d’abonnement. Une notification sur un agent ouvre cet agent ; une notification qui en compte plusieurs ouvre la page Agents. La plupart des changements alertent en quelques instants ; un changement qu’OpenLatch n’a pas pu vérifier tout de suite est rattrapé par une vérification horaire. Le statut que vous lisez n’est jamais retardé.
Une déclaration peut porter un budget mensuel par défaut pour chaque agent Sanctioned sur cet abonnement. Un agent utilise d’abord son propre budget, puis le budget par défaut de l’abonnement officiel sur lequel il est Sanctioned, puis le budget par défaut de votre organisation. Un agent Shadow ne prend jamais le budget par défaut d’un abonnement. Voir Suivre les dépenses d’un agent.