Un Alchemist medallion agentico, un livello semantico governato e un modello di accesso a due piani — in esecuzione interamente nei suoi locali. Questa è l'architettura sotto la magia.
VibeBI è una piattaforma analytics enterprise on-premise che trasforma un warehouse raw in un servizio BI governato e self-service. È costruito su tre superfici di prodotto che condividono i contract ma tengono separate le responsabilità:
VibeBI viene consegnato con un proprio motore agent embedded. L'agent fa gran parte della stesura; gli steward umani e i custodian IT approvano ed eseguono attraverso i gate di certificazione — non sono mai il collo di bottiglia.
La piattaforma separa il runtime dell'agent (sul laptop dell'utente) dal control plane (server on-prem). Le credenziali di warehouse e LLM non raggiungono mai i dispositivi degli utenti finali.
flowchart LR
subgraph client["User laptop"]
DT["VibeBI Desktop"]
SC["Agent sidecar :4580
VibeBI agent engine"]
DT --> SC
end
subgraph server["On-prem server :8080"]
AUTH["Auth / SSO"]
BRK["Warehouse broker
read-only SQL"]
GW["LLM gateway"]
STORE["Report store
Postgres + object store"]
ACL["Access control"]
end
CH[("Warehouse (EDW)
bronze · silver · gold")]
WEB["VibeBI Web viewer"]
SC --> AUTH
SC --> BRK
SC --> GW
BRK --> CH
DT --> STORE
WEB --> AUTH
WEB --> STORE
STORE --> ACL
| Componente | Porta | Responsabilità |
|---|---|---|
| Sidecar agent | 4580 | Esegue l'agent embedded, invia i turni in streaming al desktop |
| Server di piattaforma | 8080 | Impostazioni, governance, broker, gateway, store, audit |
| Warehouse (EDW) | — | Landing bronze, view silver, view gold |
Ambito di VibeBI parte dal bronze — dopo l'ingestion. Promuove i dati attraverso un medallion governato: bronze → silver → gold + semantica. L'unica regola ferrea: il gold non viene mai costruito direttamente dal bronze; le view silver certificate devono esistere prima.
flowchart LR B["Bronze
source-shaped landing
source__entity"] --> S["Silver
silver_<domain>
conformed views"] S --> G["Gold
gold_<domain>
facts & dims"] G --> SEM["Semantics
entities · grain · tags"] SEM --> CR["Create / Web
published gold only"]
| Layer | Pattern | Oggetto | Realizzato da |
|---|---|---|---|
| Bronze | bronze_<source> | Tabelle sorgente | Ingestion / IT |
| Silver | silver_<domain> | CREATE VIEW | L'agent redige · lo steward approva |
| Gold | gold_<domain> | CREATE VIEW | L'agent redige · lo steward pubblica |
| Semantica | vibebi_semantic | Metadati | Manifest sourced da silver |
Lo Stage 1 (Bronze → Silver) copre profiling, analisi della qualità dei dati, conformation e proposte di domain/classificazione. Lo Stage 2 (Silver → Gold) copre risoluzione delle entità, stesura di manifest e view gold, validazione e loop di riparazione. I nomi fisici dei database sono configurazione di deployment, non hard-coded nei binari.
Il livello semantico è ciò che rende i report duraturi. Invece di legare le dashboard alle tabelle fisiche, VibeBI espone entità, grain, mapping, metriche certificate e metadati dei modelli gold attraverso un unico contratto.
Poiché i report leggono il livello semantico, un cambio di schema a monte viene assorbito nel mapping silver→gold — i report a valle continuano a funzionare senza una riscrittura.
# Agent discovery contract
GetSemantics # entities, tables, grains, mappings, certified metrics
QueryVibeBIGold # read-only SQL against published gold for real answers
Il gold non è una pubblicazione una tantum. VibeBI cattura segnali di domanda da ogni turno del BI agent — domande degli utenti, metriche sparse/null dai probe live, errori di query, gap nei join ed entità a cui l'assistente non ha saputo rispondere — e li trasforma in miglioramenti revisionati dagli steward su business driver, manifest e join.
flowchart LR BI["BI Agent turns
chat + gold/silver probes"] --> SIG["Learning signals
catalog backlog"] SIG --> PROC["Process backlog
drivers · joins · hints"] PROC --> STW["Steward review
Gold → BI Learning tab"] STW --> GOLD["Approve drivers
publish manifests · build gold"] GOLD --> SEM["Updated semantics
fewer gaps next turn"] SEM --> BI
Gli steward restano al controllo. Le proposte creano bi_learning business driver in proposto stato finché non è approvato. Le ricostruzioni di manifest per metriche sparse tornano a bozza fino a nuova pubblicazione. Gli steward possono procedere passo dopo passo oppure lanciare una pipeline completa (elabora → approva → pubblica → costruisci gold) dal desktop.
| Segnale | Esito tipico |
|---|---|
| Domande ricorrenti degli utenti | Aggiunga domande di business o, raggruppati dall'LLM, bi_learning proposte di driver |
| Metriche sparse / null nei probe | Hint di ricostruzione del manifest; auto-rebuild opzionale (bozza) |
| Fallimenti di query / join | Hint di relazione; arricchimento dei join del manifest |
| Entità non coperte | Nuove proposte di driver per i gap gold |
Il BI agent riceve un compatto gap di apprendimento sezione nei turni successivi (misure sparse, entità non coperte, driver in sospeso) così risponde con onestà invece di riprovare colonne note come null. Il DG Agent usa lo stesso backlog quando rigenera i business driver.
WarehouseGovernance azioni (list_gold_learning, process_gold_learning, run_gold_learning_pipeline), e le route HTTP della piattaforma condividono un'unica implementazione server — nessuna pipeline ombra solo UI.VibeBI esegue un runtime agent embedded progettato allo scopo — non una chatbot generica. Due ruoli agent guidano il prodotto:
| Agent | Superficie | Fa |
|---|---|---|
| DG Agent | Data Governance | Profila il bronze, redige view silver/gold e manifest semantici, propone tag di domain/classificazione |
| BI Agent | BI / Create | Pianifica, si ancora alla semantica live, interroga il gold e costruisce artifact di report governati |
Il controllo degli accessi usa due piani ortogonali, definite dal cliente e applicate su ogni campo, query, report e condivisione.
Aree tematiche di proprietà del business (Revenue, Supply Chain, HR Compensation), con sotto-domain opzionali. Ogni domain ha un proprietario chi approva le richieste di accesso — la parte accountable di business, non chi costruisce la tabella tecnica.
| Livello | Nome | Uso tipico |
|---|---|---|
| 0 | Apri | La visibilità interna generale è accettabile |
| 1 | Standard | Uso di business quotidiano tra i team |
| 2 | Sensibile | Audience limitata, controlli più forti |
| 3 | Presidiato | Need-to-know stretto, protezione massima |
Questa è la regola di accesso centrale, e non ha bypass:
I grant a livello di report (ruoli, link di condivisione) possono solo restringere accesso — mai ampliarlo oltre gli entitlement sui dati sottostanti. Un modello gold costruito da più tabelle silver eredita il unione dei rispettivi tag di domain, così i owner di tutti i domain ereditati diventano gli approver.
| Azione | Punto di enforcement |
|---|---|
| Create / build | Il broker rifiuta le query gold non autorizzate; la pubblicazione è bloccata se il manifest è incompleto |
| Preview / render | Il server ricalcola l'entitlement rispetto al manifest del report |
| Listing dello store | Compaiono solo i report pienamente accessibili (o si mostrano bloccati con il motivo) |
| Link di condivisione | Il resolver verifica l'entitlement del viewer rispetto al manifest del report |
Il 100% on-premise è il nostro vantaggio — VibeBI gira interamente all'interno della sua rete, con credenziali del warehouse e chiavi dei modelli che non la lasciano mai. Il pilot è un'installazione Docker Compose su una singola VM; in produzione si rafforza in un cluster HA senza riprogettare il prodotto.
On-premise è il default, non l'unica opzione. La stessa architettura si deploya sul cloud di sua scelta — pubblico, privato, ibrido o multi-cloud — così può collocare control plane e warehouse dove lo richiedono la data residency e la strategia operativa.
Il server è intenzionalmente snello — un binario leggero che gira comodamente su hardware commodity. Tutta la computazione agentica — profiling, estrazione semantica, generazione dei modelli, stesura dei report — viene eseguita distribuita sul client desktop di ciascun utente, non sul server. Il server gestisce solo governance, brokering ed erogazione, così i requisiti di risorse server restano minimi anche quando la base utenti cresce.
Per i clienti attenti ai dati, VibeBI supporta un deployment fully air-gapped: 100% on-premise, zero dipendenza da internet, in esecuzione su un LLM interno. Nessun dato, nessuna query e nessun metadato lasciano mai la sua rete. L'intero sistema — server, client desktop e LLM — opera come un circuito chiuso all'interno del perimetro.
.report.ts + HTML generato, reso tramite API protette da ACL.Cinque non negoziabili valgono in ogni deployment:
src/ nelle immagini di runtime.| Layer | Tecnologia |
|---|---|
| Runtime | Bun (server + sidecar), Rust (shell desktop) |
| Motore agent | Runtime agent VibeBI embedded, progettato allo scopo |
| Warehouse | Agnostico rispetto al warehouse — la maggior parte dei warehouse SQL (ClickHouse usato nella demo) |
| Store del control plane | PostgreSQL (impostazioni, governance, metadati) + object store |
| Identità | OIDC / SAML SSO |
| Report | .report.ts + HTML generato, API di render protette da ACL |
| Packaging | Docker Compose (pilot) → cluster HA (produzione) |
Scarichi l'app desktop, il server e i sample data SimEDW — e completi la prima costruzione di un warehouse governato in un pomeriggio.