La question
Dupliquer une capacité est facile. La dupliquer sans diluer le contrôle l'est beaucoup moins. Dès qu'on délègue du travail à un agent — qui en délègue à un autre, qui appelle un outil — la question devient : qui a le droit de faire quoi, et au nom de qui ?
L'écueil classique : un agent « assistant » finit par pouvoir plus que l'humain qui l'a lancé. On refuse ce compromis dès la conception.
Où on en est
Un invariant traverse tout le Lab : un agent ne peut que restreindre, jamais élargir, les droits de qui l'invoque. On l'a réimplémenté trois fois, indépendamment, pour les trois situations où il compte :
- le masque d'outils d'un agent (
applyAgentFilter) — appliqué par-dessus les outils déjà filtrés par les permissions de l'utilisateur ; - le périmètre d'un contexte actif (
narrowPerimeter) — on peut rétrécir sa vue, jamais l'agrandir ; - l'agent convié dans une visio (
inviteAgent) — il n'hérite que de l'autorité de l'hôte.
Un agent = une persona + un masque de capacités. Les automatisations s'exécutent sous le principal de leur propriétaire, jamais au-delà. Et à la pointe : des agents qui écrivent, relisent et livrent leur propre code — ouvrir une PR, la merger, redéployer — validé de bout en bout sur notre projet Aeon.
Ce qui reste ouvert
Orchestrer une flotte à grande échelle. Faire juger le travail d'un agent par un autre sans boucle de complaisance. Et la convergence : on a déjà vu des boucles autonomes ne pas converger — tourner sans jamais atteindre l'état visé. On publie ces échecs autant que les réussites.