Aller au contenu

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.

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 :

RaisonQuandAlerte
Subscription not officialL’agent signale un abonnement qu’aucune déclaration ne nommeOui
Org unit not allowedL’abonnement est déclaré, mais seulement pour des unités organisationnelles qui ne contiennent pas le propriétaire de l’agentOui
Subscription can’t be determinedL’agent ne signale aucun abonnement, par exemple quand il utilise une clé d’API bruteNon
User can’t be placedL’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.

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 » »
SituationPourquoi
L’agent utilise une clé d’API bruteUne clé ne révèle aucune organisation sans appeler le fournisseur, ce qu’OpenLatch ne fait jamais
OpenCode ou DevinLe client ne lit aucun abonnement pour eux
Une machine avec un client antérieur à 0.11.11Les clients plus anciens ne signalent aucun abonnement
Un agent Cursor derrière une passerelle d’entrepriseLe 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.

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ègleCe qu’elle veut dire
Aucune alerte avant votre première déclarationTant 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 alerteUn 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 agentUn agent alerte au plus une fois en 24 heures, quelle que soit la raison
Une notification pour plusieurs agentsUn 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 agentsUn 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.