Aller au contenu

Référence des AIP

Utilisez cette page pour lire ou relire une Agent Intent Policy (AIP) : de quoi elle est faite, quelle dimension de l’Autonomy Zone elle couvre, dans quel mode elle s’exécute et quel verdict elle rend pour une action couverte.

Une politique d’intention énonce ce que veut dire votre organisation, plutôt que chaque surface qu’un agent pourrait utiliser. OpenLatch écrit chaque politique d’intention sous forme d’AIP et la compile en règles déterministes que le client applique avant l’exécution de l’action.

Une AIP est un ensemble d’un ou plusieurs atomes d’intention. Une clause de votre document source devient un atome, et chaque atome a les mêmes champs fixes.

ChampContenu
whoLes agents auxquels l’atome s’applique. Quand la source ne le dit pas, l’atome indique que c’est une déduction
does whatL’action, comme un déploiement ou la suppression d’un fichier
to whatLa cible de l’action, comme un espace de noms de production
only ifLes conditions dans lesquelles l’action est acceptable
unlessLes exceptions à l’atome
classSi l’atome peut être appliqué : enforceable, monitor-only ou out-of-scope

À partir de ces champs, OpenLatch génère une phrase et un ensemble de cas de test. Vous ne modifiez jamais les règles compilées.

Vous voyezÀ quoi cela sert
La phraseCe que vous ratifiez, par un seul Oui ou Non
La sourceLa clause de votre document dont vient l’atome, citée pour que vous vérifiiez qu’elle a été bien lue
Les cas de testDes situations concrètes avec le verdict que chacune obtiendrait, affichées en lecture seule à côté de la phrase pour éclairer votre réponse

Un Non renvoie l’atome en correction : vous dites ce que vous vouliez dire, les champs changent, et l’atome revient avec une nouvelle phrase et de nouveaux cas pour une nouvelle réponse. Modifier un atome annule toujours la ratification donnée à sa version précédente.

La class d’un atome est une propriété de l’atome, pas un réglage. Un atome monitor-only décrit quelque chose qui peut être observé mais pas arrêté avant qu’il se produise ; il reste donc en Monitor même quand sa politique est en Enforce.

Chaque atome appartient à l’une des cinq dimensions de l’Autonomy Zone. Une politique couvre l’union des dimensions de ses atomes.

DimensionLa question à laquelle elle répondExemples de politiques d’intention
QualitéLe travail est-il au niveau attendu ?Le code est testé avant sa livraison ; le processus imposé est suivi
ÉconomieLe coût est-il justifié ?Pas de boucles incontrôlées ni de nouvelles tentatives inutiles ; le modèle correspond à la tâche
SécuritéPeut-il y toucher ?Aucun identifiant ne sort du périmètre de l’entreprise ; seulement des outils et serveurs approuvés
SûretéLa conséquence est-elle acceptable ?Pas d’accès à la production sans approbation ; pas d’opération irréversible ou destructrice
ConformitéEst-ce légal et conforme aux règles ?Politiques et normes internes ; obligations contractuelles

La mission n’est pas une dimension : chaque agent apporte sa propre mission, et la zone apporte les règles qu’il doit suivre.

Une politique s’exécute dans l’un de trois modes. Le mode appartient à la politique, jamais à un atome, et se règle dans chaque Autonomy Zone qui contient la politique.

ModeCe qui se passe en cas de correspondance
DisabledRien. La politique et son historique sont conservés, mais elle n’est pas évaluée
MonitorLa correspondance est enregistrée comme anomalie et signalée ; l’action se poursuit
EnforceLe verdict est appliqué avant l’exécution de l’action, partout où un adaptateur couvre cette action, et l’enregistrement indique s’il a réellement été appliqué

Quand les zones d’un agent contiennent plusieurs fois la même politique, elle s’exécute une seule fois, dans le mode le plus strict : Enforce avant Monitor avant Disabled.

Les politiques gagnent le mode Enforce sur preuves : exécutez une politique en Monitor, examinez ses anomalies, et passez-la en Enforce une fois qu’elle est juste. OpenLatch n’élargit jamais de lui-même l’autorité d’un agent.

Chaque action couverte qui correspond à une politique en Enforce reçoit l’un de quatre verdicts avant son exécution. Un verdict est déterministe, car une politique explicite l’a produit.

VerdictCe qui arrive à l’action
AllowL’action se poursuit sans changement. En Monitor, elle peut être autorisée et signalée
AskL’action est autorisée et signalée pour revue par défaut
BlockL’action est empêchée avant son exécution. L’agent en reçoit la raison et peut essayer autre chose ; la session continue
OptimizeL’action prend un autre chemin, par l’un des leviers ci-dessous

Ask autorise l’action et la signale pour une revue asynchrone par défaut. La décision de revue, avec la portée choisie par le relecteur, parvient au client dans le prochain bundle de politiques ; l’action similaire suivante est donc décidée sur la machine, sans personne.

Ask ne retient une action et n’attend une approbation que sur un opt-in par atome pour une action irréversible, comme la suppression d’une base de données de production.

Codex CLI n’a pas de demande de confirmation native. Sur Codex CLI, Ask apparaît pour l’agent comme un message portant la raison de la règle, et l’appel se poursuit.

Ask empêche la récidive, pas la première occurrence. Écrivez en Block tout ce qui ne doit jamais se produire sans revue, ou marquez l’action comme irréversible sur son atome.

Optimize change le chemin d’une action au lieu de l’autoriser ou de la bloquer. Le mode décide de ce que fait un levier : en Enforce un levier agit, et en Monitor un levier se contente de mesurer ce qu’il aurait fait.

LevierCe qu’il changeStatut
loop_stopArrête un agent qui répète le même appel, et lui dit pourquoiAgit en Enforce
steerRefuse l’action et indique à l’agent quoi faire à la place, comme pousser une branche plutôt que la branche principaleAgit en Enforce
narrow_outputRenvoie à l’agent un extrait filtré d’une longue sortie de commande, et garde la sortie complète sur le disqueAgit en Enforce, sur Claude Code
effort_clampRéduit l’effort de raisonnement d’une requête au modèleMesure en Monitor et en Enforce ; agit en Enforce seulement là où l’organisation cliente l’active
context_editResserre les réglages d’effacement du contexte d’une requête au modèleMesure en Monitor et en Enforce ; agit en Enforce seulement là où l’organisation cliente l’active
prefix_guardGarde stable le préfixe de prompt mis en cache d’une requête au modèleMesure en Monitor et en Enforce ; agit en Enforce seulement là où l’organisation cliente l’active
substituteRemplace une commande par un équivalent approuvé par votre organisationN’est pas livré : il n’a pas d’actionneur et ne fait que mesurer en Monitor

En Enforce, loop_stop, steer et narrow_output agissent (narrow_output sur Claude Code). effort_clamp, context_edit et prefix_guard ne font que mesurer, même en Enforce, sauf si l’organisation cliente l’active. substitute n’est pas livré : il ne fait donc que mesurer en Monitor. En Monitor, chaque levier ne fait que mesurer.

L’enregistrement de preuve indique lequel s’applique : appliqué en Enforce, mesuré en Monitor.

Chaque action couverte atteint le point de décision des politiques, et son verdict est appliqué. Une action hors d’une surface couverte, comme un script que l’agent a écrit plus tôt et exécute plus tard, n’est pas décidée par le client. Le niveau de contrôle de chaque agent indique la couverture qui s’applique à lui.