Aller au contenu
Novialoom
Lab · NoviaPact

Un contrat par agent, une politique qui le suit.

Une grande entreprise fait tourner des agents sur plusieurs runtimes. Elle ne sait pas répondre simplement à trois questions : quels agents existent, ce que chacun a le droit de faire, quelle version est autorisée à tourner. NoviaPact est le registre qui y répond : un seul contrat par version d'agent, quel que soit le runtime, et une politique qui suit le contrat sans être recodée.

Outil interne Démonstration locale, sur des données fictives.

01 Le registre

Quatre métiers, un même contrat.

  • Référencer

    Déclarer un agent, ses outils et les données qu'il touche : un inventaire unique, cherchable par relation, quel que soit le runtime.

  • Contractualiser

    Décrire l'agent dans un formulaire et le faire valider par deux personnes autres que son auteur. Le contrat est signé, immuable, versionné ; son grade et son risque sont calculés.

  • Autoriser

    Lire et tester l'autorité effective de chaque agent. La politique est compilée depuis les contrats, testée, signée et servie à OPA.

  • Publier

    Rendre un agent découvrable : sa Carte A2A est générée depuis son contrat, jamais écrite à la main.

Capture d'écran de l'accueil de NoviaPact, vu par la sécurité : la demande qui attend sa validation, le parc en bref (neuf agents référencés, huit publiés, un en revue, politique active chez OPA signée, 84 tests de décision sur 84 réussis) et le parcours à jouer en premier : créer, valider, publier.
Accueil : ce qui attend chaque rôle, et le parc en bref. Capture de la démonstration, données fictives.
02 Le parcours

Créer, valider, publier.

Quatre personnes inventées tiennent les quatre rôles : l'auteur, le propriétaire métier, la sécurité, l'équipe plateforme. « Voir en tant que » passe de l'une à l'autre ; ce que chacune peut faire suit son rôle, et le registre le vérifie lui-même.

  1. Étape 1

    Décrire l'agent

    L'auteur décrit l'agent en six étapes : rôle, outils, données, mandat, délégations, modèle. Un formulaire guidé, sans YAML.

    Le risque se calcule en direct depuis les outils et les données ; personne ne le déclare. Un essai à blanc compile le brouillon et passe ses tests de décision dans OPA avant la soumission.

    Capture d'écran de l'éditeur, étape 2 sur 6, les outils : l'auteur coche les outils de l'agent, active l'approbation human-in-the-loop sur la rédaction du mémo ; à droite, le risque calculé en direct, moyen, et l'essai à blanc.
    Nouvel agent : un formulaire guidé, sans YAML ; le risque se calcule, il ne se saisit pas. Capture de la démonstration, données fictives.
  2. Étape 2

    Le faire valider à quatre yeux

    Le propriétaire métier valide, puis la sécurité. L'auteur ne valide jamais sa propre demande, et une même personne ne valide pas deux fois.

    La validation finale exige une compilation réussie et des tests de décision verts : un cas autorisé et un cas refusé par outil, par plafond et par délégation. La sécurité signe alors le contrat et son bundle.

    Capture d'écran des demandes : une version en revue, son circuit de validation (soumise par l'auteur, compilée et testée, validée par le métier, en attente de la sécurité, puis publication), ce qui change par rapport à la version précédente et ses treize tests de décision, tous vérifiés.
    Demandes : quatre yeux, une compilation réussie et des tests de décision verts avant la signature. Capture de la démonstration, données fictives.
  3. Étape 3

    Publier la politique

    La plateforme publie la version : un nouveau bundle devient actif, et OPA le charge après en avoir vérifié la signature. Un bundle non signé ou modifié n'est jamais activé.

    Chaque contrat devient un paquet de politique, avec son empreinte. Même contrat et même compilateur donnent le même bundle.

    Capture d'écran de la politique : le bundle actif, signé et vérifié par OPA, lu par opa-ombre ; 84 tests de décision sur 84 ; les tests par agent et les contrats du bundle actif, chacun devenu un paquet de politique avec son empreinte.
    Politique : les contrats compilés, testés, signés, puis servis à OPA. Capture de la démonstration, données fictives.
  4. Étape 4

    Lire la fiche de l'agent

    Le métier lit ce que fait l'agent, pour qui, avec quels outils et dans quelles limites : montant maximal, juridictions, budget, approbation human-in-the-loop.

    Le contrat signé ne change plus : toute modification crée une nouvelle version. Suspendre, lever ou retirer un agent active un nouveau bundle.

    Capture d'écran de la fiche du coordinateur crédit, version 1.2.0 publiée : ce qu'il peut faire, avec quoi, dans quelles limites (le mandat), son cycle de vie, son contrat signé et immuable, son grade et son risque, calculés.
    Fiche agent : ce qu'il fait, pour qui, avec quoi, dans quelles limites. Capture de la démonstration, données fictives.
  5. Étape 5

    Le rendre découvrable

    Seules les versions publiées sont découvrables. La Carte A2A dit où trouver l'agent ; c'est le contrat qui l'autorise.

    Les adresses à brancher se copient depuis l'écran, et on voit qui les lit.

    Capture d'écran de la découverte : la Carte A2A de l'assistant KYC, générée du contrat, les adresses à brancher, et qui les lit ; les fonctions pas encore branchées sont marquées « bientôt ».
    Découverte : la Carte A2A est générée du contrat, jamais écrite à la main. Capture de la démonstration, données fictives.
