À propos du projet
NovaFabric est un outil en ligne de commande auto-hébergé permettant de rendre les exécutions d'IA et de HPC reproductibles, comparables et auditables. Son unité de valeur est la capsule : un répertoire nommé par ULID écrit sous ~/.novafabric/capsules/ contenant les faits observables d'une exécution, plutôt qu'une ligne de trace dans une base de données hébergée. Installation via `pip install novafabric` (Python 3.12+) ; des extras optionnels ajoutent le dashboard, query, server, compliance et le support Sigstore, et `nova doctor --check-extras` signale les éléments manquants.
Capture : `nova capture python my_agent.py --dataset data.csv` fonctionne avec n'importe quelle commande et ne nécessite aucune modification de l'application. Il injecte un chargeur sitecustomize.py via PYTHONPATH et installe des monkey-patches pour les SDK OpenAI, Anthropic et MCP, ainsi que des hooks au niveau réseau sur httpx, requests, aiohttp et urllib3, avec une protection par couches pour que les appels imbriqués produisent un enregistrement unique. Les champs de convention sémantique OpenTelemetry GenAI (temperature, top_p, max_tokens, seed, raisons de fin, etc.) sont extraits. Pour les clients non-Python tels que Claude Code, Cursor ou les agents Node/Go, deux proxys transparents — `nova api-proxy` et `nova mcp-proxy` — capturent le trafic LLM et MCP sans toucher au client. Les capsules sont écrites en cas de succès comme d'échec, ainsi un plantage est enregistré comme preuve avec le statut, le code de sortie et un bloc d'erreur.
Contenu des capsules : manifeste capsule.yaml, spans trace.jsonl, model-calls.jsonl, tool-calls.jsonl, env.lock, replay.yaml, entrées et sorties (stdout/stderr), et redaction-proof.json. Un scan des secrets est effectué sur chaque artefact avant la finalisation ; une capsule sans sa preuve de rédaction est invalide pour `nova validate` et ne peut être exportée.
Rejeu et diff : `nova replay` propose quatre modes — forensic (inspection en lecture seule, sans réseau ni sous-processus), mocked (relance la commande avec les appels de modèle et d'outil servis depuis le cache de la capsule), semantic (juge le sens plutôt que les tokens, similitude 0.0–1.0) et exact (éligibilité byte-exact nécessitant un environnement déterministe et un seed par appel). Le README précise qu'il ne prétend pas au rejeu exact des appels LLM distants. `nova diff` compare deux exécutions, et `nova diff --assert-no-regressions` renvoie un code non nul en cas de changement comportemental, positionné comme une porte CI pour les agents qui fonctionnaient hier et échouent aujourd'hui.
Gouvernance et lignage : un Asset Registry SQLite local stocke des actifs versionnés de sept types (model, agent, prompt, tool, dataset, evaluation, deployment), adressés sous la forme name@version avec un cycle de vie allant du développement à l'archivage ; la promotion n'est qu'une métadonnée de gouvernance et ne déploie rien. La couche de lignage émet des arêtes mécaniques consumed, produced_by et replayed_from avec une confiance observée versus inférée, supporte les requêtes de provenance, de rayon d'impact (blast-radius) et de chaîne de rejeu, et peut émettre des événements OpenLineage ainsi qu'un export W3C PROV-N. Des backends optionnels expérimentaux existent pour les graphes plus larges. `nova export-evidence` construit un ZIP signé contenant la capsule, un sous-graphe de lignage, des attestations in-toto DSSE et des signatures ed25519, vérifiables avec sha256sum et un vérificateur ed25519 sans le runtime NovaFabric.
Positionnement : le projet stipule qu'il n'est ni un orchestrateur, ni un entraîneur de modèle, ni un serveur d'inférence, ni une DB vectorielle, ni une passerelle LLM, ni un exécuteur CI, et qu'une plateforme d'observabilité SaaS gérée demandera moins d'efforts lorsque des tableaux de bord en temps réel, des alertes et des analyses multi-utilisateurs sont l'objectif. Le mode serveur et le dashboard live sont marqués comme expérimentaux, les capsules ne sont pas figées avant un gel du schéma prévu pour la v1.0, et l'outil produit des preuves qui soutiennent les flux de conformité plutôt que de les certifier. Les publics cibles nommés dans le README incluent les ingénieurs ML/plateforme, les équipes HPC et de recherche, les responsables de la conformité, les intervenants en cas d'incident et les auteurs de frameworks d'agents.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.