fractal
hierarchical-graph long-term memory

La memoria che si organizza da sola

Un albero di astrazioni, non un mucchio di vettori.

Collega il tuo assistente una volta: da lì ricorda fatti, preferenze e decisioni tra una sessione e l'altra — e li ritrova anche quando la risposta sta in un fatto collegato, non in quello che somiglia alla domanda.

MCP nativo · 30 tool · self-hosted o qui
POST /api/v1/memory_recall 38ms
query "cosa sappiamo del capannone di Sesto?"
semantic0.81

La serranda 4 di Sesto è bloccata da marzo.

valida dal 2026-03-02 · saputo il 2026-03-04 · reparto manutenzione

semantic0.74

Il contatore dell'acqua è il TZ-8841-QR.

valida dal 2025-11-18 · saputo il 2025-11-18 · reparto manutenzione

superata

Il fornitore delle guarnizioni è Bianchi.

vera fino al 2026-01-10 · sostituita da Marelli — resta agli atti, non cancellata

Una risposta vera, non un elenco di pezzi: ogni fatto porta tutt'e due le date, quindi quello che ha sostituito è ancora lì e si può ancora chiedere.

Funziona col modello che già paghi

  • Claude
  • OpenAI
  • Gemini
  • NVIDIA NIM
  • Ollama
  • LangChain

Più qualunque endpoint compatibile OpenAI — vLLM, LM Studio, un gateway tuo. Il modello è una stringa in un campo di configurazione, e niente nel codice cambia a seconda di quale sia.

Le parti

01
Memoria

Una forma, non un elenco

Ogni ramo è il medoide di quello che ci sta sotto — un figlio reale, mai un punto medio inventato. La profondità si scopre, non si configura.

02
Tempo

Due orologi, non uno

Quando era vero, e quando fractal l'ha saputo — tenuti separati, così una decisione di gennaio si giudica su quello che a gennaio si poteva sapere.

03
Collegamenti

Grafo di entità, sempre attivo

Due fatti che nominano la stessa persona o progetto sono collegati da soli. «Che linguaggio conviene per il progetto X» trova la risposta anche se la preferenza è scritta sotto il nome di chi lo guida.

04
Agenti

Una memoria ciascuno

Ogni agente ha il suo albero, non uno spazio di nomi — risolto dalla chiave API, così un errore di programmazione non può farlo leggere in quello di un altro.

05
Il filo

Chi ha detto cosa a chi

Ogni chiamata fra agenti finisce sul filo mentre passa, rifiuti compresi. Quello che il servizio ha visto non si mescola con quello che gli è stato raccontato. Non porta mai il contenuto.

06
Capacità

Meno tool, apposta

Sei gruppi da concedere per agente. Misurato sulla porta MCP vera: il 41% del listino via, ~2.200 token risparmiati a ogni chiamata.

Tre porte, una memoria

Non tre prodotti con tre modelli di permessi — tre modi di entrare, così una regola che vale su uno vale su tutti. Scegli quella che il tuo stack già parla.

stdio24 tool

Claude Desktop, Claude Code

Un comando avvia il server MCP su stdio.

$ npx github:emanuelediluzio/fractal
MCP · HTTP/mcp

Qualunque client MCP, in rete

StreamableHTTP. La chiave è l'identità e il permesso.

$ claude mcp add fractal \
    --transport http $HOST/mcp \
    --header "Authorization: Bearer fr_…"
REST · OpenAPI/api/v1

Tutto ciò che parla HTTP

Si descrive da sé: il documento è ricavato dai tool vivi, non può divergere.

$ curl -H "Authorization: Bearer fr_…" \
    $HOST/api/openapi.json

Tutte e tre passano dallo stesso livello di permessi. La porta MCP è guidata dal client SDK ufficiale in check:mcp; check:api pretende che le rotte OpenAPI generate siano identiche a quelle che quel client vede — una regola che valeva su una porta e non sull'altra qui è già successa.

Perché è diverso

fractalmemoria vettoriale piatta
StrutturaGerarchica, profondità variabileLista piatta, tutto allo stesso livello
RicercaBeam search O(log N) + BM25 ibridoCoseno su tutto l'insieme
TempoGrafo temporale — contraddizione ≠ duplicatoNessuna nozione di validità
CollegamentiGrafo di entità automatico, multi-hopNessuno, solo somiglianza testuale
CorrezioneStoria preservata, niente si perdeSovrascrittura o duplicati silenziosi
DeploySelf-hosted, MCP nativoQuasi sempre solo cloud

Misurato, non raccontato

1.360
controlli passano, adesso, su 23 banchi — mai un finto al posto della cosa vera da provare. Lancia npm run verify -- --tutto e contali tu.
1.319
girano in ~2 min come cancello di default — gli altri 41 sono promozione, qualita' del recall, mutation testing e il carico, i lenti
npm run verify
94%
mutation score — 16 difetti iniettati su 17 vengono presi
npm run eval:mutation
41%
del listino tool via restringendo un agente — ~2.200 token a chiamata
npm run check:evals
30 / 34
tool MCP — account personale / account d'azienda
npm run check:mcp

Iniziare

Crea un account, copia la configurazione che ti diamo dentro il tuo client MCP, e il tuo assistente inizia a ricordare. Le tue memorie restano tue: isolate, esportabili, cancellabili.

0 account attivi su questo server