À propos du projet
## Vue d'ensemble
GIF (Governed Intelligence Framework) est un runtime de gouvernance pour l'invocation d'outils IA. Plutôt que de journaliser ce qu'un agent a fait après coup, il applique la politique avant l'exécution de tout outil, au niveau MCP (Model Context Protocol). Le projet formule le problème en termes de trajectoires plutôt que d'enregistrements : un seul agent peut émettre des milliers de requêtes individuellement autorisées sur des sources de données sans lien en quelques secondes, et l'inférence tirée de l'agrégat peut elle-même constituer une violation que les normes de gouvernance au niveau des enregistrements ne détectent pas.
## Ce qu'il fait
Lorsqu'un agent IA invoque un outil, GIF :
1. Vérifie la Persona — si l'identité de gouvernance est active, dans sa fenêtre de validité et autorisée à appeler l'outil.
2. Applique le périmètre — les appels hors du périmètre déclaré de la Persona sont rejetés et enregistrés comme événements de gouvernance de premier ordre plutôt que comme erreurs ordinaires.
3. Évalue les politiques de combinaison — les gestionnaires d'outils de l'adopteur appellent un évaluateur fourni par GIF avant l'exécution ; si l'ensemble des sources de données touchées dans la session en cours franchit un seuil de sensibilité déclaré, l'appel qui complète cette combinaison est bloqué. L'exemple du README : les dossiers financiers, les dossiers RH et les métadonnées de communications peuvent chacun être autorisés isolément, mais leur jointure à travers des appels distincts peut ne pas l'être.
4. Enregistre tout — appels autorisés, rejets et sessions, avec des permissions en INSERT uniquement au niveau de la base de données.
## Concepts clés
- **Persona** : une identité de gouvernance portant une finalité déclarée obligatoire et non nullable, un périmètre d'outils explicite, des bornes de validité temporelle et une chaîne de délégation. Créée par des administrateurs humains avant toute action de l'IA.
- **Périmètre** : une liste énumérée d'actions autorisées ; les outils hors de celle-ci ne peuvent pas être appelés.
- **Violation de périmètre** : un enregistrement de gouvernance de premier ordre, décrit comme la preuve que la frontière a fonctionné.
- **Politique de combinaison** : une règle déclarée selon laquelle un ensemble spécifique de sources de données accédées ensemble dans une session constitue une frontière. GIF fournit le schéma, un évaluateur de politiques actives et une sémantique fail-closed. L'évaluateur v0.1 utilise une résolution de politique par première correspondance ; l'évaluation exhaustive est listée comme un élément de trajectoire v0.2.
- **Piste d'audit** : en INSERT uniquement au niveau des permissions de la base de données — le rôle applicatif ne peut ni UPDATE ni DELETE les enregistrements d'audit.
- **Chaîne de délégation** : les Personas enfants détiennent des sous-ensembles stricts du périmètre parent, de sorte que les actions des sous-agents remontent à l'autorité administrative racine.
## Architecture
Deux conteneurs Docker : PostgreSQL 16 et un serveur MCP Node.js. Les clients envoient des POST au serveur MCP, qui valide la Persona, applique le périmètre et distribue l'outil ; PostgreSQL contient les personas, sessions, audit_events et scope_violations. L'évaluateur de politiques de combinaison est exposé comme une primitive que les serveurs d'outils de l'adopteur invoquent à leurs propres points de distribution. Le moteur d'application est livré sous forme de paquet importable (`gif-enforcement`), enregistré comme dépendance git versionnée, afin que les adopteurs puissent ajouter des outils métier sans modifier le code source de GIF.
## Intégrité de l'audit
Les enregistrements d'audit sont chaînés par hachage au niveau de la base de données : un déclencheur calcule un condensé SHA-256 sur une forme canonique en octets et le lie au condensé de la ligne précédente, de sorte qu'une mutation ou suppression après coup brise la chaîne. Un CLI de vérification parcourt les partitions, recalcule les condensés et signale les incohérences et ruptures de chaîne. La forme canonique et la procédure de vérification sont spécifiées dans un dépôt distinct Tamper-Evident Audit Record Contract (forme canonique `audit-record-contract/1`, initialement soumise au MCP sous SEP-3004), dont GIF est l'implémentation de référence. Un ensemble de vecteurs miroir réside dans le dépôt ; le README indique que `npm run vectors` attend 26 vecteurs réussis.
## Démarrage rapide
Les prérequis sont Docker Engine 24+, Docker Compose v2 et Git. Le flux documenté clone le tag `v0.2.4`, copie `.env.example` en supprimant le secret de remplacement, ajoute un `IDENTITY_HMAC_SECRET` généré, définit de vrais mots de passe et exécute `docker compose up -d --build`. La base de données initialise automatiquement les rôles, le schéma et les migrations. Le serveur MCP refuse de démarrer si le secret HMAC reste le remplacement ou fait moins de 32 octets. Les deux ports publiés se lient à `127.0.0.1` par défaut ; `GIF_BIND_ADDR` élargit cela, et un runbook de déploiement en production est référencé. Le point de terminaison MCP valide l'en-tête `Origin` du navigateur, répondant 403 pour les origines non autorisées sauf si elles figurent dans `GIF_ALLOWED_ORIGINS` ; les clients n'envoyant aucun en-tête Origin ne sont pas affectés. L'état de santé est vérifié via `GET /health`.
## État actuel
Le README recommande d'épingler `v0.2.4`, qui s'exécute sur le substrat MCP SDK 2.0 et porte la sémantique de session de gouvernance v0.2 : des handles `gif_session_id` explicites créés par `session_start`, une fermeture pilotée par l'appelant et un TTL en temps réel. L'application centrale est décrite comme complète et validée de bout en bout contre une instance PostgreSQL 16 réelle, avec une suite d'intégration et des scénarios de conformité exécutés à chaque commit via CI, et le mode strict de TypeScript partout. Les capacités livrées listées incluent le cycle de vie des personas, la couche d'application MCP avec transport Streamable HTTP, la piste d'audit en chaîne de hachage en ajout uniquement avec un CLI de vérification de chaîne, la détection des violations de périmètre, l'application de la chaîne de délégation, la gestion des sessions, le registre d'outils et la distribution pilotée par le registre, le packaging de l'application, la primitive de politique de combinaison et la liaison d'identité du provisionneur via un jeton d'identité HMAC.
Une version héritée `v0.1.0` sur le substrat MCP SDK v1 retiré n'est plus recommandée : elle manque de durcissement des identifiants SQL (avis GHSA-47gp-w74f-grvr) et ne reçoit aucun rétroportage. Le README indique que l'injection affecte les tags jusqu'à et y compris `v0.2.0-rc.1`, `v0.2.0-rc.2` étant le premier tag corrigé, et oriente les adopteurs existants vers un document de migration. Une feuille de route de durcissement de la conformité couvrant les ancres d'horodatage externes, le chiffrement au repos, le durcissement opérationnel multi-tenant et les chaînes d'audit par périmètre est documentée dans la vue d'ensemble du produit.
## Documentation et licence
Le dépôt fournit un guide en langage clair, une vue d'ensemble du produit, une visite guidée du code, des diagrammes d'architecture, un document sur les secrets, des runbooks pour les contributeurs et les adopteurs, et des vecteurs de conformité exécutables. Sous licence Apache License 2.0 ; copyright 2026 Notboatanchor Labs LLC.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.