Un ragionamento davvero verificabile

La vostra IA brilla in demo.
Nessuno sa se risponde giusto.

La maggior parte dei sistemi ad agenti lascia ragionare il modello linguistico e vi chiede di fidarvi del risultato. SynaLemma affida questo compito a un motore logico. Il modello scrive una regola, e il motore la verifica, calcola la risposta nel vostro database e vi mostra ogni passaggio.

Realizzato da SynaLinks, un team di ingegneri IA formatisi al CNRS che ha scritto ogni livello del sistema, dal motore logico all'agente.

SynaLemma stabilimento

Quali biciclette finite si fermano se Shenzhen VoltPack non consegna?

Tutte e quattro: Urban S1, Cargo C2, Trekking T3 e Folding F1. Ognuna richiede uno dei due pacchi batteria, ed entrambi i pacchi usano la scheda di gestione e l'involucro forniti da VoltPack.

@SupplierExposure ✓ validata
## Gli assiemi che si fermano se un fornitore non consegna,
## a ogni livello della distinta base.
@OrderBy(SupplierExposure, "supplier_id", "assembly_id");
SupplierExposure(supplier_id:, assembly_id:) distinct :-
  Supplies(supplier_id:, part_id: component),
  Requires(assembly_id:, component_id: component);
  • verificata prima di essere salvata
  • eseguita su Suppliers, Parts, BillOfMaterials
Dati di esempio di uno stabilimento fittizio. La regola è vero Synalog.
Team con sede nell'Unione europea
Gira sui vostri server, con il modello che scegliete
Costruito sui nostri motori open source Apache-2.0
Il problema

Fate la stessa domanda a tre agenti IA. Otterrete tre numeri diversi.

Prendiamo una domanda semplice: quanta giacenza disponibile c'è di un componente? Ogni agente scrive un SQL valido e restituisce un numero diverso, perché ognuno ha dovuto indovinare che cosa significa “disponibile”. La merce riservata conta? E gli ordini in arrivo? Quale sito, e a quale data? Il vostro stabilimento ha deciso questi punti da anni, ma l'agente non ha accesso a quelle decisioni.

Nessun errore è visibile. L'agente restituisce il suo numero con piena sicurezza, qualcuno prende una decisione su quella base e nessuno può ricostruire come è stato calcolato. È il motivo principale per cui i progetti di IA si bloccano tra la demo e la produzione. Un modello più grande ha lo stesso problema, perché indovina le stesse definizioni.

AgenteConsidera giacenza disponibile…Risposta
Primociò che è a magazzino1.240
Secondola giacenza, meno quanto è riservato agli ordini di produzione870
Terzola giacenza meno il riservato, più gli ordini d'acquisto non ancora ricevuti2.070
Esempio illustrativo: una domanda, tre query plausibili.

Gli agenti hanno bisogno delle vostre definizioni, scritte una volta in una forma che una macchina è obbligata ad applicare e che una persona può rileggere. SynaLemma costruisce questo layer e lo mantiene aggiornato.

FileDatabase SQLFogli di calcoloConoscenza del business
I vostri dati, dove si trovano
SynaLemma
  1. Cercare una definizione
  2. Scrivere la regola
  3. Verificarla
  4. Eseguirla sulle vostre tabelle
  5. Rispondere citandola
Una risposta difendibile
  • Il dato
  • La regola citata
  • Leggibile dal vostro team
  • Riutilizzabile
E la regola resta
Che cosa cambia

Negli altri agenti ragiona il modello. Qui ragiona il motore logico.

Quando un agente “spiega il suo ragionamento”, state leggendo un testo che il modello ha generato a posteriori. Quel testo non registra il modo in cui la risposta è stata calcolata, quindi verificarlo dice poco. In SynaLemma il modello traduce la vostra domanda in una regola, e un motore logico calcola la risposta a partire da quella regola, in passaggi che potete rieseguire.

Sistemi ad agenti che lasciano ragionare il modello SynaLemma
Chi ragiona Il modello linguistico, in un testo che nessuno può rieseguire Un motore logico, a partire da regole che si possono leggere e rieseguire
La traccia di audit La trascrizione di ciò che il modello dice di aver fatto Una catena di regole con un nome, fino alle righe di origine
I collegamenti tra tabelle Join riscritti a mano a ogni domanda Un grafo della conoscenza estratto dalle vostre tabelle, senza database a grafo
Come è cambiata una definizione Nessuno sa dire quale fosse il prompt il trimestre scorso Ogni modifica è un commit git con autore e data, e può essere annullata
Il significato di un indicatore Indovinato di nuovo a ogni domanda Scritto una volta come regola con un nome, riutilizzato da tutti
Prima di rispondere Non si controlla nulla La regola viene verificata formalmente, poi eseguita sulle vostre tabelle reali
Quando è sbagliato Un numero sbagliato, senza alcun avviso La regola viene rifiutata con il motivo, oppure un'asserzione mostra le righe che la violano
La stessa domanda, due volte Due risposte che possono differire Una volta scritta la regola, lo stesso risultato, qualunque sia il modello collegato
I vostri sistemi esistenti Una nuova pipeline e una copia dei dati Gira sui database che avete già, interrogati sul posto
La centesima domanda Lo stesso ragionamento, pagato di nuovo in token Una regola che esiste già, eseguita in SQL
Che cosa ottenete