03 Qui peut faire quoi

L'autorité effective, lue et testée.

  • Autorité

    L'autorité d'un agent est une intersection de trois termes : les capacités de son contrat, ses habilitations, les droits de l'utilisateur pour qui il agit. Le mandat s'applique ensuite, et ne peut que refuser.

    On lit la matrice des agents et des outils, et on teste une décision : NoviaPact interroge OPA sur la politique publiée ; il ne décide rien lui-même.

    Capture d'écran de l'autorité effective : la matrice des agents et des outils, autorisé, avec approbation ou par délégation ; une décision testée auprès d'OPA, autorisée, avec ses trois termes et le mandat ; les droits utilisateur que chaque outil exige.
    Autorité : l'intersection du contrat, des habilitations de l'agent et des droits de l'utilisateur, testée auprès d'OPA. Capture de la démonstration, données fictives.
  • Catalogue

    Neuf agents sur trois runtimes (LangGraph, LangChain, un agent sans framework), sous un même format de contrat. Chaque outil garde son serveur, épinglé à sa version, et les données qu'il touche.

    Capture d'écran du catalogue : neuf agents sur trois runtimes (LangGraph, LangChain, sans framework), avec leur état, leur risque, leur propriétaire et leurs outils ; en dessous, les cinq outils et leurs serveurs épinglés, et les deux catégories de données.
    Catalogue : un inventaire unique, quel que soit le runtime. Capture de la démonstration, données fictives.
  • Aide intégrée

    Chaque écran a son aide derrière « ? » : ce qu'on y fait, ce qui se passe ensuite, et pourquoi un rôle ne peut pas agir. Un centre d'aide et un lexique complètent les panneaux.

    Capture d'écran de l'écran Demandes avec son aide ouverte à droite : comment valider ou publier une demande, ce qui se passe ensuite, et pourquoi un rôle ne peut pas agir.
    Aide intégrée : chaque écran a la sienne, derrière « ? ». Capture de la démonstration, données fictives.

04 Dans l'ombre d'agent-lab

NoviaPact importe les huit agents du banc agent-lab en lecture seule, compile leurs contrats et sert sa politique à une OPA témoin. On pose alors les mêmes requêtes aux deux OPA, celle d'agent-lab et la sienne :

Données de politique
contrats, catalogue et états : 3 documents identiques sur 3.
Grille de requêtes
agents, outils, cibles, droits et montants : 1 495 décisions identiques sur 1 495.
Tests Rego d'agent-lab
70 sur 70.
Scénarios et missions de démonstration
les décisions journalisées par l'OPA d'agent-lab, rejouées : 167 sur 167.

Le registre décide exactement comme le banc, sans que le banc ait été modifié.

05 Sous le capot

Docker Compose
toute la démonstration sur un poste, sans dépendance cloud.
Un registre et un Contract Store
deux bases PostgreSQL séparées ; les contrats signés s'y rangent en insertion seule, et leur signature est revérifiée à chaque lecture.
Un signataire
la seule brique qui détient une clé : contrats en Ed25519, bundles en RS256.
Un compilateur de politique
dérive chaque contrat par agentcharter, génère et passe ses tests de décision, fait signer le bundle et le sert à OPA.
OPA
décide ; NoviaPact ne fait que l'interroger, y compris pour tester une décision.
Keycloak
la connexion OIDC ; l'acteur et ses rôles viennent du jeton.
Angular et une aide intégrée
neuf écrans, chacun avec son aide derrière « ? », fabriquée au build depuis des fichiers Markdown.
Des standards ouverts
agentcharter pour le contrat, A2A pour la découverte, OPA pour la décision.

06 Ce que NoviaPact ne fait pas

Décider à l'exécution : c'est OPA.
Appliquer la décision : ce sont les gateways.
Exécuter les agents : ce sont les runtimes.
Émettre les identités ou écrire les habilitations : c'est l'IdP.
Stocker l'audit ou observer : d'autres briques s'en chargent.

07 Ce que la démonstration n'est pas

Un produit en production : c'est une démonstration locale, sur des données fictives.
Une démonstration simulée : ce qui n'est pas encore branché est marqué « bientôt » à l'écran, jamais simulé.
Lab Architecture d'agents

Concevoir l'autorité de vos agents.

La formation Architecture d'agents part des mêmes principes : un contrat d'agent signé, une politique « refus par défaut » testée sur cas, une méthode pour modéliser l'autorité effective.

Architecture d'agents

Tous les outils du Lab