Clavis dietro le quinte: calcolo deterministico, grafi di conoscenza e l'esecuzione sicura in sandbox


“Nihil est autem ratione melius.”
(“Nulla vi è di migliore della ragione.”)

Marco Tullio Cicerone
Nel nostro precedente articolo abbiamo introdotto la visione alla base di Clavis, la nostra piattaforma di knowledge retrieval e ragionamento enterprise. Abbiamo accennato a come Clavis eviti le classiche "allucinazioni" dei modelli linguistici (LLM) separando la comprensione del testo dal calcolo matematico. Oggi vogliamo entrare nei dettagli tecnici ed esplorare le architetture specifiche che rendono questo obiettivo una realtà operativa e sicura per le aziende. La maggior parte degli strumenti di IA aziendale si affida esclusivamente alla ricerca vettoriale (RAG). Sebbene efficace per trovare concetti affini, questo approccio fatica a identificare codici esatti, formule o relazioni precise tra i dati. Clavis supera questo limite interrogando i dati contemporaneamente attraverso quattro canali indipendenti, i cui risultati vengono poi uniti in modo pesato tramite l'algoritmo RRF (Reciprocal Rank Fusion):
  • Canale Vettoriale (Semantica): Sfrutta gli embedding (mappe del significato) generati in modo protetto per comprendere l'intento della domanda, anche in contesti bilingui italiano/inglese
  • Canale BM25 (Full-Text): Una ricerca testuale classica e ottimizzata che garantisce l'individuazione di termini precisi, codici normativi, articoli di legge o acronimi tecnici.
  • Canale Grafo (Relazioni): Traversata logica multi-hop dei concetti connessi, per raccordare normative, prassi e prove fisiche non direttamente collegate dalle parole usate.
  • Canale Structured (Text-to-SQL): Permette all'AI di tradurre una domanda in una query sul database strutturato (es. "quanti casi di tipo X sono avvenuti nell'anno Y?"), interpellando solo viste protette ed evitando di stimare o ipotizzare numeri statistici.
Un'esigenza tipica dei settori ad alta specializzazione è l'applicazione di formule complesse estratte direttamente dai documenti (es. formule di calcolo delle tolleranze, sanzioni o parametri fisici). Clavis non si limita a memorizzare queste formule come immagini o testo inerte. Durante la fase di acquisizione (ingestion), un modulo dedicato analizza la formula e ne mappa la struttura logica (variabili, unità di misura nel Sistema Internazionale, espressione matematica in formato computabile). Quando l'utente pone un quesito che richiede l'uso di quella formula, Clavis attiva una scala di esecuzione deterministica:
  • I plugin matematici parametrici: Se si tratta di un'espressione aritmetica o algebrica nota, il sistema la risolve istantaneamente tramite un interprete matematico sicuro a codice.
  • L'esecuzione di codice in Sandbox (il regime "escape hatch"): per calcoli iterativi, simulazioni o serie numeriche che richiedono la generazione di codice dinamico, Clavis compila lo snippet a runtime tramite Roslyn ed esegue il codice. Come garantiamo la sicurezza dell'infrastruttura? In .NET moderno non esistono sandbox gestite nativamente a livello di codice. Per questo motivo, in Clavis abbiamo implementato una difesa in profondità a più strati per isolare l'esecuzione del codice generato:
    - Gate statico Roslyn: Prima della compilazione, un analizzatore sintattico rifiuta l'uso di puntatori, istruzioni unsafe, reflection, chiamate esterne (P/Invoke) e l'accesso alle librerie di sistema per l'I/O su disco, rete o processi.
    - Processo worker dedicato: Il codice approvato non gira nell'applicazione web principale, ma in un processo separato ed effimero.
    - Confinamento a livello di Sistema Operativo (Job Object): Il processo worker è vincolato da limiti rigidi di tempo CPU (wall-clock timeout con arresto forzato in caso di loop infiniti), memoria massima allocabile e restrizioni dell'interfaccia utente.
  • Knowledge Graph con approccio Human-in-the-Loop: Le relazioni logiche estratte in automatico dall'intelligenza artificiale possono essere imprecise o fuorvianti se non verificate. Clavis affronta questo problema separando gli archi logici "proposti" da quelli "validati". Durante l'ingestion, il sistema propone nuove entità e relazioni (es. La norma A [regola] l'attività B, oppure Il parametro X [contraddice] l'osservazione Y) inserendole in una coda di curatela. Attraverso un'interfaccia web intuitiva, gli esperti di dominio dell'azienda possono esaminare queste proposte, confermarle, modificarle o rifiutarle. Solo le relazioni validate entrano a far parte del motore di retrieval, garantendo che le risposte finali poggino su una struttura di relazioni logicamente verificata dall'uomo.
  • Personalizzazione dinamica senza interruzioni di servizio: Negli ambienti aziendali, le regole di comportamento, il tono e i vincoli di estrazione variano nel tempo o in base alla tipologia di cliente. In Clavis, i system prompt dell'AI (le istruzioni che guidano il comportamento dei vari agenti) non sono cablati nel codice del programma. I prompt sono memorizzati nel database di ciascun tenant e gestiti tramite un'interfaccia amministrativa. Questo permette agli amministratori autorizzati di aggiornare, testare o ripristinare le istruzioni operative del sistema in tempo reale, senza la necessità di ricompilare l'applicazione o pianificare interruzioni di servizio.
Clavis rappresenta lo sforzo ingegneristico di VerdeLab per superare i limiti dell'intelligenza artificiale probabilistica tradizionale, sostituendola con un sistema che unisce la flessibilità del linguaggio naturale alla precisione del codice matematico. Nello sviluppo di Clavis stiamo costruendo uno strumento che rispetta i flussi operativi e i requisiti di sicurezza delle realtà enterprise più esigenti. Se siete interessati a saperne di più sulle nostre soluzioni, a valutare un progetto pilota o a supportare lo sviluppo di Clavis come investitori, non esitate a contattarci all'indirizzo luigi@verdelab.info

Commenti

Post popolari in questo blog

La geometria del pensiero: perché la ricerca semantica da sola non basta

Cosa ci insegnano gli LLM su come pensiamo

Labyrinthum: come stiamo costruendo uno strumento per pensare meglio