Che cosa vi offre questa architettura.

01 · Fiducia

Risposte calcolate sui vostri dati.

Ogni regola viene eseguita sulle vostre tabelle reali prima che l'assistente risponda.

La risposta riporta le righe restituite dall'esecuzione, quindi nulla proviene dalla memoria del modello. SynaLemma gira sui vostri server con il modello che scegliete, e l'assistente è limitata a ciò che il ruolo della persona che chiede consente.

02 · Ragionamento verificabile

Un ragionamento che potete rieseguire.

Il motore logico compie ogni inferenza, e ciascuna può essere rieseguita.

Ogni risposta cita le sue regole, fino alla riga da cui proviene un numero. Il vostro team può aprire una regola, leggerla, rieseguirla, modificarla o bloccarla. Le regole sono file in un repository git, quindi ogni modifica è un commit che registra chi l'ha fatta (una persona o l'assistente), che cosa è cambiato e quando.

03 · Robustezza

Verificato formalmente prima dell'esecuzione.

Il primo e unico sistema di IA che scrive le proprie regole, le verifica formalmente e confronta i loro risultati con enunciati matematici.

Ogni regola passa un verificatore formale prima che venga generato qualsiasi SQL, e più di quindici classi di errore vengono rifiutate indicandone il motivo. Potete poi enunciare ciò che un risultato deve sempre rispettare, in logica del primo ordine, e il motore cerca controesempi nei vostri dati. Quando una regola cambia, tutto ciò che si basa su di essa viene segnalato finché non è stato rieseguito. Quando cambiate modello, le regole restano quelle che sono.

04 · Costi

Si collega a ciò che usate già.

Nessun ETL, nessun secondo data warehouse, nessun database a grafo da acquistare.

Le regole vengono compilate in SQL ed eseguite nel database che avete già, su tabelle che mantengono i loro nomi reali, quindi i sistemi legacy sono coperti senza un progetto di migrazione. Una definizione viene stabilita una volta e poi riutilizzata, risparmiando i token che un modello spenderebbe per ricostruirla. SynaLemma funziona anche con modelli aperti sul vostro hardware.

Un esempio

La regola dietro una risposta.

Ogni risposta rimanda a una definizione come questa. È abbastanza breve da essere letta dalla persona responsabile del numero, e abbastanza precisa da essere verificata da una macchina.

  • Le prime righe enunciano ciò che deve essere sempre vero, sotto forma di enunciati matematici: una riga per fornitore, e mai più consegne in ritardo che consegne.
  • La regola indica poi come si calcola il risultato, a partire dagli ordini d'acquisto.
  • Se i dati contraddicono un enunciato, SynaLemma mostra le righe che lo violano invece di riportare un tasso sbagliato.
  • La definizione è un file di testo nel vostro repository git, revisionato come qualsiasi altro codice.
Una definizione, così come viene salvata
stabilimento/rules/SupplierDeliveries.l
---
name: SupplierDeliveries
description: Purchase orders per supplier, and how many were late.
keywords: [supplier, delivery, late, on time]
---
import tables.PurchaseOrders.PurchaseOrders;

@Assert(SupplierDeliveries,
  one_row_per_supplier: "∀ s a b c d, SupplierDeliveries s a b → SupplierDeliveries s c d → a = c",
  late_within_total:    "∀ s a b, SupplierDeliveries s a b → b ≤ a");
@OrderBy(SupplierDeliveries, "supplier_id");
SupplierDeliveries(supplier_id:, deliveries? += 1, late? += is_late) distinct :-
  PurchaseOrders(supplier_id:, is_late:);

Una definizione tratta da un layer industriale. Gli enunciati sono scritti nella notazione del dimostratore di teoremi Lean e confrontati con i vostri dati. Un enunciato è valido quando la ricerca di un controesempio non restituisce nulla. Si tratta di un controllo sui dati che avete, e non dimostra nulla sui dati che il sistema non ha visto.

Come funziona

Tre passaggi dal vostro database a una risposta verificata.

  1. 1

    Collegate ciò che avete

    Collegate SynaLemma al database che usate già (PostgreSQL, BigQuery, Databricks, Trino, Presto, DuckDB, SQLite) oppure caricate i vostri file (CSV, Excel, JSON, JSONL, Parquet). I database vengono interrogati sul posto: le tabelle mantengono i loro nomi reali e nulla viene migrato.

  2. 2

    Fate una domanda

    Lemma, l'assistente, cerca prima una definizione già esistente. Se non c'è, scrive una nuova regola, la verifica e la esegue sui vostri dati. Solo dopo risponde, citando la regola.

  3. 3

    Conservate ciò che è stato appreso

    La regola viene salvata con un nome e una descrizione. La domanda successiva si basa su di essa, e il vostro team può rivederla, correggerla o bloccarla.

Implementazione

SynaLemma include ingegneri dedicati.

Abbiamo constatato che lo strumento da solo non basta, soprattutto per le aziende che non hanno competenze di IA al proprio interno. Uno o più ingegneri forward-deployed del team che sviluppa SynaLemma, a seconda delle dimensioni del vostro progetto, lavorano quindi al fianco del vostro team, con un ruolo definito all'interno della piattaforma.

  • Stabiliscono ogni definizione con le persone responsabili del numero.
  • Individuano quali dati collegare, che cosa significa ogni colonna e che cosa manca.
  • Verificano ogni regola, conoscendo sia la logica sia il vostro business.
  • Mantengono tutto il lavoro all'interno del vostro layer e non costruiscono sistemi su misura a parte.
  • La licenza e il loro lavoro coprono la ricerca, la manutenzione e l'evoluzione del sistema.
Come lo implementiamo
Perché noi

Abbiamo scritto ogni livello del sistema.

La maggior parte dei prodotti di IA combina il modello di qualcun altro con il framework di qualcun altro. Noi abbiamo scritto il framework su cui gira l'agente, il motore logico che ne verifica le regole, il formato che conserva la conoscenza e il prodotto che riunisce i tre. Pochi team hanno costruito ogni livello tra il database e il modello. Poiché noi l'abbiamo fatto, i componenti sono progettati per integrarsi tra loro, e possiamo dirvi con precisione che cosa fa il sistema e dove sono i suoi limiti.

  • 1,4k stelle su GitHub
  • 1k download PyPI al mese
  • Apache-2.0 motori open source
L'harness

SynaLemma

Il prodotto che usa il vostro team. Esegue i tre motori sui vostri dati e aggiunge l'assistente, l'editor di regole, il grafo delle dipendenze, i ruoli e Slack o Teams. Un prodotto commerciale, con licenza a pagamento, installato sulla vostra infrastruttura.

Scoprite SynaLemma
L'agente

Synalinks

Il framework con cui è costruita l'assistente. Vincola gli output a uno schema, fornisce agli agenti strumenti e una sandbox integrata, e ottimizza le istruzioni in base a risultati misurati senza toccare i pesi del modello. Sviluppato sotto la supervisione di François Chollet, l'autore di Keras. Open source, Apache-2.0.

Vedi su GitHub
La logica

Synalog

Un linguaggio logico con un verificatore formale, scritto in Rust e compilato verso sette dialetti SQL. Ciò che un risultato deve rispettare viene enunciato come proposizione Lean, la notazione del dimostratore di teoremi Lean, e controllato sui vostri dati. Open source, Apache-2.0.

Vedi su GitHub
La conoscenza

Semantic Layers

Il formato in cui sono conservate le vostre definizioni, con un file leggibile per ogni concetto o regola in un repository git. La storia del vostro ragionamento si rivede e si sottopone ad audit come il codice, e un layer si installa da un repository git. Open source, Apache-2.0.

Vedi su GitHub

Il modello traduce e il motore logico ragiona. Questa separazione rende il ragionamento verificabile e il modello sostituibile.

Scoprite i motori open source
A chi si rivolge

Per le aziende che devono rispondere dei propri numeri.

Quando un numero sbagliato può causare un fermo di produzione o un audit fallito, dovete sapere da dove viene ogni numero.

Operations industriali

Team di supply chain, acquisti, produzione e qualità. Distinte base, giacenze, consegne in ritardo e difetti hanno ciascuno una sola definizione, condivisa da pianificatori, buyer e dagli agenti che li assistono.

Settori regolamentati

Sanità, aerospazio, energia, finanza. Ogni numero risale a una regola e alle tabelle che ha letto, ed è ciò che un auditor chiede di vedere.

Team con un pilota di IA fermo

La demo ha funzionato, ma nessuno l'ha voluta approvare. SynaLemma dà a chi deve approvarla qualcosa che può leggere e verificare.

Per iniziare

Guardate SynaLemma rispondere a una delle vostre domande.

La demo dura trenta minuti ed è gratuita. Portate una domanda su cui i vostri team non sono d'accordo, e vi mostreremo la risposta di SynaLemma e la regola che ha usato. Se c'è corrispondenza con le vostre esigenze, segue un readiness assessment, poi gli ingegneri forward-deployed lavorano con il vostro team.